标签控件的名称生成问题

问题描述 投票:0回答:1
Private Sub DisplayCalendar()
    Dim FirstDay As String
    Dim LastDay As String
    Dim iDay As Integer
    Dim ctl As Label
    
    Dim DaysArray(7) As String
    
    DaysArray(0) = "Mon"
    DaysArray(1) = "Tue"
    DaysArray(2) = "Wed"
    DaysArray(3) = "Thu"
    DaysArray(4) = "Fri"
    DaysArray(5) = "Sat"
    DaysArray(6) = "Sun"
    
    FirstDay = Format("1/" & Month(SelectedDay) & "/" & Year(SelectedDate), "ddd")
    lastnumday = Format(DateSerial(Year(SelectedDate), Month(SelectedDate) + 1, 0), "dd")
    iDay = 1
    For i = 0 To 6
        If DaysArray(i) = FirstDay Then
           fdaynum = i
           Exit For
        End If
    Next
    
    j = 1
    
    For iDay = 1 To lastnumday
         ctl.Name = "lbl" & DaysArray(fdaynum) & j
         [ctl].Caption = iDay
                 
         If fdaynum = 6 Then
            fdaynum = 0
            j = j + 1
         Else
            fdaynum = fdaynum + 1
            
         End If
    Next

问题出在 'ctl.Name = "lbl" & DaysArray(fdaynum) & j' 行

我正在尝试在 ms access 中制作日历,我想用日期数字更改每个标签上的标题。我收到错误:未设置对象变量(错误 91)

vba ms-access
1个回答
0
投票

而不是

ctl.Name = "lbl" & DaysArray(fdaynum) & j

您应该使用将标签控件分配给您的变量:

Set ctl = Me("lbl" & DaysArray(fdaynum) & j)
© www.soinside.com 2019 - 2024. All rights reserved.