2016-05-16 65 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