Private Sub Command4_Click()
    Dim cnn As String
    Dim intNum As Integer
    Dim strustr As String
    strustr = Text1.Text
    intNum = Int(Text2.Text)
    cnn = "update JZSJL set jcjj=" & intNum & " where YXMS='" & strustr & "'"
    Form1.Adodc1.RecordSource = cnn
    Form1.Adodc1.Refresh
    
End Sub
首先是报错:对象关闭时,不允许操作
然后是:应该加一个set什么的
我在界面中添加的adodc控件,
现在我就想在这个事件里面作最少的改动,能够不报错
(上面的程序虽然报错,但是数据库里面的值是改变了的)

解决方案 »

  1.   

    Adodc1.ConnectionString = Cn.ConnectionString 'Public Cn As ADODB.Connection
            Adodc1.RecordSource = cnn 
            Adodc1.Refresh
      

  2.   

    我在程序界面里添加了adodc的呀,而且在它的connectionstring里面写了相应的provider的
      

  3.   

    我想应该是update语句,不会返回recordset,里面是空的,才会出现第一个错误吧,因为如果把上面的代码改成select不会出现错误的
      

  4.   

    不好意思,没太看清楚你上面的内容你其实是要更新后再显示到界面把cn.execute cnn
    Adodc1.ConnectionString = Cn.ConnectionString 'Public Cn As ADODB.Connection
            Adodc1.RecordSource = "select ...."
            Adodc1.Refresh
      

  5.   

    Form1.Adodc1.Recordset.ActiveConnection.Execute cnn不要 Adodc1.Refresh
      

  6.   

    of123() 
      update后好象对象关闭吧
      我这样理解对么
      

  7.   

    能把这个过程全部写一下吗,我主要是想通过adodc更新一些数据,adodc1我在界面中添加了,而且相关的属性值我也添加了,难道每次用这个adodc,都要去设一下它的ConnectionString吗,
      

  8.   

    我另外一个事件是这样写的,用于查询,就没有问题:
    Private Sub Command2_Click()
        Dim cnn As String
        Dim strustr As String
        strustr = Text1.Text
        cnn = "select * from JZSJL where YXMS='" & strustr & "'"
        Form1.Adodc1.RecordSource = cnn
        Form1.Adodc1.Refresh
        Dim i As Long
        For i = 1 To Adodc1.Recordset.RecordCount
            MsgBox Adodc1.Recordset("JJZS")
            Adodc1.Recordset.MoveNext
        Next i
    End Sub
      

  9.   

    用的时候
    reflesh一下就可以了吧
      

  10.   

    我记得 update 后对象好象是关闭吧
      

  11.   

    想不报错很容易.在第一行加一句:On Error Resume Next即可.
    但这不是最终解决方法.
    你的错误多半是发生在refresh方法上.
    按你的说法,数据库里的数据已经发生变化,说明连接已打开.然后执行操作后又准确关闭.
    因为你是在界面上加数据控件的.很少有人这么用.一般采用变量形式,如你说的set:
     Set conn = New ADODB.Connection
        Set rs1 = New ADODB.Recordset
    完成后set conn=nothing
          set rs1=nothing
    这样就行.
      

  12.   

    你在界面设置adodc.ConnectionString没有问题但是Adodc1.RecordSource 好象不能是update吧你这样写没问题吧
    cn.execute cnn
            Adodc1.RecordSource = "select ...."
            Adodc1.Refresh