我知道这可能是一个更普遍的问题,但我已经对我的代码进行了100次查看并且不确定是什么问题。我设置了一个全局标志,以便它可以在我的应用程序的不同形式中使用。
Dim OverPopulated as Boolean
我有一个函数,我首先将它设置为FALSE,在经过一些验证之后,它被设置为TRUE。
现在我做了很多东西,经历了不同的形式,价值在整个时间都保持正确。基本上我需要这个值用于另一种形式,所以当我检查时
if OverPopulated = false then
MsgBox "You Can't do this and that"
exit sub
End if
然后突然间它被设置为FALSE。我已经浏览了我的应用程序中的每个OVERPOPULATED实例并给它设置了一个断点,以确保我无处可将它设置为FALSE,除非我在验证之前将其设置为FALSE。
我的应用程序中只有其他两种形式。有一个地方通过同一个语句运行两次标志(就像上面那个)。它第一次通过时,值是正确的,然后再次通过,并将值设置为FALSE。
有什么想法吗?如果这太模糊,请告诉我,我会尝试编辑它。
编辑:我删除了很多代码但是这里看起来是怎么样的.....
Dim OverPopulated as Boolean
'模块化水平
Private Sub ValidatePopulation()
Dim admDate as date
OverPopulated = False
admDate = Format(Now(), "mm/dd/yyyy")
Select Case revPURP
Case 0, 1, 2
'Check make sure these fields
'some if statements, checking, validation
Case Else ' no need to do a
End Select
OverPopulated = True 'I MAKE SURE IT GETS HERE and is set to TRUE!!!
End sub
现在,我在其他功能中使用它......
If OverPopulated = False Then
If optStat (0).Value = True Or optStat (1).Value = True Then
MsgBox "You are not able to do this”, vbCritical, "Incorrect review status...."
TabPop.Tab = 6
End If
Exit sub
Else
'Proceed with SAVE
End If
所以我有这个。我在其他地方有另外一个声明。这个被击中两次。我第一次逐行浏览它并且它为FALSE,那么第二次该值为TRUE。
答案 0 :(得分:0)
看起来由于某种原因,该值被重置为FALSE。我从表单代码中取出Dim OverPopulated作为布尔值,并将其放在GLOBAL模块中,其中存储了所有其他全局变量。这似乎解决了我在应用程序中操作时保持价值的问题。感谢您的所有意见。
Global OverPopulated as Boolean