0

我有 7 个名为 lblSun、lblMon 等的文本框和 7 个名为 cmdSun、cmdMon 等的按钮。我想从查询中更改这些文本框和按钮的文本值。我试过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 回答