1

我有一个带有两个组合框的访问表单,即 PO 编号和供应商编号。供应商编号将自动过滤以仅显示与所选 PO 编号匹配的那些(遗憾的是,PO 编号不是唯一的;例如,多个不相关的供应商可能将 2180965 作为其 PO 编号)。

一些 PO 免于我们的检查流程,我们将它们的列表保存在名为 ZeroAudit 的表中。该表包含豁免交货的采购订单编号和供应商编号。

在我发现 PO 编号不是唯一的之前,我使用此代码告诉我们的团队给定的 PO 是否需要检查。如何更新它以要求 PO 编号和供应商编号都与 ZeroAudit 表条目匹配才能免于 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
4

1 回答 1

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语句涵盖了所有其他可能性。

于 2019-08-27T21:38:33.273 回答