我对VB6中的ADODB记录集有一个疑问,这使我感到困惑了几周。我已将记录集写到工作表中,以获得一些无法直接从记录集获得的结果。 但是随着数据集的建立,将记录集写入工作表会使程序变慢,我想知道是否有人可以为我解决记录集难题。
以下是我遇到的问题- 1)xRst.Recordcount总是返回-1 2)错误消息“参数类型错误,超出可接受范围或彼此冲突”,在设置(A).cursorlocation到adUseclient或adUseServer以及(B).LockType上弹出 3)无法在记录集上获取.getrows =>我认为这与xRst.Recordcount返回-1的原因相同。
下面是我的代码的一部分。以上问题可能是由于提供商的限制所致吗?
xConnstring = "Provider=microsoft.ACE.OLEDB.12.0; Extended Properties='Excel 12.0'; Data Source =" & Thisworkbook.fullname
xcnn.Open xConnstring
xSqlstring = " SELECT * FROM [APRI$] "
Set xRst = xcnn.Execute(xSqlstring)
Msgbox(xRst.RecordCount)
Do Until xRst.EOF
......
xRst.MoveNext
Loop
对于记录集,我还尝试了两种打开方法,但均无效。
Set xRst.activeConnection = xcnn
xRst.Source = xSqlstring
xRst.CursorType = adOpenDynamic
------Error Message Occurs On Below Two Lines------
xRst.CursorLocation = adUseServer
xRst.LockType = adLockOptimistic
xRst.Open
下面的代码将遇到错误,但是当删除最后两个参数时,它将通过
xRst.Open xSqlstring,xcnn,adOpenKeyset,adUseServer,adLockoptimistic
请有人建议我如何获得1)recordset.recordcount,2)recordset.movenext工作?
先感谢堆。