値の引渡しをするには?


サイト  2008-01-08 17:57:09  No: 144243

Form1のテキストにID「AIUEO」と入力してボタンを押すと、次のForm2の画面で、ID「AIUEO」を主キーとするデータをDBから取得しDataGridViewに表示させるようなプログラムを作りたいと考えています。
Form1で入力した値を使用してForm2でSQLコマンドを実行したいのですが、どのようにすれば、別Formの値を扱えるでしょうか?

開発環境はVB2005、SQLServer2005です。


特攻隊長まるるう  2008-01-08 18:11:25  No: 144244

Form2 に Public な自作のプロパティか、引数つきのメソッドを作成して
Form1 から呼び出すことで引渡します。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200405/04050010.txt


サイト  2008-01-08 19:07:09  No: 144245

早いお返事ありがとうございます。
リンク先を拝見しましたが、私の考え方が間違っているためか理解ができませんでした。
テストとして以下のようなものを作成しました。以下の2Formで使用している各IDの値が一致すればよいと思うのですが、考え方、記述の間違い等ありましたらご指摘いただければと思います。

///// Form1 /////

 Dim ID As String
 ID = Form1.TextBox1.txt
 Form2.Show(ID)

///// Form2 /////

 Dim ID Ad String
 MessageBox.Show(ID)


特攻隊長まるるう  2008-01-08 19:49:03  No: 144246

そのコードは動くんですか?


大吉末吉  2008-01-08 20:35:05  No: 144247

> 私の考え方が間違っているためか
間違っている・・・と言うか、単なる勉強不足の様な・・・

「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
----------------------------------------------------
こんな感じ・・・


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加