| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2046 人关注过本帖, 1 人收藏
标题:IF RC.EOF=false then 提示运行到此行时提示,对象关闭时,不允许进行操作! ...
只看楼主 加入收藏
lplboke
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-1-23
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:10 
IF RC.EOF=false then 提示运行到此行时提示,对象关闭时,不允许进行操作!)
Private Sub Command1_Click()
Dim Rs As New ADODB.Recordset
Dim Conn As New ADODB.Connection
Dim Ssql As String
Conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;pwd=sa;Initial Catalog=vb;Data Source=LPLBOKE"
Ssql = "select * from xscj where id='" & Text3.Text & "'"
 If Rs.EOF = False Then(运行到此行时提示,对象关闭时,不允许进行操作!)
   MsgBox "学生编码重复,请修改编码!"
   Else
   Ssql = "insert into xscj (name,stroe,id) values ('" & Trim(Text1.Text) & "','" & Trim(Text2.Text) & "','" & Text3.Text & "')"
   Rs.Open Ssql, Conn
   MsgBox "添加成功!"
   Text1.Text = ""
   Text2.Text = ""
   Text3.Text = ""
 End If
End Sub
搜索更多相关主题的帖子: 行时 对象 提示 false EOF 
2010-01-23 20:23
haigecnpeng
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:261
专家分:510
注 册:2008-10-6
收藏
得分:20 
rs.open要放在rs.eof的前面、。
数据集都没打开,你只连接了数据库,但还没进行查询啊

都说到了.net年代,VB与C#都是一样的!
但为什么招聘的都是C#呢?
2010-01-23 20:51
lplboke
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-1-23
收藏
得分:0 
回复 楼主 lplboke

Private Sub Command1_Click()
Dim Rs As New ADODB.Recordset
Dim Conn As New ADODB.Connection
Dim Ssql As String
Conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;pwd=sa;Initial Catalog=vb;Data Source=LPLBOKE"
Ssql = "select * from xscj where id='" & Text3.Text & "'order by id"
 
Rs.Open Ssql, Conn
      If Rs.EOF = False Then
        MsgBox "学生编码重复,请修改编码!"
    Else
        Ssql = "insert into xscj (name,stroe,id) values ('" & Trim(Text1.Text) & "','" & Trim(Text2.Text) & "','" & Text3.Text & "')"
      Rs.Open Ssql, Conn(加了后这一句提示,数据打开,不允许操作!!)
        MsgBox "添加成功!"
        Text1.Text = ""
        Text2.Text = ""
        Text3.Text = ""
        
 End If
2010-01-23 21:00
lplboke
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-1-23
收藏
得分:0 
回复 楼主 lplboke
请帮忙改一下。数据库表,XSCJ,字段ID NAME(姓名) stroe(成绩)
2010-01-23 21:01
lplboke
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-1-23
收藏
得分:0 
Ssql = "insert into xscj (name,stroe,id) values ('" & Trim(Text1.Text) & "','" & Trim(Text2.Text) & "','" & Text3.Text & "')"
此句后,如果不加   Rs.Open Ssql, Conn
执行成功,但数据库中没有插入数据
2010-01-23 21:04
haigecnpeng
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:261
专家分:510
注 册:2008-10-6
收藏
得分:0 
Ssql = "select * from xscj where id='" & Text3.Text & "'order by id"
Rs.Open Ssql, Conn
    If Rs.EOF = False Then
        MsgBox "学生编码重复,请修改编码!"
        
    else
    rs.addnew      
        MsgBox "添加成功!"
        rs(0)=Text1.Text
        rs(1)=Text2.Text
        rs(2)=Text3.Text
        Text1.Text = ""
        Text2.Text = ""
        Text3.Text = ""
        rs.update
End If
   rs.close

都说到了.net年代,VB与C#都是一样的!
但为什么招聘的都是C#呢?
2010-01-23 21:54
lplboke
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-1-23
收藏
得分:0 
rs.addnew      
        MsgBox "添加成功!"
        rs(0)=Text1.Text
        rs(1)=Text2.Text
        rs(2)=Text3.Text
        Text1.Text = ""
        Text2.Text = ""
        Text3.Text = ""
        rs.update
如果此段代码用SQL语句写,怎样写,刚才我自己试了一种方式可以运行,但比较烦锁,如下(红字)
Private Sub Command1_Click()
Dim Rs As New ADODB.Recordset
Dim Conn As New ADODB.Connection
Dim Ssql As String
Conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;pwd=sa;Initial Catalog=vb;Data Source=LPLBOKE"
Ssql = "select * from xscj where id='" & Text3.Text & "'order by id"
 Rs.Open Ssql, Conn
    If Not Rs.EOF Then
            MsgBox "学生编码重复,请修改编码!"
            Rs.Close
            Text3.SetFocus
            Exit Sub
    End If
If Conn.State <> adStateClosed Then
   Conn.Close
End If
Conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;pwd=sa;Initial Catalog=vb;Data Source=LPLBOKE"
   If Text1.Text <> "" Then
       Ssql = "insert into xscj (name,stroe,id) values ('" & Trim(Text1.Text) & "','" & Trim(Text2.Text) & "','" & Text3.Text & "')"
       Rs.Open Ssql, Conn
      MsgBox "添加成功!"
      Text1.Text = ""
      Text2.Text = ""
      Text3.Text = ""
   End If

End Sub
2010-01-23 22:22
lplboke
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-1-23
收藏
得分:0 
还有就是你那个语句,我复制后运行到rs.addnew   ,提示   
当前记录集不支持更新,这可能是提供程序的限制,也可能是选定锁定类型的限制
2010-01-23 22:26
haigecnpeng
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:261
专家分:510
注 册:2008-10-6
收藏
得分:0 
Ssql = "insert into xscj (name,stroe,id) values ('" & Trim(Text1.Text) & "','" & Trim(Text2.Text) & "','" & Text3.Text & "')"
的格式是对的。id如果是数字的话,就不要‘’了。

If Text1.Text <> "" Then
       Ssql = "insert into xscj (name,stroe,id) values ('" & Trim(Text1.Text) & "','" & Trim(Text2.Text) & "','" & Text3.Text & "')"
conn.execute sql
MsgBox "添加成功!"
      Text1.Text = ""
      Text2.Text = ""
      Text3.Text = ""
   End If

前面打开的数据集rs,要记得关掉。rs.close

都说到了.net年代,VB与C#都是一样的!
但为什么招聘的都是C#呢?
2010-01-24 19:52
haigecnpeng
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:261
专家分:510
注 册:2008-10-6
收藏
得分:0 
当前记录集不支持更新,就代表你已经打开记录集了,应该是锁定类型有关。 可能默认是只读的。adLockReadOnly

我一般都设为adLockOptimistic,



都说到了.net年代,VB与C#都是一样的!
但为什么招聘的都是C#呢?
2010-01-24 20:00
快速回复:IF RC.EOF=false then 提示运行到此行时提示,对象关闭时,不允许进行 ...
数据加载中...
 
   



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

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