2016-05-16 67 views
0

我有一个表格填充表中的项目。每个项目都有一个复选框,允许用户在点击一个按钮后请求该项目。请求是复选框。我试过 Me!Requested = 0,这给出了相同的结果。复选框总是返回false

问题是,即使选中该复选框值,也会始终返回false。参考代码,我总是得到第一条消息。

Private Sub btnSubmitRequest_Click() 

If Me!Requested = False Then 
    MsgBox ("Please select at least 1 item to check out.") 
    Exit Sub 
Else 
    MsgBox ("123") 
End If 

End Sub 
+1

我!Requested.Value =假只需加.value的 – jcarroll

+0

后,我想,我也得到了相同的结果。 – duberry

+0

Try Me.Requested.Value = False而不是“!” – jcarroll

回答

0

正如我上面写的,Me!Requested只会看Requested复选框当前记录。所以无论它有什么样的随机价值,都会决定结果。

如果你想检查至少有一个Requested复选框被选中,你需要看看他们。你可以这样做,例如具有超过Me.RecordsetClone的循环,例如,

Dim rs As DAO.Recordset 
Dim nSelected As Long 

nSelected = 0 
Set rs = Me.RecordsetClone 
Do While Not rs.EOF 
    If rs!Requested = True Then 
     nSelected = nSelected + 1 
    End If 
    rs.MoveNext 
Loop 
rs.Close 

MsgBox "Selected: " & nSelected 
+0

这很有道理,但是消息说我选中了0条记录,即使我选中了一个框。 – duberry

+0

@duberry:你保存了记录吗?如果你检查多个盒子怎么办?这将有助于:[如何调试您的VBA代码](http://www.cpearson.com/Excel/DebuggingVBA.aspx) – Andre

+0

是的,我检查了多个框。奇怪的是,代码仅在表单中填充了一条记录时才起作用。例如,从屏幕截图中可以看到,我有用于过滤记录的按钮。 “工具”过滤器只显示一条记录,因为我只在表中列出了一个工具。当我选择单个工具然后单击提交请求按钮时,该消息会说我选择了1条记录。如果我切换过滤器或检查任何其他框,信息会说我选择了0条记录。 – duberry