簡體   English   中英

VBA 訪問表檢查記錄集中的范圍是否有復選框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM