MS Access, если запись существует для человека - PullRequest
0 голосов
/ 06 июня 2018

У меня есть следующий код VBA, который я хотел использовать, прежде чем понять, что он неправильный:

Len(DLookup("Service_User_ID", "tblPurchaseOrders", "Service_User_ID=" & .Person_ID) > 0) And IsNull(DLookup("Purchase_Order_Number", "tblPurchaseOrders", "Purchase_Order_Number='" & .Purchase_Order & "'"))

Я хочу, чтобы код проверял, существует ли Purchase_Order_Number для записей с этимService_User_ID.

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Просто проверьте Нуль :

Found = Not IsNull(DLookup("Service_User_ID", "tblPurchaseOrders", "Service_User_ID = " & .Person_ID & " And Purchase_Order_Number = '" & .Purchase_Order & "'"))
0 голосов
/ 06 июня 2018

Не уверен, что я правильно понимаю ваши поля таблицы, поскольку я предполагаю, что Purchase_Order_Number уникален?Если это так, зачем вам Service_User_ID?

В любом случае, попробуйте это.

Оберните его в функцию, чтобы иметь возможность вызывать его из нескольких мест.

Function OrderExists(ByVal purchaseOrder As String, ByVal personId As Long)
    OrderExists = DCount("Purchase_Order_Number", "tblPurchaseOrders", "Purchase_Order_Number='" & purchaseOrder & "' AND Service_User_ID=" & personId) > 0
End Function

Для вызова:

Sub T()

    Dim bool As Boolean
    bool = OrderExists("ABCD", 112)

    Debug.Print bool
End Sub
...