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


human  2008-01-11 20:11:09  No: 144266

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 10:04:51  No: 144267

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


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




  


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