MS ACCESS DLOOKUP如何处理返回数据的错误?

时间:2015-11-10 12:48:15

标签: ms-access null

我有一个项目列表,其中一些项目具有与它们相关的订单标识(nvarchar)。 我希望显示列表中的项目,并使用DLookup显示订单号(如果适用)。 这有效,但是如果没有订单标识,则显示+错误

我对该字段的控制源是:

=DLookUp("[PONumber]","[Q_SalesOrders_CustomerDetails]","[OrderID]=" & [OrderID])

我怀疑发生的事情是,由于没有与该项目相关的订单,因此OrderIDinteger)为空,因此无法为{{1}返回任何内容(POnumber

我是否可以将其翻译为" n / a"在nvarchar字段中?

由于

1 个答案:

答案 0 :(得分:0)

如果您想使用DLookup,则两种情况需要IIf

= IIf([OrderID] IS Null, "n/a", 
      DLookUp("[PONumber]","[Q_SalesOrders_CustomerDetails]","[OrderID]=" & [OrderID])

但是以连续形式使用DLookup并不总是最好的主意。

您可以尝试使用LEFT JOIN作为表单的记录源,以便PONumber可用作源字段。

这样的事情(如果Q_Items是表单的原始记录源):

SELECT Q_Items.*, Nz(Q_SalesOrders_CustomerDetails.PONumber, "n/a") AS PO_Number
FROM Q_Items LEFT JOIN Q_SalesOrders_CustomerDetails
  ON Q_Items.OrderID = Q_SalesOrders_CustomerDetails.OrderID