为什么我下面的SQL语句查询的记录数为-1?电容表里面有很多数据的。

Baby 2011-05-10 01:29:15
Private Sub Command1_Click()
Dim sql$, rs As New ADODB.Recordset, sCon$
Dim cnn As New ADODB.Connection

sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& "D:\customer_lib\30所UserExcelDB.mdb" & ";Persist Security Info=False"
cnn.Open sCon
sql = "select * from 电容 "
Set rs = cnn.Execute(sql)
On Error Resume Next
rs.MoveLast: rs.MoveFirst
On Error GoTo 0
Debug.Print rs.RecordCount
End Sub
...全文
137 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Baby 2011-05-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 vbman2003 的回复:]
recordcount这个只有客户端游标才能正确返回。不设置cnn.CursorLocation = adUseClient的话默认是服务端游标,这个游标下不能得到recordcount...
因为你用了set rs=cnn.execute(sql),这个情况下rs继承cnn游标。所以要设置cnn.CursorLocation = adUseClient
[/Quote]
很详细,谢谢!
vbman2003 2011-05-10
  • 打赏
  • 举报
回复
recordcount这个只有客户端游标才能正确返回。不设置cnn.CursorLocation = adUseClient的话默认是服务端游标,这个游标下不能得到recordcount...
因为你用了set rs=cnn.execute(sql),这个情况下rs继承cnn游标。所以要设置cnn.CursorLocation = adUseClient
Baby 2011-05-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 vbman2003 的回复:]
cnn.CursorLocation = adUseClient
[/Quote]
就是这个原因,为什么呀?
vbman2003 2011-05-10
  • 打赏
  • 举报
回复
cnn.CursorLocation = adUseClient
Baby 2011-05-10
  • 打赏
  • 举报
回复
自己顶
Baby 2011-05-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 flfq 的回复:]
首先要

VB code

Rs.CursorLocation = adUseClient
[/Quote]
试过了,不行。还是查询出-1个记录。
flfq 2011-05-10
  • 打赏
  • 举报
回复
首先要

Rs.CursorLocation = adUseClient

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