访问 2010 组合框 - 更新后无法 DLookup 结果
Posted
技术标签:
【中文标题】访问 2010 组合框 - 更新后无法 DLookup 结果【英文标题】:Access 2010 combo box -- can't DLookup the result after update 【发布时间】:2014-09-22 21:54:28 【问题描述】:我有一个数据库,我在其中使用表单作为前端将数据输入到表中。我有一个字段Manager Name
,它是一个从喜欢的表格中提取的组合框。这是我的问题,我有另一个字段Manager ID
,我正在尝试根据为Manager Name
选择的值从链接表中自动填充,更新后Manager Name
。我尝试使用以下代码,但没有得到任何回复:
[Manager ID] = DLookup("[ID]", "tbl_PSRpt_import", "[Name]= forms![tbl_ManagerChange]![Manager Name]")
tbl_PSRpt_import
是链接表。
还有其他使用相同设置的字段(在更新一个字段后 Dlookup 将值放入另一个字段)有效,但由于某种原因,这不起作用。难道它是一个链接表的事实?还是别的什么?
【问题讨论】:
表链接没关系。在组合框上重新开始。让 Access 向导为您构建它。将经理 ID 存储在字段中,而不是经理。这是处理此问题的常用方法。 组合框是一个独立于Manager ID
的字段,它将被锁定以供用户输入。我需要存储这两条信息,因为它们被输入到 Excel 电子表格中以提交请求。我想根据用户通过组合框在Manager Name
中输入的内容来查找Manager ID
。
【参考方案1】:
让我们将控件命名为cboManagerSelect
。这是一个未绑定的控件,因此 Control 属性中没有任何内容。
组合框的数据将是ID, Name
-- 两列。
在该控件属性的“格式”选项卡下,您可以将列宽指定为0",1.2"
。这具有隐藏第一列的效果。
您的 VBA 不会使用数据查找。这已经通过此配置完成。只需对该控件使用AfterUpdate()
事件即可:
MyForm!ManagerID = MyForm!cboManagerSelect.Column(0)
Column(1)
会给你名字,但你想要 ID,所以你取第一列 (0)
。
如果您想继续使用DLookup()
,请查看以下内容是否有帮助:https://***.com/a/15366878/122139。
【讨论】:
以上是关于访问 2010 组合框 - 更新后无法 DLookup 结果的主要内容,如果未能解决你的问题,请参考以下文章