用Active / Inactive替换DLookup中的0 / -1布尔值

时间:2014-07-15 19:27:37

标签: ms-access combobox access-vba ms-access-2010

我尝试使用我的DLookup在控件源中执行If语句,但这不起作用。

这是针对Employee表中的EmployeeStatus - 我在子窗体中显示EmployeeStatus。但是,使用我的DLookup,它只显示状态为0或-1。

=DLookUp("ActiveEmployee","Employee","EmployeeID=" & [cboEmployee])

如何让0 / -1成为主动/非主动?

1 个答案:

答案 0 :(得分:0)

试试这个:

IIF(DLookUp("ActiveEmployee","Employee","EmployeeID=" & [cboEmployee]) = 0, "Active", "Inactive")

我不是100%确定您的数据是如何存储的,但是您说DLookup返回0或-1(False或True)来评估{返回的内容{1}}。作为旁注 - 众所周知,DLookup函数执行速度非常慢,因为表格变得中等大小。如果速度是一个因素,我可能采取不同的方法。

话虽这么说,我们可以使用Lookup本质上是:

IIF()

简单的例子:

IIF(If this statement = something, What do you want to return if it's True, What do you want to return if it's False)

在我的回答中:

如果IIF(Left("OverMind", 1) = "O", "O is the first letter in OverMind", "O is not the first letter in OverMind")返回0,则返回"活动"。如果DLookup返回-1(或其他任何内容),则返回"非活动"。