为什么总是返回记录数为-1的呢?

zfcheng 2001-08-31 10:19:54
Dim cn As New ADODB.Connection
Dim cm As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim i As Integer

cn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\abc.mdb;Persist Security Info=False;Jet OLEDB:Database Password=abc"
cn.Open
cm.ActiveConnection = cn
cm.CommandType = adCmdText
cm.CommandText = "SELECT * FROM [abc]"
Set rs = cm.Execute
i = rs.RecordCount
MsgBox i
Set rs = Nothing
Set cm = Nothing
cn.Close
...全文
130 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
playyuer 2001-08-31
  • 打赏
  • 举报
回复
应尽量使用默认的 服务器端游标!
仅将游标类型改为键集 rs.CursorType = adOpenKeyset 应该就可以了!

另外仅将 Recordset 改为客户端游标就可以了
rs.CursorLocation =adUseClient
没必要将 连接 改为客户端游标

'所有的人都是正确的,分"赃"不均!

zfcheng 2001-08-31
  • 打赏
  • 举报
回复
谢谢 ERR(太阳)
一会给你多多分
ERR 2001-08-31
  • 打赏
  • 举报
回复
要使用客户端游标才可以
加上
cn.CursorLocation=adUseClient
playyuer 2001-08-31
  • 打赏
  • 举报
回复
Dim cn As New ADODB.Connection
Dim cm As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim i As Integer

cn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\abc.mdb;Persist Security Info=False;Jet OLEDB:Database Password=abc"
cn.Open
cm.ActiveConnection = cn
cm.CommandType = adCmdText
cm.CommandText = "SELECT * FROM [abc]"

'注意在这里加一句:
rs.CursorType = adOpenKeyset
'rs.CursorLocation =adUseClient '若还不行再加这句


Set rs = cm.Execute
i = rs.RecordCount
MsgBox i
Set rs = Nothing
Set cm = Nothing
cn.Close
newyon 2001-08-31
  • 打赏
  • 举报
回复
Dim rs As New ADODB.Recordset
rs.open "select * from [abc]",cn,1,1
dzbswl 2001-08-31
  • 打赏
  • 举报
回复
rs.CursorLocation = adUseClient '加上这句
Set rs = cm.Execute
i = rs.RecordCount

zfcheng 2001-08-31
  • 打赏
  • 举报
回复
rs.recordcount为什么总是-1的呢?我明明有记录的。如果我用adodc控件的话,可以返回正确的数
zfcheng 2001-08-31
  • 打赏
  • 举报
回复
可是你说的那种不行啊,还是-1
zfcheng 2001-08-31
  • 打赏
  • 举报
回复
算了,下次我给你多多分啦,好不好!

7,762

社区成员

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

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