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