0

lblSun、lblMonなどの名前の7つのテキストボックスとcmdSun、cmdMonなどの名前の7つのボタンがあります。クエリ内からこれらのテキストボックスとボタンのテキスト値を変更したいと思います。試しましたが、うまくいきMe.Controls("cmd" & daysOfWeek(i)).Textません。

エラーは、オブジェクト参照がオブジェクトのインスタンスに設定されていないことです。

これが私のコードです:

Public Sub loadSchedule()
    ' days of week
    Dim daysOfWeek(0 To 6) As String
    Dim i As Integer
    Dim var As String
    Dim ctrl As Control
    ' set up the days of the week
    daysOfWeek(0) = "Sun"
    daysOfWeek(1) = "Mon"
    daysOfWeek(2) = "Tue"
    daysOfWeek(3) = "Wed"
    daysOfWeek(4) = "Thu"
    daysOfWeek(5) = "Fri"
    daysOfWeek(6) = "Sat"
    ' connect to the db
    Dim con As OleDb.OleDbConnection = New OleDb.OleDbConnection(Form1.conString)
    con.Open()
    ' query stuff
    Dim query As String
    Dim cmd As New OleDb.OleDbCommand
    Dim rs As OleDb.OleDbDataReader
    ' loop
    For i = LBound(daysOfWeek) To UBound(daysOfWeek)
        ' set query
        query = "SELECT * FROM Schedule WHERE Employee=" & employee & " AND ScheduleDay='" & daysOfWeek(i) & "'"
        cmd = New OleDb.OleDbCommand(query, con)
        rs = cmd.ExecuteReader()
        ' var
        var = "cmd" & daysOfWeek(i)
        ' any results?
        If rs.HasRows = True Then
            ' get it
            rs.Read()
            ' show it baby
            'Controls("lbl" & daysOfWeek(i)).Text = rs.Item("TimeIn") & " - " & rs.Item("TimeOut")
            Me.Controls("cmd" & daysOfWeek(i) & "").Text = "Edit"
        Else
            ' show it baby
            Controls("lbl" & daysOfWeek(i)).Text = "RDO"
            Controls("cmd" & daysOfWeek(i)).Text = "New"
        End If
    Next
    ' close db
    con.Close()
End Sub

誰か助けてもらえますか?私は何が間違っているのですか?

4

1 に答える 1

1

Me.Controlsボタン/テキストボックスがテーブル内にあるため、存在しないコントロールにアクセスしようとしています。

使用する必要があります:

table.Controls("cmd" & daysOfWeek(i)).Text = "Edit"
于 2013-02-17T17:00:45.867 に答える