首页 > 解决方案 > 访问表达式问题

问题描述

我有一个 MS Access 表单,我在其中创建了一个下拉列表,我希望在选择项目时更新其他字段。

下面是表达式公式。

当我在下拉列表中选择一个项目时,我得到:

该对象不包含自动化对象“AWM-CCB QC Tracker”

AWM-CCB QC Tracker是我从中提取信息的表格...

=IIf([AWM-CCB UT QC Tracker].[UT ID]=[UT ID],Choose([AWM-CCB UT QC Tracker],[AWM-CCB UT QC Tracker].[UT Owner Name]),"ENTER")

即使我把它改成这样:

=IIf([AWM_CCB_UT_QC_Tracker].[UT ID]=[utiddata],[utnamedata]="TRUE","FALSE") 

或者即使我只是做一个简单的:

=[AWM_CCB_UT_QC_Tracker]![UT_Owner_Name] 

我犯了同样的错误。

标签: formsms-accessexpression

解决方案


我认为您需要在组合框中包含表的主键 (ID) 字段以及您希望用于显示的字段。然后你需要确保组合框的 Bound Column 指向你的主键的列号。

您可以通过为组合框设置以下内容在表单中执行此操作:

列数 = 2

列宽 = 0cm;5cm

柱头 = 否

控制源 = leave_blank

行源 = SELECT ID, YOUR_FIELD FROM YOUR_TABLE;

行源类型 = 表/查询

绑定列 = 1

这样,用户看到的对他们来说是有意义的(一个不错的/显示值),但是传递给任何指向该组合框的公式的值是相关记录的记录 ID(主键)。

如果您始终通过主键引用记录(并且不执行/包括基于不能保证唯一的其他字段的内联查找),您的公式应该保持简单得多。

通过使用向用户显示漂亮显示值的方法,您的表单将更加有用,但在引擎盖下具有计算机/应用程序逻辑使用的主键值。

如果您需要在代码中获取显示值,请参考 [Combo0].[Text],否则只需参考 [Combo0] 或 [Combo0].[Value] 将从行源返回所选记录的主键.


推荐阅读