別フォームへの結果表示方法

このQ&Aのポイント
  • Visual Studio 2008とXPを使用している環境で、Accessのmdbデータベースの情報を別のフォームに表示する方法を教えてください。
  • AAAメインフォームにはAボタンとBボタンがあり、それぞれクリックすると別の子フォームが呼び出されます。Aボタンでは入力データの登録とフォームの閉じる動作が行われます。BボタンではDataRepeaterを使用し、mdbデータベースの情報がリストアップされます。各データの前にはccボタンがあります。
  • (2)の状態でccボタンをクリックすると、そのデータが入ったaaフォームを呼び出したいです。具体的には、(2)の「01 ねこ」というデータのccボタンをクリックすると、aaフォームが呼び出されてTextBoxに「ねこ」というデータが表示されます。結果を引き継いで別のフォームに表示する具体的な方法を教えてください。
回答を見る
  • ベストアンサー

結果を引き継いで別フォームへ表示するには?

環境:Visual Stadio 2008 XP データはAccessのmdb ※AAAメインフォームにAボタン(aa子フォーム)Bボタン(bb子フォーム)あり。それぞれクリックで呼び出される。 (1)Aボタンクリックでaaフォームに入力(例:TextBox1にねこを入力)  登録後、画面を閉じる (2)Bボタンクリックでbbフォームを表示、こちらはDataRepeaterがあり  (1)で登録したmdbデータがリストアップされる。  各データの前にccボタンを配置している  (呼出) 01 ねこ  (呼出) 02 いぬ (3)(2)の状態で呼び出したいデータのccボタンをクリックすると  そのNoのデータが入ったaaフォームを呼び出したい  (2)の「01 ねこ」の(呼出)ボタンをクリックすると  TextBoxに「ねこ」が入った状態のaaフォームを呼び出したい このような動きを望んでおりますが、呼び出しまではセットできたのですが、選択したデータをセットする方法がわかりません。 どうやって結果を引っ張って着たらよいかおしえて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.5

A No.1です。すみません、もし、解決済みでしたら ポイント付与&クローズをお願いします。 お役に立てたようですので 何よりです。

その他の回答 (4)

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.4

先の No.1 から No.3の 実行画面です。 画像を添付します。 2番目のレコードが AA_Form にわたされて表示しています。

juujuu2929
質問者

お礼

ありがとうございました(涙) 感動しました!!

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.3

A No.2 のつづき ■ 子フォーム(AA_Form)のコード Public Class AA_Form Private DT_Row As TESTDataSet.売上テーブルRow #Region "コンストラクタ定義" ''' <summary> ''' コンストラクタ ''' </summary> Public Sub New(ByVal P_Row As TESTDataSet.売上テーブルRow) '' 継承元のコンストラクタをコール MyBase.New() '' Windows フォームデザイナの初期処理をコール InitializeComponent() DT_Row = P_Row '渡されたデータを 変数へ保存 End Sub #End Region Private Sub AA_Form_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Me.Txt販売コード.Text = DT_Row.販売コード.ToString Me.Txt支店.Text = DT_Row.支店.ToString Me.Txt商品.Text = DT_Row.商品.ToString End Sub Private Sub 閉じるボタン_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 閉じるボタン.Click Me.Close() End Sub Private Sub AA_Form_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Me.Dispose() End Sub End Class ========================================================================================== 長文で失礼しました。 以上で データーの取得&子フォームへのデータの引渡し のサンプルプログラムは終わりです。

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.2

No.1 のつづき 主題に戻ります。 >>2)の「01 ねこ」の(呼出)ボタンをクリックすると >> TextBoxに「ねこ」が入った状態のaaフォームを呼び出したい 私が提示したサンプルプログラムでは 「AA_ボタン」が押されたときに 子フォームに 親フォームのデータを 渡せば良いということになります。 親フォームからのデータは BindingSource を見ればわかります。 サンプルプログラムでは 自動的に作成された「売上テーブルBindingSource」 がフォームのデザインの下側にあります。 これを使って渡します。 詳細は親フォームのコードを見てください。 子フォームにデータを渡すには インスタンス化(NEW)するときに渡しています。 わかりやすいように 型付データセットで1行分のROWで渡しています。 子フォーム側(AA_Form) では受け取ったデータRowを自分の変数に保存しています。 あとはフォームのTextBox に値を設定するだけです。 詳細は子フォーム(AA_Form)のコードを見てください。 ================================================================================= ■ 親フォーム(Form1)のコード Public Class Form1 Private Sub 売上テーブルBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 売上テーブルBindingNavigatorSaveItem.Click Me.Validate() Me.売上テーブルBindingSource.EndEdit() Me.売上テーブルTableAdapter.Update(Me.TESTDataSet.売上テーブル) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: このコード行はデータを 'TESTDataSet.売上テーブル' テーブルに読み込みます。必要に応じて移動、または削除をしてください。 Me.売上テーブルTableAdapter.Fill(Me.TESTDataSet.売上テーブル) End Sub Private Sub AA_ボタン_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AA_ボタン.Click Dim Dr As DataRowView = Me.売上テーブルBindingSource.Current Dim CurROW As TESTDataSet.売上テーブルRow CurROW = Dr.Row Dim AA_form As New AA_Form(CurROW) AA_form.Show() End Sub End Class ========================================================================================== つづく (A No.3 へ)

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.1

