在专家交流和teck 共和国有一些 关于使用 combobox.recordset 属性在 Access 表单中填充组合框的文献。
这些控件通常在控件的“行源”属性中填充“SELECT *”字符串,引用应用程序客户端上可用的表或查询。当我需要在组合框中显示服务器端数据时,我会创建一个临时本地表并导入请求的记录。这很耗时,特别是对于大桌子。
能够使用记录集来填充组合框控件将允许用户直接显示来自服务器端的数据。
受前面两个例子的启发,我写了一些代码如下:
Dim rsPersonne as ADODB.recordset
Set rsPersonne = New ADODB.Recordset
Set rsPersonne.ActiveConnection = connexionActive
rsPersonne.CursorType = adOpenDynamic
rsPersonne.LockType = adLockPessimistic
rsPersonne.CursorLocation = adUseClient
rsPersonne.Open "SELECT id_Personne, nomPersonne FROM Tbl_Personne"
fc().Controls("id_Personne").Recordset = rsPersonne
在哪里:
- connexionActive:是我到数据库服务器的永久 ADO 连接
- fc(): 是我当前/活动的形式
- 控件(“id_Personne”):是用于填充公司员工列表的组合框控件
- 2003年访问版本
不幸的是,它不起作用!
在调试模式下,我能够检查记录集是否已正确创建,包含请求的列和数据,并与组合框控件正确关联。不幸的是,当我显示表单时,我不断得到一个空的组合框,里面没有任何记录!非常感谢任何帮助。
编辑:
这个记录集属性确实适用于特定的组合框对象,而不适用于标准控件对象,几天前我很惊讶地发现了它。我已经尝试过使用组合框的回调函数,或者使用组合框的“addItem”方法填充列表。所有这些都非常耗时。