ADODB.Recordset.RecordCount 问题。

wh3862881 2007-12-11 02:07:26
Public Function getLastCode(letter As String) As String
Dim rs As New ADODB.Recordset
Dim sqlstr As String


rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
'sqlstr = "select top 1 * from equipment where code like '" & letter & "#####' order by code desc"
sqlstr = "select top 1 * from equipment where code like '" & letter & "*' order by code desc"
Set rs = cn.Execute(sqlstr)

If rs.RecordCount > 0 Then
getLastCode = rs(0).Value
Else
getLastCode = letter & "000000"
End If
End Function



本人刚一直研究C#,刚接触VB 对ADODB还不熟悉,
ask:上述代码,为何rs.RecordCount 始终为0,请达人指教
...全文
367 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
neituib 2007-12-12
  • 打赏
  • 举报
回复
我特别恨菜继明!

想找到更合适的工作,通过内部推荐更容易成功

内推网 内部推荐 求职快线
zuoxingyu 2007-12-12
  • 打赏
  • 举报
回复
rs.CursorLocation = adUseClient
把游标类型改成客户端的,就可以了
白发程序猿 2007-12-11
  • 打赏
  • 举报
回复
是0的话,肯定是SQL语句的问题,就按上面说的把*改成%试一下就好了
TimLee✿ 2007-12-11
  • 打赏
  • 举报
回复
1. rs.CursorLocation = adUseClient
2. vb的sql语句通配符是 %和_
vbman2003 2007-12-11
  • 打赏
  • 举报
回复
0是没有数据返回,是你SQL语法错误,在ACCESS环境中用通配符用*,VB中是通过jet引擎执行SQL语句,JET引擎只支持%通配符
wh3862881 2007-12-11
  • 打赏
  • 举报
回复
If rs.EOF Then
getLastCode = letter & "000000"
Else
getLastCode = rs(0).Value
End If


用了这代码,但程序判断始终是EOF 无论数据库是否有记录。。
of123 2007-12-11
  • 打赏
  • 举报
回复


'Set rs = cn.Execute(sqlstr)
rs.Open sqlstr, cn
wh3862881 2007-12-11
  • 打赏
  • 举报
回复
RecordCount是0还是-1?

RecordCount的值 是0 是不-1
-1 是因为游标设置问题,这个我知道
of123 2007-12-11
  • 打赏
  • 举报
回复

If rs.EOF Then
getLastCode = letter & "000000"
Else
getLastCode = rs(0).Value
End If
  • 打赏
  • 举报
回复
RecordCount是0还是-1?
wh3862881 2007-12-11
  • 打赏
  • 举报
回复
Set cn = New ADODB.Connection
cn.CursorLocation = adUseClient
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\E0508.mdb;Persist Security Info=False;Jet OLEDB:Database Password=hwrj"
cn.Open




cn的设置代码。。
_码农一个_ 2007-12-11
  • 打赏
  • 举报
回复
rs.CursorType = adOpenStatic 是对的
但是数据库连接cn 类型是否设置正确?
  • 打赏
  • 举报
回复
Sorry,我发错了,没仔细看,原来是like语法的问题。

算我没说:)
wh3862881 2007-12-11
  • 打赏
  • 举报
回复
sqlstr = "select top 1 * from equipment where code like '"& letter &"%' order by code desc


sqlstr = "select top 1 * from equipment where code like '"& letter &"*' order by code desc

我在ACCESS数据库中运行过,是可以查询到记录的·通用。
SQL语句无任何问题
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20071206/12/24be2e04-1772-4148-8f67-ec6f91845d46.html
vbman2003 2007-12-11
  • 打赏
  • 举报
回复
ACCESS数据库,VB中查询like语句中的“*”要改为"%"号




sqlstr = "select top 1 * from equipment where code like '"& letter &"%' order by code desc"


7,763

社区成员

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

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