(2)のDataRepeaterに貼り付けている TextBox は MDBのデータソースですよね。 フォームをデザインする際の手順ですが ためしに以下のデータをデザインしてフォームを作成してみました。 下記データーサンプル(マイクロソフト NorthWindow DB)から TEST.MDB(Access 2003) に「売上テーブル」とういうテーブルを作成しました 販売コード 支店 販売日 商品 個数 売上 1 池袋 2009/10/05 13:54:30 オレンジジュース 5 \1,250 2 上野 2009/10/05 0:20:11 コーヒー 10 \1,800 3 上野 2009/10/05 1:05:18 グレープジュース 10 \2,500 4 上野 2009/10/05 8:57:54 紅茶 10 \1,800 5 新宿 2009/10/05 22:47:22 オレンジジュース 7 \1,750 6 上野 2009/10/05 1:17:03 グレープジュース 6 \1,500 7 渋谷 2009/10/05 14:56:41 コーヒー 4 \720 8 渋谷 2009/10/05 19:54:55 紅茶 7 \1,260 9 品川 2009/10/05 21:51:47 オレンジジュース 8 \2,000 10 品川 2009/10/05 5:51:16 グレープジュース 3 \750 11 上野 2009/10/06 0:22:37 グレープジュース 3 \750 12 新宿 2009/10/06 19:10:24 オレンジジュース 2 \500 ================================================== VB.NET 2005 (2008でも同じだと思います)にて 新しいプロジェクトを作成 Windows フォーム Form1 上に メニューからデータ/新しいデータ接続 を実行し 先に作成した MDB に接続してください。 Form1 上に Power PACK 3.0 の DataRepeater のコントロールを配置します。 DataRepeater のコントロールの名称は 「Rep_売上データ」 とします。 データーソースのウインドウより テーブル「売り上げ」の項目を「詳細」にしてをForm1 上 にドラッグ&ドロップすると自動的に DBのテーブルの各項目のTextBOX が配置がされます。 DBのテーブルの各項目のTextBOX をDataRepeater のコントロールの「Rep_売上データ」上に 配置します。 ボタンのコントロール(名前は「AA_ボタン」とします。) を 1個、 DataRepeater のコントロールの「Rep_売上データ」上に配置します。 大きさや配置をきれいに整えて親フォームの完成です。 ■子フォーム(AA_FORM)  子フォームに3個のTEXTBOX を配置します。   Txt販売コード、Txt支店、Txt商品です。   ボタンを一個、「閉じるボタン」とします。  それぞれTEXTBOXにラベルを配置します。    以上で子フォームのデザイン完成です。   =============================================================== つづく (A No.2へ)

