访问VBA:引用循环内的循环计数器

Access VBA: Referring to a loop's counter within the loop

是否可以访问实际循环本身内的循环计数器?下面的代码导致输入参数值,就好像 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

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

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

它指的是列 i(可能不存在)。您需要使用变量 i:

的值构建字符串
"INSERT INTO Table1 (Field1) VALUES (" & CStr(i) & ");"