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,请达人指教
...全文
244 点赞 收藏 16
写回复
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"


回复
发动态
发帖子
VB基础类
创建于2007-09-28

7450

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告