| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3459 人关注过本帖
标题:新手求组~一直提示recordset 对象关闭时不允许操作
只看楼主 加入收藏
粉丝别
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-1-16
结帖率:0
收藏
已结贴  问题点数:20 回复次数:11 
新手求组~一直提示recordset 对象关闭时不允许操作
我想做个登陆界面,是这样写的
Private Sub Command1_Click()
Dim cnn As New ADODB.Connection
Dim rs1 As New ADODB.Recordset
Dim cmd As New
cnn.ConnectionString = ("provider=SQLOLEDB.1;Persist Security Info=False;Integrated Security=SSPI;CATALOG=车辆管理正式版;")
cnn.Open
Set rs1.ActiveConnection = cnn
rs1.Open ("use 车辆管理正式版 select * from zhanghu where 用户名='" & Text1.Text & "' and 密码='" & Text2.Text & "'")
If rs1.EOF = True Then
 MsgBox "用户名或密码错误!", vbInformation, "警告"
Text1.Text = ""
 Text2.Text = ""
 Else
 Unload Me
 MsgBox "登录成功"
Form2.Show
End If
rs1.Close
End Sub


每次到If rs1.EOF = True Then
那里就会出错。。。到底是怎么回事,请大家帮我看下,谢谢了
搜索更多相关主题的帖子: 正式版 用户名 False where 密码 
2014-01-16 19:21
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:4 
直接这样写就行了吧      If rs1.EOF Then

三十年河东,三十年河西,莫欺少年穷!
2014-01-16 19:58
粉丝别
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-1-16
收藏
得分:0 
回复 2楼 韶志
还是不行哦,改了没用,谢谢了~~~
2014-01-16 20:04
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:652
专家分:3402
注 册:2008-5-7
收藏
得分:4 
应该是你的ConnectionString有问题,你使用了Integrated Security=SSPI方式连接sql数据库,很有可能你的sql server未设置支持默认的windows用户登录,只支持数据库用户登录,所以连接数据库不成功,导致recordset根本没打开。
2014-01-16 20:29
粉丝别
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-1-16
收藏
得分:0 
回复 3楼 粉丝别
你好,我的SQL server是设置的windows账户登录。
我试试换成sql账号密码登录看行不行
2014-01-16 20:36
粉丝别
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-1-16
收藏
得分:0 
改了还是不行,
If cnn.State = adStateOpen Then
MsgBox "打开数据库"
我的这句都能执行,都能弹出"打开数据库"的窗口。。。菜鸟求大家帮忙。。。
2014-01-16 20:43
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:652
专家分:3402
注 册:2008-5-7
收藏
得分:0 
那就是你的sql语句有问题,我通常的写法是
dim rs1 as new recordset
dim sql as string
sql="select * from zhanghu where 用户名='" & Text1.Text & "' and 密码='" & Text2.Text & "'"
rs1.open sql,cnn,3,3
if rs1.state=0 then
  msgbox "记录集打开失败"
  exit sub
else
  if not rs1.eof then
    msgbox "登录成功"
  else
    msgbox "登录失败"
  endif
  rs1.close
endif
2014-01-16 20:56
粉丝别
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-1-16
收藏
得分:0 


Private Sub Command1_Click()
Dim cnn As New ADODB.Connection
 Dim rs1 As New ADODB.Recordset
 Dim cmd As New
 cnn.ConnectionString = "provider=SQLOLEDB.1;Persist Security Info=False;Integrated Security=SSPI;CATALOG=曾杰的车辆管理正式版;"
cnn.Open
 Set rs1.ActiveConnection = cnn
 If cnn.State = adStateOpen Then
MsgBox "打开数据库"
End If
 rs1.Open ("use 曾杰的车辆管理正式版 select * from zhanghu where 用户名='" & Text1.Text & "' and 密码='" & Text2.Text & "'")
  If cnn.State = adStateOpen Then
MsgBox "打开数据库"
End If
 If rs1.EOF = True Then
 MsgBox "用户名或密码错误!", vbInformation, "警告"
Text1.Text = ""
 Text2.Text = ""
 Else
 Unload Me
 MsgBox "登录成功"
Form2.Show
 End If
 rs1.Close
 End Sub


我改成这样,两次“打开数据库”的弹出窗口都能看到,但还是提示对象关闭。。。
2014-01-16 21:04
alike
Rank: 2
等 级:论坛游民
威 望:1
帖 子:9
专家分:34
注 册:2014-1-8
收藏
得分:4 
两次“打开数据库”的弹出窗口能看到只能说明连接是通的,但你的记录集没有打开,所以提示对象关闭,看一下SQL语句是否出错,试一下rs1.Open "use 曾杰的车辆管理正式版 select * from zhanghu where 用户名='" & Text1.Text & "' and 密码=" & Text2.Text & "",cnn,3,3
2014-01-17 10:29
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:4 
提示recordset 对象关闭时不允许操作

这是数据库没打开。
你确认 cnn 打开了,那么就只能是 打开表失败。

按9楼的方法试着打开看看。
我没用过你1楼代码里那种打开方法,那种打开方法 感觉没有指定 游标类型等

授人于鱼,不如授人于渔
早已停用QQ了
2014-01-17 11:50
快速回复:新手求组~一直提示recordset 对象关闭时不允许操作
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020635 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved