首页 > 解决方案 > 具有相当简单的IIF的文本框上的间歇性#error

问题描述

我有一个带有选项卡控件的客户表单,其中包含客户拥有的特定项目的详细信息:地租、电力和车库。他们可能拥有所有 3 个,只是地租和电,或者只是一个车库。如果他们没有项目,则该选项卡将被隐藏。

该问题仅出现在 Garage 选项卡上:我在金额文本框中间歇性地收到 #ERROR。如果我关闭客户并重新打开它们,有时它会自行清除(不执行任何操作)。有时它不会。有时需要我重新打开几次才能显示值。

相关框是:txtActualAmountDue,来源如下:
=iif([tenant],[txtNet],[txtGarageCharge])

接下来的两个是锁定的文本框,让生活更轻松

我能想到的唯一要提的是,如果客户不是租户,那么 txtNet 和 txtVAT 是隐藏的。我有时会得到#Type!在 txtNet 和 txtVat 中也是如此 - 显然我也得到了 #Error - 但并非总是如此:有时它们的价值还可以,但我仍然得到 #Error。我已经注释掉了隐藏这些文本框的加载/当前方法行,以查看是否是这样,但这没有任何区别。

就像我说的那样——它不是每次都会发生:只是偶尔。这可能与表格上事物的价值/填充顺序有关吗?一旦它被填充一次(每个客户的值都是相同的),就可以了吗?如果是这样,我如何强制它以正确的顺序对文本框进行赋值?

标签: ms-accesstextboxms-access-2016iif

解决方案


这可能是一个时间问题,所以尽量避免中间计算:

txtNet = DLookup("[GarageCharge]/(1+[GarageVat])","Variables", criteria)
txtVat = DLookup("[GarageCharge]/(1+[GarageVat])*[GarageVat]","Variables", criteria)

或者,最终:

=IIf([tenant],DLookup("[GarageCharge]/(1+[GarageVat])","Variables", criteria),DLookup("[GarageCharge]","Variables", criteria))

推荐阅读