是否可以在VBA中的本地表上的MS Access中执行预准备语句,如下所示:
UPDATE part SET part_description=? WHERE part_id=?
Run Code Online (Sandbox Code Playgroud)
如果是这样怎么办?
在专家交流和teck共和国有一些文献可以 使用combobox.recordset属性来填充Access表单中的组合框.
这些控件通常在控件的"rowsource"属性中填充"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
Run Code Online (Sandbox Code Playgroud)
哪里:
不幸的是,它不起作用!
在调试模式下,我能够检查记录集是否已正确创建,具有请求的列和数据,并且与组合框控件正确关联.不幸的是,当我显示表单时,我不断得到一个空的组合框,没有记录!任何帮助都非常感谢.
编辑:
这个记录集属性确实可用于特定的组合框对象,而不是标准控制对象,几天前我发现它非常惊讶.我已经尝试使用combobox的回调函数,或者使用组合框的"addItem"方法填充列表.所有这些都很耗时.