【问题标题】:Populating a list box from the form in MS Access从 MS Access 中的表单填充列表框
【发布时间】:2013-06-21 09:32:37
【问题描述】:

我有一个动态搜索的表单。 我正在使用一些非常讨厌的 Like *' & {value} & *' OR Like (etc) 参数在表单上设置过滤器。

令我惊讶的是,过滤器实际上运行得非常快。这很好。 然而,我一直被混为一谈的设计要求我有一个列表框,它显示所有与过滤条件匹配的客户的客户名称。

现在,我知道 Access 已经有了这些信息,基本上我只想让列表框显示我在打开数据表视图时看到的第一列。

遗憾的是,推荐的方法似乎是用我的往返查询访问数据库,这既讨厌又慢。

有没有办法通过从表单的“数据表”中读取值来“作弊”?

我尝试将表单的记录集分配给列表框的记录集,但 Access 不喜欢这样。

【问题讨论】:

  • 看起来这样可以解决问题Set Me.ListN.Recordset = Me.Recordset 我想知道我是否应该改用 RecordsetClone?

标签: vba listbox ms-access-2010


【解决方案1】:

当过滤器在表单上处于活动状态时,表单的.RecordsetClone 对象会反映过滤后的集合,因此您应该能够使用它来填充和重新填充列表框。您必须进行一些试验才能找到适合您特定情况的“最佳”方法,但一种方法是找到一个在所需时间触发的表单事件(On Current,也许?)并使用它来只需清除列表框并使用 .AddItem 在循环通过 RecordsetClone 的副本时重新填充它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    • 2021-12-21
    相关资源
    最近更新 更多