基于记录集向组合框添加值

Posted

技术标签:

【中文标题】基于记录集向组合框添加值【英文标题】:Adding value to combobox based on recordset 【发布时间】:2018-02-22 09:29:56 【问题描述】:

我有一个组合框,他的行源设置为:-

Set rs = CurrentDb.OpenRecordset("SELECT...")
Set cboBroker.Recordset = rs

我是否可以在列表顶部添加一个名为“<ALL>”的值,如果可以,如何?

【问题讨论】:

【参考方案1】:

如果组合框行源直接绑定到记录集,则需要在记录集中进行任何修改。不过你可以这样做:

SELECT "<ALL>" FROM MSysObjects WHERE ID = (SELECT First(ID) FROM MSysObjects)
UNION ALL
SELECT ... 

但你不应该。这会降低一些性能,并且会使添加列变得困难。

相反,您可以使用不可编辑的值列表,并像这样填充它:

cboBroker.RowSource = ""
cboBroker.AddItem "<ALL>"
Set rs = CurrentDb.OpenRecordset("SELECT...")
Do While Not rs.EOF
   cboBroker.AddItem rs.Fields(0).Value
   rs.MoveNext
Loop

【讨论】:

以上是关于基于记录集向组合框添加值的主要内容,如果未能解决你的问题,请参考以下文章

除了记录集之外,如何以编程方式将项目添加到 ms 访问列表/组合框

基于当前字段值的MS访问表单组合框行源

组合框运行代码/查询抛出“记录集不可更新”

访问 VBA - 使用组合框(多值字段)时类型不匹配

多值组合框在表单中创建多条记录

表链接表单上的 MS Access 绑定组合框