関連するQ&A

  • Accessでフォームからテーブルへ書き込む

    Access2000 (初心者) フォームからテーブルへ入力したいのですが、レコードソースが違う為入力出来ません。 DLookup("AA", "BB")で違うレコードから抽出出来る様に、違うレコードへ簡単に入力出来ないでしょうか? Me.CC = DLookup("AA", "BB") DLookup("AA", "BB") = Me.CC みたいに・・・

  • VB DataRepeaterにて条件で表示

    環境:Visual Stadio 2008 XP データはAccessのmdb DataRepeaterに関しての本やサイトが少ないので誰かおしえて下さい。 DataRepeater(Form2)にてテーブルのデータを表示しています。さらにボタンを追加してクリックするとその行のデータについて表示し追加でその行のデータを追加できるようにしています(Form3)。 しかし追加して戻った際、DataRepeaterは変更前の状態で表示されています。ここにフィルターをかけたいのですがこのフォーム(Form2)が開く都度、フィルターがかかった状態で表示したいのですが、コーディング方法を教えて下さい。 【例えば】 テーブルdd a b c 1 あ 2 い ※aは自動でNoを振っている <<Form2>> (form3呼出ボタン)a 1 c (form3呼出ボタン)a 2 c ※cは空白です(まだ何も登録してないから) <<Form3>>  a 1 c か(←ここを入力)  (登録ボタン) ※「(登録ボタン)」にてcの「か」を登録してform2に 戻るのですが、以前、上のform2の状態のままです。 結果としては <<Form2>> (form3呼出ボタン)a 2 c のみ表示して欲しいです。フィルターはcかnullかどうか もしくは0かどうか? というコーディング方法をおしえて下さい。

  • 別MDBのフォームを起動

    フォームのボタンをクリックしたら、別のMDBファイルのフォームを起動させたいのです。 そのフォームはMDB起動時に開くフォームとは別のフォームです。 さらに前のMDBファイルは閉じたいので、ハイパーリンクはどうだろう…? といったかんじです。 お願いいたします。

  • フォームでデータベースの内容を表示するには?

    VBA初心者です。 データベースの入力用にフォームを作成しました。 登録コマンドボタンをクリックすると、フォームに入力した内容が、データベースの各項目に反映されるようになっています。 このフォームでは、いくら各項目に入力しても、登録ボタンを押さない限り、データベースには反映されません。もちろんフォームからこれまで入力したデータベースの内容は見ることができません。 しかし先日、Excelの文書件名簿ソフトで、項目1つ1つ入力するごとに、その都度データベースに反映されていくものがありました。 「次のページ」コマンドボタンはありますがこれを押す前にすでにフォームに入力した項目はデータベースに反映されています。 「前のページ」ボタンもあり、これを押すとこれまで入力してきたデータが順番にフォームで見ることができます。 このようなフォームはどのように作ればよろしいでしょうか?

  • Access の VBA 記載について

    アクセスVBA の記載方法で質問です。 AA.mdb BB.mdb CC.mdb 三つのプログラムを作っていて、それぞれで動いていて関連性はありません。 新たに総合のメニュー画面(Form)を作って、そこに三つのボタンを設置し、それぞれのボタンを押せば各上記 mdb が動くようにしたいと思っています。 この場合、ボタンをクリックしたときのVBAの記載がわかりません。具体的にどのように書いたらよいのか、教えてください。

  • 別のAccessファイルのフォームを開くには

    Win2000、Access2000を使用しています。 「あいうえお.mdb」というファイルのフォーム上のボタンをクリックすると、「かきくけこ.mdb」というファイルを起動してそのファイル内のフォームを開きたいんですが、 「かきくけこ.mdb」を起動することができません。 エクセルやワードを起動する要領ではできないのでしょうか?(マクロの”アプリケーションの実行”とかShell関数とかで) どなたかおわかりになる方がいましたらお教え下さい。

  • エクセルのフォームに検索結果を表示する方法について

    エクセルのフォーム上に商品名を入力して、別シートに入っているデータを検索し、該当するデータを上記フォーム上に表示させたいと考えています。 【エクセルのフォームの概要】 (1)フォームはuserform1に作成してあります。商品名を入力→txtbox1 (2)「商品一覧表」というシートに商品一覧表が作成されていて、A1~J1000までデータが入っています。 (3)検索に引っかかるデータはその一覧表の左から2番目(商品名)の列です。 (4)該当するセルがある行の左から3番目のデータをフォームのtextbox2に表示させたいと考えています。 下記のように考えていますが、どうもうまくいきません。ご指導の程宜しくお願い致します。(つい最近マクロを始めたばかりなので、とんでもない構文なのかもしれませんが、自分ではどこがどうダメなのかわかりません。) Private Sub CommandButton1_Click() Dim RangeA As Range Set RangeA = Worksheets("商品一覧表").Range("A1:J1000") UserForm1.TextBox2.Text = Application.WorksheetFunction.VLookup(TextBox1.Value, RangeA, 3, False) End Sub

  • テキストボックスに入力したデータをsheet2のセルにデータ入力する方法

    textboxを5つ設置したユーザーフォームを作りました。ユーザーフォームにボタンをつくり、そのボタンをクリックするとtextboxに入力したデータがsheet2の複数のセルにデータ入力されるようにしたいのですが、やり方がわかりません。

  • VB2005  C# データ書き込みのためのコード

    フォームのTextBox、DateTimePicker、MaskedTextBoxに入力したデータを 登録ボタンをクリックして、SQLのデータSet(Table)に書き込んでいくたためのコードを知りたいのですがどなたかご教示ください。 開発環境は、Visual Studio2005 Standerd Editionで言語はC#です。 宜しくお願いいたします。

  • 別のフォームを閉じる方法を教えてください

    アクセスで、2つのフォームA,Bが開いている場合(Bは最小化となっています)、フォームAを閉じる時(コマンドボタンAAをクリックした時)、フォームBも閉じたい場合の方法を教えてください。よろしくお願いします。