[英]VBA Access table check if range in recordset has a checkbox
我正在嘗試設置一種方法來檢查表中是否為表中的每個“PackNum”選中了一個復選框。 因此,例如,如果“PackNum”123456 至少有一個復選框,那么就可以了。 但如果“PackNum”654321 沒有任何復選框,我想拋出一條消息。
包裝號 | 提供 | Select |
---|---|---|
123456 | 達 | |
123456 | DD | X |
123456 | 直流 | X |
645321 | 抄送 | |
645321 | 光盤 | |
645321 | CF |
我一直在修改以下代碼,但運氣不佳。
Private Sub Okay_Button_Click()
Dim db As DAO.Database
Dim rs2 As DAO.Recordset
Dim strPack As String
Checked = False
Set db = CurrentDb
Set rs2 = CurrentDb.OpenRecordset("tblMtemp")
strPack = rs2.Fields("PackNum").Value
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Data Validation check that there is at least one box checks for each packnumber
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If Not (rs2.EOF And rs2.BOF) Then
rs2.MoveFirst
Do Until rs2.EOF = True
If IsNull(DLookup("ID", "tblMtemp", rs2.Fields("Select") = True And rs2.Fields("PackNum") = " & strPack & ")) Then
MsgBox "Box is Checked"
Else
MsgBox "Box is not Checked"
End If
rs2.MoveNext
Loop
End If
End Sub
這一直假設一切都是錯誤的。 我認為這可能是因為我正在使用 Access? 我不確定。 我對構建這樣的東西的語法不太熟悉。
假設您的表名為MyTable
並且您的表的主鍵字段是TableID
則:
IsNULL(DLookup("TableID","MyTable","Select=TRUE AND PackNum=123456"))
如果"PackNum" 123456 has at least one checkbox
則返回FALSE
。
如果你想在123456
是一個變量的循環中使用它:
IsNULL(DLookup("TableID","MyTable","Select=TRUE AND PackNum=" & PackNumVariable ))
如果PackNum
是文本而不是數字類型:
IsNULL(DLookup("TableID","MyTable","Select=TRUE AND PackNum='" & PackNumVariable & "'"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.