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