- ベストアンサー
別フォームへの結果表示方法
- Visual Studio 2008とXPを使用している環境で、Accessのmdbデータベースの情報を別のフォームに表示する方法を教えてください。
- AAAメインフォームにはAボタンとBボタンがあり、それぞれクリックすると別の子フォームが呼び出されます。Aボタンでは入力データの登録とフォームの閉じる動作が行われます。BボタンではDataRepeaterを使用し、mdbデータベースの情報がリストアップされます。各データの前にはccボタンがあります。
- (2)の状態でccボタンをクリックすると、そのデータが入ったaaフォームを呼び出したいです。具体的には、(2)の「01 ねこ」というデータのccボタンをクリックすると、aaフォームが呼び出されてTextBoxに「ねこ」というデータが表示されます。結果を引き継いで別のフォームに表示する具体的な方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
A No.1です。すみません、もし、解決済みでしたら ポイント付与&クローズをお願いします。 お役に立てたようですので 何よりです。
その他の回答 (4)
- NOBNNN
- ベストアンサー率50% (93/186)
- NOBNNN
- ベストアンサー率50% (93/186)
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.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)
(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へ)
お礼
ありがとうございました(涙) 感動しました!!