【问题标题】:Access VBA: Referring to a loop's counter within the loop访问 VBA:在循环中引用循环的计数器
【发布时间】:2020-10-12 08:20:14
【问题描述】:

是否可以在实际循环本身中访问循环的计数器?下面的代码会产生一个 Enter Parameter Value,好像For 循环的范围有问题。

Sub test()
    For i = 1 To 100
        DoCmd.RunSQL "INSERT INTO Table1 (Field1) VALUES (i);"
    Next i
End Sub

这种行为很奇怪,因为If 语句显然能够访问它所包含的For 循环的计数器:

Sub test()
    For i = 1 to 100
        If i = 1 Then
            DoCmd.RunSQL "INSERT INTO Table1 (Field1) VALUES ('This works');"
        End If
    Next i
End Sub

【问题讨论】:

    标签: vba loops ms-access scope


    【解决方案1】:

    当您在查询字符串中简单地写 i 时:

    "INSERT INTO Table1 (Field1) VALUES (i);"
    

    它指的是i 列(可能不存在)。您需要使用变量i 的值来构建字符串:

    "INSERT INTO Table1 (Field1) VALUES (" & CStr(i) & ");"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-06
      • 2020-08-14
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      • 2019-12-23
      相关资源
      最近更新 更多