为什么我的RecordCount的值老是0,我连接的是SQL数据库,里面也有记录,但相同记录在VB中输入却返回0值!

RT,以下是本人的一段代码:PrivateSubCommand1_Click()IfLen(Text1.Text)>0ThenDimsqlstrAsStringsqlst... RT,以下是本人的一段代码:
Private Sub Command1_Click()
If Len(Text1.Text) > 0 Then
Dim sqlstr As String
sqlstr = "select * from loginaccount where user='" & Text1.Text & "'"
rs.Open sqlstr, cn, adOpenDynamic, adLockOptimistic
If rs.RecordCount > 0 Then
If Text2.Text = Trim(rs.Fields(1).Value) Then
frmmain.Show
Unload Me
Else
MsgBox ("密码错误")
End If
Else
MsgBox ("没有此用户")
End If
rs.Close
Else
MsgBox ("请输入用户")
End If
End Sub
刚开始以为RecordCount返回的是-1值,但后来才发现,不管怎么输入,得到的都是0值,这是为什么???求教了!
展开
 我来答
百度网友bdb9803
2011-07-10 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:53%
帮助的人:1亿
展开全部
你可以在sql中调试一下这个sql语句,看看结果:
select * from loginaccount where user='Text1中的输入值'
追问
不行哇……
追答
光说不行,无法解决。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzp4881
2011-07-10 · TA获得超过2394个赞
知道大有可为答主
回答量:2825
采纳率:0%
帮助的人:2999万
展开全部
rs.Open sqlstr, cn, adOpenDynamic, adLockOptimistic
前面加上
set rs=server.CreateObject("adodb.recordset")
更多追问追答
追问
大哥,谢谢你帮忙了,但是加上后得到的是:“实时错误'424' 要求对象”的提示框,并且调试后选择显示的就是加上去的这条代码……
这又该怎么办???
帮下忙,弄好了再加50分
感激不尽了
追答
你是VB啊,改成Set rs = New Adodb.Recordset试试
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-10
展开全部
cn是你的connection吧,在cn 打开(open)之前要设置:cn.CursorLocation = adUseClient
追问
还是不行……
追答
之前没注意到你的rs
除了cn.CursorLocation = adUseClient 外,还有
rs.CursorLocation = adUseClient
再:
rs.Open sqlstr, cn, adOpenKeyset, adLockOptimistic '是adOpenKeyset而不是adOpenDynamic
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华夏日长兴
2011-07-10 · TA获得超过9592个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3720万
展开全部
Dim rs As New ADODB.Recordset
你的rs未定义啊
追问
并不是未定义,这里是过程模块,在标准模块中已经全部定义了……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式