1

私のVisualBasicプログラムは、Accessデータベースから値をフェッチし、それらをラベルに配置します。データベースから返されるデータは、コンボボックスで選択された値によって異なり、コンボボックスの値が変更されると変更されるはずですが、驚いたことに、ラベルには、変更が必要な場合でも最初に表示された最初の値のみが表示されます。各データベースにアクセスする直前にラベルテキストを何にも割り当てようとしませんでしたが、それでも以前の値が表示されます。これらのラベルでテキストを変更できないという問題は何でしょうか。助けてください。データベースにアクセスしてラベルに配置するために使用するコードは次のとおりです。

    Me.p.Text = Nothing
    Me.tq.Text = Nothing
    Me.pd.Text = Nothing
    Me.ba.Text = Nothing
    Me.o.Text = Nothing
    Me.pm.Text = Nothing
    Me.tv.Text = Nothing
    Me.tqr.Text = Nothing
    Me.dff.Text = Nothing
    Try
        cmd.Connection = cnn
        cmd2.Connection = cnn
        cmd3.Connection = cnn
        cmd.CommandText = "SELECT distinct(brought_price), sum(brought_qtty), sum(brought_paid), sum(brought_bal),recieved_qtty,sum(brought_qtty)-recieved_qtty, sum(brought_qtty)*brought_price from brought_coffee, farmer, centre_weigh " & _
                                "where brought_date=? and farmer_centre=? and" & _
                                " brought_coffee.farmer_num=farmer.farmer_num and weigh_date=? and weigh_centre=? and brought_coffee.brought_date=centre_weigh.weigh_date and farmer_centre=weigh_centre group by brought_price,recieved_qtty"
            MessageBox.Show(Me.dtc.Text)
            cmd.Parameters.Add("@dt", OleDb.OleDbType.Date).Value = Me.dtc.Text
            cmd.Parameters.Add("@dt2", OleDb.OleDbType.VarChar).Value = Me.cc.Text.Trim.Substring(0, 2)
            cmd.Parameters.Add("@dt3", OleDb.OleDbType.Date).Value = Me.dtc.Text
            cmd.Parameters.Add("@dt4", OleDb.OleDbType.VarChar).Value = Me.cc.Text.Trim.Substring(0, 2)

            cmd2.CommandText = "SELECT sum(brought_qtty) from brought_coffee,farmer where coffee_grade='O' and brought_date=? and farmer_centre=? and" & _
                                " brought_coffee.farmer_num=farmer.farmer_num"
            cmd2.Parameters.Add("@dt5", OleDb.OleDbType.Date).Value = Me.dtc.Text
            cmd2.Parameters.Add("@dt6", OleDb.OleDbType.VarChar).Value =     Me.cc.Text.Trim.Substring(0, 2)

            cmd3.CommandText = "SELECT sum(brought_qtty) from brought_coffee,farmer where coffee_grade='P' and brought_date=? and farmer_centre=? and" & _
                                " brought_coffee.farmer_num=farmer.farmer_num"
            cmd3.Parameters.Add("@dt7", OleDb.OleDbType.Date).Value = Me.dtc.Text
            cmd3.Parameters.Add("@dt8", OleDb.OleDbType.VarChar).Value = Me.cc.Text.Trim.Substring(0, 2)

            myData = cmd.ExecuteReader
            myData2 = cmd2.ExecuteReader
            myData3 = cmd3.ExecuteReader
            'MessageBox.Show("check 1")

            While myData.Read()
                'MessageBox.Show("check 1")
                Dim pr As String = myData(0).ToString
                Dim qtty As String = myData(1).ToString
                Dim pd As String = myData(2).ToString
                Dim bl As String = myData(3).ToString
                Dim rq As String = myData(4).ToString
                Dim dq As String = myData(5).ToString
                Dim tvp As String = myData(6).ToString
                'MessageBox.Show("quantity" & pr)
                Me.p.Text = pr
                Me.tq.Text = qtty
                Me.pd.Text = pd
                Me.ba.Text = bl
                Me.tqr.Text = rq
                Me.dff.Text = dq
                Me.tv.Text = tvp

            End While
            myData.Close()

            While myData2.Read()
                Dim od As String = myData2(0).ToString
                'MessageBox.Show(od)
                Me.o.Text = od
            End While

            myData2.Close()

            While myData3.Read()
                Dim pmm As String = myData3(0).ToString
                Me.pm.Text = pmm
            End While
            myData3.Close()
            cnn.Close()

dtcおよびccは、選択したデータベースの値と比較されるテキストボックスです。

4

0 に答える 0