我有一个项目列表,其中一些项目具有与它们相关的订单标识(nvarchar
)。
我希望显示列表中的项目,并使用DLookup
显示订单号(如果适用)。
这有效,但是如果没有订单标识,则显示+错误
我对该字段的控制源是:
=DLookUp("[PONumber]","[Q_SalesOrders_CustomerDetails]","[OrderID]=" & [OrderID])
我怀疑发生的事情是,由于没有与该项目相关的订单,因此OrderID
(integer
)为空,因此无法为{{1}返回任何内容(POnumber
)
我是否可以将其翻译为" n / a"在nvarchar
字段中?
由于
答案 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