VBA访问循环代码无法正常工作

时间:2015-11-27 17:32:28

标签: vba ms-access-2013

任何人都可以帮忙吗?

此代码在应该启动的时候没有启动,并且在应该启动时没有停止,我无法找出原因。

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。如果我将Loop条件更改为“Loop Until Condition1 = False”,它将在值为FALSE时运行,但在更改为True时不会停止。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

您似乎遇到了范围问题。当您发出DIM语句时,该变量名称将覆盖可能存在的所有其他字段或控件名称,除非您专门指定范围(例如me.Condition1

如果您有一个名为Condition1的字段或文本框,则只需删除dim语句,它就会使用该控件或字段的值。我建议您将文本框重命名为字段名称之外的其他内容...只是因为它是完全明确的,您指的是哪个值。因此,如果您的字段名称为Condition1,请将文本框命名为txtCondition1