我有一个带有两个组合框的访问表,PO编号和供应商编号。供应商编号将自动过滤以仅显示与所选PO编号匹配的那些(遗憾的是,PO编号不是唯一的;例如,多个无关的供应商可能将其PO编号设为2180965)。
某些采购订单免于我们的检查过程,我们将它们的列表保存在称为ZeroAudit的表中。该表同时包含免税交货的PO编号和供应商编号。
在我发现采购订单编号不是唯一的之前,我正在使用此代码告诉我们的团队给定的采购订单是否需要检查。如何更新它以要求PO编号和供应商编号均与ZeroAudit表条目匹配才能免于质量检查?
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
答案 0 :(得分:2)
假设您的表/查询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
。因此,如果您要测试零,则Else
语句将涵盖所有其他可能性。