使用两个标准的 DCount
DCount using two Criteria
我有一个带有两个组合框的访问表单,PO 编号和供应商编号。供应商编号将自动过滤以仅显示与所选 PO 编号匹配的供应商(很遗憾,PO 编号不是唯一的;例如,多个不相关的供应商可能将 2180965 作为其 PO 编号)。
一些 PO 免于我们的检查流程,我们在名为 ZeroAudit 的 table 中保留了一份清单。 table 包含豁免交付的 PO 编号和供应商编号。
在我发现 PO 编号不是唯一的之前,我使用此代码告诉我们的团队某个给定的 PO 是否需要检查。我如何更新它以要求 PO 编号和供应商编号都匹配 ZeroAudit table 条目以免除 QA?
Private Sub VendorNumber_AfterUpdate()
Dim IntX As Integer
IntX = DCount("*", "ZeroAudit", "PONumber=" & Chr(34) & Me.PONumber.Value & Chr(34))
Debug.Print Me.PONumber.Value
If IntX = 0 Then
MsgBox "Needs QA"
Me.PONumber.SetFocus
ElseIf IntX > 0 Then
MsgBox "Does NOT Need QA — DIM and RETAIL CHECK REQUIRED"
Me.PONumber.SetFocus
End If
End Sub
假设您的 table/query ZeroAudit
包含一个名为 VendorNumber
的字段,并且您的表单还包含一个名为 VendorNumber
的字段,那么下面提供了两种可能的方法:
使用DCount
:
If DCount("*", "ZeroAudit", "PONumber='" & Me.PONumber & "' and VendorNumber='" & Me.VendorNumber & "'") = 0 Then
MsgBox "Needs QA"
Else
MsgBox "Does NOT Need QA — DIM and RETAIL CHECK REQUIRED"
End If
Me.PONumber.SetFocus
使用DLookup
:
If IsNull(DLookup("PONumber", "ZeroAudit", "PONumber='" & Me.PONumber & "' and VendorNumber='" & Me.VendorNumber & "'")) Then
MsgBox "Needs QA"
Else
MsgBox "Does NOT Need QA — DIM and RETAIL CHECK REQUIRED"
End If
Me.PONumber.SetFocus
请注意,ElseIf
不是必需的,因为 DCount
的 return 要么为正,要么为零;因此,如果您要测试零,所有其他可能性都包含在 Else
语句中。
我有一个带有两个组合框的访问表单,PO 编号和供应商编号。供应商编号将自动过滤以仅显示与所选 PO 编号匹配的供应商(很遗憾,PO 编号不是唯一的;例如,多个不相关的供应商可能将 2180965 作为其 PO 编号)。
一些 PO 免于我们的检查流程,我们在名为 ZeroAudit 的 table 中保留了一份清单。 table 包含豁免交付的 PO 编号和供应商编号。
在我发现 PO 编号不是唯一的之前,我使用此代码告诉我们的团队某个给定的 PO 是否需要检查。我如何更新它以要求 PO 编号和供应商编号都匹配 ZeroAudit table 条目以免除 QA?
Private Sub VendorNumber_AfterUpdate()
Dim IntX As Integer
IntX = DCount("*", "ZeroAudit", "PONumber=" & Chr(34) & Me.PONumber.Value & Chr(34))
Debug.Print Me.PONumber.Value
If IntX = 0 Then
MsgBox "Needs QA"
Me.PONumber.SetFocus
ElseIf IntX > 0 Then
MsgBox "Does NOT Need QA — DIM and RETAIL CHECK REQUIRED"
Me.PONumber.SetFocus
End If
End Sub
假设您的 table/query ZeroAudit
包含一个名为 VendorNumber
的字段,并且您的表单还包含一个名为 VendorNumber
的字段,那么下面提供了两种可能的方法:
使用DCount
:
If DCount("*", "ZeroAudit", "PONumber='" & Me.PONumber & "' and VendorNumber='" & Me.VendorNumber & "'") = 0 Then
MsgBox "Needs QA"
Else
MsgBox "Does NOT Need QA — DIM and RETAIL CHECK REQUIRED"
End If
Me.PONumber.SetFocus
使用DLookup
:
If IsNull(DLookup("PONumber", "ZeroAudit", "PONumber='" & Me.PONumber & "' and VendorNumber='" & Me.VendorNumber & "'")) Then
MsgBox "Needs QA"
Else
MsgBox "Does NOT Need QA — DIM and RETAIL CHECK REQUIRED"
End If
Me.PONumber.SetFocus
请注意,ElseIf
不是必需的,因为 DCount
的 return 要么为正,要么为零;因此,如果您要测试零,所有其他可能性都包含在 Else
语句中。