错误:对象关闭时,不允许操作
简介:我要做的是一个办公自动化系统,窗体中有四个文本框,有一个Command1按钮,用于输出下一个查询结果,我刚开始写的代码比较简单,目的是要测试一下功能,但是当我惦记Command1按钮的时候,却出现了上面的错误,求高手不吝指教
代码如下:
全局:
Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
---------------------------------
Private Sub Command1_Click()
rst.MoveNext
Set rst = Nothing
Set cmd = Nothing
Set cn = Nothing
End Sub
-------------------------------
Private Sub Form_Load()
综合处.Caption = "综合处办公系统"
综合处.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
Me.Move 0, 0, Screen.Width, Screen.Height '全屏显示
cn.Open "DSN=sl;uid=sa;pwd=1234;"
Set cmd.ActiveConnection = cn
cmd.CommandText = "Select * From 人事库"
cmd.CommandType = adCmdText
cn.CursorLocation = adUseClient
rst.Open cmd
Text1.Text = rst.Fields("职工号")
Text2.Text = rst.Fields("姓名")
Text3.Text = rst.Fields("性别")
Text4.Text = rst.Fields("年龄")End Sub
----------------
可能解决方法很简单,但是还是希望各位高手能够耐心点,详细写出正确的代码,毕竟我是刚学的啊!
简介:我要做的是一个办公自动化系统,窗体中有四个文本框,有一个Command1按钮,用于输出下一个查询结果,我刚开始写的代码比较简单,目的是要测试一下功能,但是当我惦记Command1按钮的时候,却出现了上面的错误,求高手不吝指教
代码如下:
全局:
Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
---------------------------------
Private Sub Command1_Click()
rst.MoveNext
Set rst = Nothing
Set cmd = Nothing
Set cn = Nothing
End Sub
-------------------------------
Private Sub Form_Load()
综合处.Caption = "综合处办公系统"
综合处.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
Me.Move 0, 0, Screen.Width, Screen.Height '全屏显示
cn.Open "DSN=sl;uid=sa;pwd=1234;"
Set cmd.ActiveConnection = cn
cmd.CommandText = "Select * From 人事库"
cmd.CommandType = adCmdText
cn.CursorLocation = adUseClient
rst.Open cmd
Text1.Text = rst.Fields("职工号")
Text2.Text = rst.Fields("姓名")
Text3.Text = rst.Fields("性别")
Text4.Text = rst.Fields("年龄")End Sub
----------------
可能解决方法很简单,但是还是希望各位高手能够耐心点,详细写出正确的代码,毕竟我是刚学的啊!
你的text1.text正确显示了么?去掉rst.movenext再试试看
这个有问题,rst记录集没有打开,所以不能移动
'Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
---------------------------------
Private Sub Command1_Click()if rst.recordcount =0 then exit sub
rst.MoveNext
if rst.eof then rst.movelast
Text1.Text = rst.Fields("职工号")
Text2.Text = rst.Fields("姓名")
Text3.Text = rst.Fields("性别")
Text4.Text = rst.Fields("年龄")
'Set rst = Nothing'第一次点击的时候将rst卸载了'Set cmd = Nothing
'Set cn = Nothing
End Sub
-------------------------------
Private Sub Form_Load()
dim sql as string综合处.Caption = "综合处办公系统"
综合处.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
Me.Move 0, 0, Screen.Width, Screen.Height '全屏显示'Set cmd.ActiveConnection = cn
'cmd.CommandText = "Select * From 人事库"
sql= "Select * From 人事库"'cmd.CommandType = adCmdText
cn.CursorLocation = adUseClient
cn.Open "DSN=sl;uid=sa;pwd=1234;"rst.Open sqlText1.Text = rst.Fields("职工号")
Text2.Text = rst.Fields("姓名")
Text3.Text = rst.Fields("性别")
Text4.Text = rst.Fields("年龄")End Sub
----------------
sub form_unload
Set rst = Nothing
Set cn = Nothingend sub
1 rst.Open sql ,1,1
2 在movenext的时候查查看是不是已经到底了, eof是否true可以解决
3 movenext之后更新相应的textbox
Text1.Text = rst.Fields("职工号")
Text2.Text = rst.Fields("姓名")
Text3.Text = rst.Fields("性别")
Text4.Text = rst.Fields("年龄")
在form_load()中,我按照你这样改的,结果弹出错误啊,问题指向 rst.Open sql,问题说:
实时错误‘3709’
连接无法用于此操作。在此上下文中它可能已被关闭或无效
在rst.open上设置断点,检查cn.state是否为1 ?如果不为1 ,则说明你的连接串有问题。如果不知道连接串怎么写,在Form中加入一个adodc控件,然后在其connectionstring中点击右边的按键,按照提示进行设置,设置好之后,记得测试一下链接,如果正常,将connectionstring属性中的内容拷贝到代码中,替换
"DSN=sl;uid=sa;pwd=1234;"然后删除掉adodc控件