Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环使用类似的命名标签,为Access Vba中的每个标签指定值_Vba_Ms Access_For Loop_Concatenation - Fatal编程技术网

循环使用类似的命名标签,为Access Vba中的每个标签指定值

循环使用类似的命名标签,为Access Vba中的每个标签指定值,vba,ms-access,for-loop,concatenation,Vba,Ms Access,For Loop,Concatenation,我正在Access 2010中构建一个日历,其中包含一个根据月份变化的页面。有标签lblDay1-lblDay37。如果月份是2018年2月,则第一个月将从星期四开始,其工作日值为4(使用vb星期四) For循环需要遍历每个lblDaylblDay4需要等于1,然后lblDay5=2,lblDay6=3等,最多28天 我遇到的问题是连接标签,如下所示 For i = 1 to 37 If i = Weekday(#01/02/2018#, vbMonday) Then "lbl

我正在Access 2010中构建一个日历,其中包含一个根据月份变化的页面。有标签
lblDay1
-
lblDay37
。如果月份是2018年2月,则第一个月将从星期四开始,其
工作日
值为4(使用
vb星期四

For
循环需要遍历每个
lblDay
lblDay4
需要等于
1
,然后
lblDay5=2
lblDay6=3
等,最多28天

我遇到的问题是连接标签,如下所示

For i = 1 to 37
   If i = Weekday(#01/02/2018#, vbMonday) Then
      "lblDay" & i & ".Value" = 1

我不知道如何最好地修复第3行引发的错误。

假设您选择使用文本框代替标签,您可以使用类似于以下函数的功能,用您的日数填充文本框:

Function PopulateDays(datRef As Date)
    Dim datVar As Date
    Dim intTbx As Integer
    datVar = DateAdd("d", 1 - Weekday(datRef, vbMonday), datRef)
    For intTbx = 1 To 37
        Controls("txtDay" & intTbx).Value = Day(datVar)
        datVar = DateAdd("d", 1, datVar)
    Next intTbx
End Function
以上假设您的文本框命名为
txtDay1
txtDay2
,…,
txtDay37

您可以调用上面的日期作为参考,以确定开始编号的星期

例如,要填充2月份的文本框,可以使用以下方法评估函数:

PopulateDays DateSerial(2018, 2, 1)
这将产生如下结果:


您正在将表达式指定给表达式,即该指令不执行VBA可以理解的任何操作。你想达到什么目标?您需要获得实际的
标签
对象,不能分配给这样的字符串
设置label=Me.Controls(“lblDay”&i)
然后执行
label.Value=1
。由于您使用的是标签,您需要修改
标题
属性,因为标签没有
属性。相反,我建议您使用文本框。