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

Adding value to combobox based on recordset

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

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

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

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

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

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

相反,您可以使用 non-editable 值列表,并像这样填充它:

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