如何在 MS Access 2010 中使用 VBA 选择多值组合框的值?

Posted

技术标签:

【中文标题】如何在 MS Access 2010 中使用 VBA 选择多值组合框的值?【英文标题】:How do I select values of a multivalue combobox using VBA in MS Access 2010? 【发布时间】:2014-07-14 15:46:52 【问题描述】:

我有一个带有“公司”组合框和“地址”多值组合框的 MS Access 2010 表单。

选择公司后,更新后事件会重新查询地址组合框,以便仅列出与公司相关的地址。这完美地工作;但是大多数公司只有一个地址值,所以如果只有一个,我想自动选择地址。

我花了很多时间尝试各种方法,例如:

AddressCombo.Value = AddressCombo.ItemData(0)

这会引发“运行时错误 3032”,而以下内容似乎没有做任何事情。

AddressCombo.Selected(0) = True

我知道使用列表框更好,但我想知道这是否可以使用多值组合框来完成。

对于那些不了解多值组合框 (MSA 2007+) 的人,这里有一段视频:

http://www.youtube.com/watch?v=queKMe9MiSs

【问题讨论】:

您使用什么代码来填写地址组合?注意,MS Access 不支持多值组合框。 office.microsoft.com/en-us/access-help/… ... 注意新列表从另一个称为多值查找字段的数据库组件中获取数据。在您可以创建多值列表之前,您的一个数据库表中必须有一个多值查找字段。 请不要使用多值字段,除非您使用的是 Sharepoint。我想知道你是说列表框吗? 你可以从这里开始access.mvps.org/access/lookupfields.htm 虽然我坦率地承认自己是一个完全的新手,但这篇文章说查找表如果被理解而不被误用是很有用的。 improvingsoftware.com/2009/10/02/… 【参考方案1】:

我打电话给一个比我聪明得多的朋友。他说,根据他的 VB 经验,有时在控件被激活之前,您无法访问控件的属性。

他建议在尝试设置选项之前使用 .Dropdown 来“激活”组合框。

Me!AddressCombo.SetFocus
Me!AddressCombo.Dropdown
Me!AddressCombo.Selected(0) = True
Me!AddressCombo.Selected(1) = False
Me!AddressCombo.Selected(2) = True

他是绝对正确的,代码使我能够选择所需的选项。

【讨论】:

以上是关于如何在 MS Access 2010 中使用 VBA 选择多值组合框的值?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET - VB.NET - 更新 MS_Access 表

如何在 VB.net 中使用 ROWNUM 从 MS-Access 数据库中检索数据

如何使用 vb.net 从 MS Access DB 表单中找出 Activex 控件

使用 VB.NET 打印 MS Access 报告

如何在 MS Access 2010 中组合多种查询类型?

VB.Net 使用创建表查询将 MS Access 表中的 AllowZeroLength 属性设置为否