Form1のテキストにID「AIUEO」と入力してボタンを押すと、次のForm2の画面で、ID「AIUEO」を主キーとするデータをDBから取得しDataGridViewに表示させるようなプログラムを作りたいと考えています。
Form1で入力した値を使用してForm2でSQLコマンドを実行したいのですが、どのようにすれば、別Formの値を扱えるでしょうか?
開発環境はVB2005、SQLServer2005です。
Form2 に Public な自作のプロパティか、引数つきのメソッドを作成して
Form1 から呼び出すことで引渡します。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200405/04050010.txt
早いお返事ありがとうございます。
リンク先を拝見しましたが、私の考え方が間違っているためか理解ができませんでした。
テストとして以下のようなものを作成しました。以下の2Formで使用している各IDの値が一致すればよいと思うのですが、考え方、記述の間違い等ありましたらご指摘いただければと思います。
///// Form1 /////
Dim ID As String
ID = Form1.TextBox1.txt
Form2.Show(ID)
///// Form2 /////
Dim ID Ad String
MessageBox.Show(ID)
そのコードは動くんですか?
> 私の考え方が間違っているためか
間違っている・・・と言うか、単なる勉強不足の様な・・・
「Visual Basic でのアクセス レベル」
(http://msdn2.microsoft.com/ja-jp/library/76453kax(VS.80).aspx)
「Visual Basic におけるスコープ」
(http://msdn2.microsoft.com/ja-jp/library/1t0wsc67(VS.80).aspx)
辺りは押さえておきましょう。
特攻隊長まるるう さんの
> Public な自作のプロパティか、引数つきのメソッドを作成
方法では、
Form2にPublicな変数またはメソッドを定義しなければいけません。
参考になるのは、提示されたページの
------------------------------------------
.InputText("2")
------------------------------------------
Public Function InputText(Byval s As String)
TextBox1.Text &= s
End Function
------------------------------------------
この部分です。
#Publicな引数付メソッド(関数)を定義している。
Publicな変数で行うなら、
----------------------------------------------------
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.id = Me.TextBox1.Text
Form2.Show()
End Sub
End Class
----------------------------------------------------
Public Class Form2
Public id As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show(id)
End Sub
End Class
----------------------------------------------------
こんな感じ・・・
ツイート | ![]() |