変数の設定した値が変わる。


human  2008-01-11 11:11:09  No: 144266  IP: 192.*.*.*

Form1を開いた時にsqlserverから値を取得し、その値(0/1)により、Form2のテキストボックスのVisibleをTrue/Falseに設定しています。
Form2を開いて確認すると、確かにForm1で設定したとおりになっているのですが、Form1からForm3に移動して、Form2のテキストボックスのVisibleがTrue(または1)だったら〜する、という処理を行うと、Form1での設定に関わらずVisibleがFalseになってしまいます。
Form3でsqlserverからデータを取得し直さないといけないのでしょうか?


  \\\\\     Form1     \\\\\

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    wk_text = 1

    cmd.CommandText = "SELECT A FROM B WHERE ID = 1"
        Connection.Open()
        reader = cmd.ExecuteReader()
        Do While reader.Read()
            For i = 0 To reader.FieldCount - 1
                wk_text = reader(i)
            Next
        Loop

        Connection.Close()

        If wk_text = 0 Then
            Form2.TextBox.Visible = True
        Else
            Form2.TextBox.Visible = False
        End If

  \\\\\\\\\\\\\\\\\\\\\\\\\


  \\\\\     Form3     \\\\\

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If Form2.TextBox.Visible = True Then
            ID = 1
        Else
            ID = 2
        End If

        中  略

        cmd.CommandText = "UPDATE B SET C = " & TextBox.Text & " WHERE D = " & ID

        Connection.Open()
        cmd.ExecuteNonQuery()
        Connection.Close()

  \\\\\\\\\\\\\\\\\\\\\\\\\

編集 削除
ガッツいちもつ  2008-01-12 01:04:51  No: 144267  IP: 192.*.*.*

ソースをみただけでは判断できないですが
Form2.TextBox.Visible の値を1ステップずつウオッチ式で
見るようにすればどこでおかしくなっているのか
わかるのではないでしょうか。

編集 削除