访问 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 结果的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 2010:未绑定的组合框不会更新

组合框值自动更新

从预先存储的参数化访问查询填充组合框

访问表单组合框 listindex 更改

MS 访问组合框

动态填充和更新组合框中的项目