一、问题重现:
在ACCESS2003中,通过ADO打开一个远程表,用下面的代码给窗体的组合框赋上数据源:
'前面代码省略
........
strSQL = "select * from tblTest"
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient '本地游标
rst.Open strSQL, strConn, adOpenDynamic, adLockOptimistic
set me.组合框名称.Recordset = rst
在Access2000版中一试,发现不支持set me.组合框名称.Recordset = rst
二、解决方法:
1、直接定义值列表
这种方式如果行数过多,则不可行,最大长度为备注字段大小。
2、不使用组合框,而使用其他窗体进行录入,然后将选择结果回传到文本框
这种方式将耗费大的编程时间,不合算
3、将查询结果生成为mdb中的临时表。
这种方式相对于第2种方式更好一些,保存为临时表后,将组合框的数据源用临时表来赋上,当操作员关闭窗体时,将临时表删除。
4、用GetString方法解决,这是上述解决方法中的最佳解决方法(由zhuyiwen提供),分隔符用分号";"。