VBA 访问循环代码不工作
VBA Access Loop Code not working
有人能帮忙吗??
这段代码没有在应该开始的时候开始,也没有在应该停止的时候停止,我不明白为什么。
Private Sub Condition1_Click()
Dim Condition1 As Boolean
Do
DoCmd.OpenQuery "qGBX2b"
DoCmd.OpenQuery "qGBX2c"
DoCmd.OpenQuery "qGBX2d"
CurrentDb.Execute "ALTER TABLE GBX2Temp ALTER COLUMN Line COUNTER(1,1)"
DoCmd.Requery
Loop Until Condition1 = True
MsgBox "Done", vbDefaultButton1, "Done"
End Sub
它是运行来自表单,其中一个字段正在倒计时,Condition1 是一个字段,一旦达到某个值就会变为 TRUE。
正如上面的代码,当Condition1的值为FALSE时,它运行s一次并且不循环。如果我将 Loop criteria 更改为“Loop Until Condition1 = False”,它 运行s while the value is FALSE, but does not stop when it changes to True.
我哪里错了?
您似乎遇到了范围问题。当您发出 DIM
语句时,该变量名称将覆盖可能存在的所有其他字段或控件名称,除非您专门指定范围(例如 me.Condition1
)
如果您有一个名为 Condition1
的字段或文本框,您只需删除 dim
语句,它就会使用该控件或字段的值。我建议您将文本框重命名为字段名称以外的其他名称……仅仅是因为您所指的值是完全明确的。因此,如果您的字段名称是 Condition1
,则将您的文本框命名为 txtCondition1
.
有人能帮忙吗??
这段代码没有在应该开始的时候开始,也没有在应该停止的时候停止,我不明白为什么。
Private Sub Condition1_Click()
Dim Condition1 As Boolean
Do
DoCmd.OpenQuery "qGBX2b"
DoCmd.OpenQuery "qGBX2c"
DoCmd.OpenQuery "qGBX2d"
CurrentDb.Execute "ALTER TABLE GBX2Temp ALTER COLUMN Line COUNTER(1,1)"
DoCmd.Requery
Loop Until Condition1 = True
MsgBox "Done", vbDefaultButton1, "Done"
End Sub
它是运行来自表单,其中一个字段正在倒计时,Condition1 是一个字段,一旦达到某个值就会变为 TRUE。
正如上面的代码,当Condition1的值为FALSE时,它运行s一次并且不循环。如果我将 Loop criteria 更改为“Loop Until Condition1 = False”,它 运行s while the value is FALSE, but does not stop when it changes to True.
我哪里错了?
您似乎遇到了范围问题。当您发出 DIM
语句时,该变量名称将覆盖可能存在的所有其他字段或控件名称,除非您专门指定范围(例如 me.Condition1
)
如果您有一个名为 Condition1
的字段或文本框,您只需删除 dim
语句,它就会使用该控件或字段的值。我建议您将文本框重命名为字段名称以外的其他名称……仅仅是因为您所指的值是完全明确的。因此,如果您的字段名称是 Condition1
,则将您的文本框命名为 txtCondition1
.