Sql 按钮将布尔值更改为true或false;不总是假的吗?

Sql 按钮将布尔值更改为true或false;不总是假的吗?,sql,vba,ms-access,Sql,Vba,Ms Access,我有一个按钮的代码,它设置了一个名为ProjectCompleteOrgBtn的布尔值 我试图使这个按钮设置布尔值为真,如果你点击它,然后如果你再次点击后,它使它为假,然后再次为真,重复 正确和错误对下面的表格进行不同的排序。虽然现在你每次点击按钮,它总是正确的。我该如何解决这个问题 Private Sub ProjectCompleteOrgBtn_Click() Dim ProjectCompeleteOrgB As Boolean If ProjectCompleteOrgB = Tr

我有一个按钮的代码,它设置了一个名为ProjectCompleteOrgBtn的布尔值

我试图使这个按钮设置布尔值为真,如果你点击它,然后如果你再次点击后,它使它为假,然后再次为真,重复

正确和错误对下面的表格进行不同的排序。虽然现在你每次点击按钮,它总是正确的。我该如何解决这个问题

Private Sub ProjectCompleteOrgBtn_Click()

Dim ProjectCompeleteOrgB As Boolean

If ProjectCompleteOrgB = True Then
Set ProjectCompleteOrgB = False
Else
Set ProjectCompleteOrgB = True



If ProjectCompleteOrgB = False Then

MsgBox (False)
Forms!DatabaseF.ProjectQSubF.Form.RecordSource = "Select * from ProjectsQ ORDER BY ProjectComplete ASC"
Forms!DatabaseF.ProjectQSubF.Form.Refresh

Else

MsgBox (True)
Forms!DatabaseF.ProjectQSubF.Form.RecordSource = "Select * from ProjectsQ ORDER BY ProjectComplete DESC "
Forms!DatabaseF.ProjectQSubF.Form.Refresh
ProjectCompleteOrgB = False

End If

End Sub
首先,你知道

Dim ProjectCompeleteOrgB As Boolean
但请注意,它拼写错误(complete)

然后你写

If ProjectCompleteOrgB = False Then
但是您的代码只会在
If
True
块中更改该属性或变量的值。它在其他任何地方都不会被改变

此外,您可以这样做:

If ProjectComplete = True Then
Set ProjectComplete = False
Else
Set ProjectComplete = True
只要写就行了

ProjectComplete = Not ProjectComplete

很抱歉,我在网站上再次编写代码时把代码弄乱了。我在上面把它修好了。所有不在排序中的ProjectComplete都应该是ProjectCompleteOrgB。我想我需要做的是将布尔值的数据存储在某个位置,因为每次单击按钮,它都会将值重置为0;每次都做同样的事情,而不是相反的事情。你的意思是你没有将
ProjectCompleteOrgB
定义为表单的属性??看,这就是为什么Visual Basic如此糟糕的原因。请在表单中添加
选项Explicit On
,作为其第一行,然后当变量尚未声明时,您将收到通知。不,我试图在onclick的代码中完成所有操作。虽然现在我想起来了,但我不认为这是可能的,是吗?我需要扔掉一个复选框什么的,对吗?