代码如下:
Private Sub Form_Load()
   Dim cn As ADODB.Connection
   Dim rsTest As ADODB.Recordset
   Dim strSQL As String
   Dim strRq As String
   
   strRq = DateToStr(frmHlcx.DTPickerData.Value)
   
   Set cn = New ADODB.Connection
   Set rsTest = New ADODB.Recordset
   rsTest.CursorLocation = adUseClient
   
   cn.Open "Provider=MSDASQL.1;" & _
           "Persist Security Info=false;" & _
           "Data Source=" & SystemInfo.DataSource & ";" & _
           "User ID=" & SystemInfo.User & ";" & _
           "Password=" & SystemInfo.PWD & ";"
   
   strSQL = "select gd_s_rate.curr_id,c_bz.curr_name,gd_s_rate.hl from gd_s_rate,c_bz " & _
            "where gd_s_rate.curr_id=c_bz.curr_id and gd_s_rate.rq='" & strRq & "'"
            
   rsTest.Open strSQL, cn, adOpenDynamic, adLockOptimistic
   Set Me.DataGrid1.DataSource = rsTest
   
   Me.DataGrid1.Refresh
   
End Sub
我没有用到Adodc控件,是通过以上语句对后台数据库进行联接的。通过按钮想对其进行修改就会报以上错误,不知道为什么,请各位大侠帮帮忙。按钮“取消”代码如下:
Private Sub cmdCancel_Click()
   rsTest.CancelBatch
   Set Me.DataGrid1.DataSource = Nothing
   rsTest.Requery
   Set Me.DataGrid1.DataSource = rsTest
End Sub
按钮“添加”代码如下:
Private Sub cmdCancel_Click()
   rsTest.AddNew
   rsTest.Requery
   Set Me.DataGrid1.DataSource = rsTest
End Sub

解决方案 »

  1.   

    将cn,rsTest声明为全局对象
      

  2.   

    Dim cn As ADODB.Connection
       Dim rsTest As ADODB.Recordset
       Dim strSQL As String
       Dim strRq As String
    应在模块级定义
      

  3.   

    Dim rsTest As ADODB.Recordset
       Dim strSQL As String
       Dim strRq As String
    这几个变量 要为全局的 :)
      

  4.   

    Dim cn As ADODB.Connection
    Dim rsTest As ADODB.RecordsetPrivate Sub Form_Load()   Dim strSQL As String
       Dim strRq As String
       
       strRq = DateToStr(frmHlcx.DTPickerData.Value)
       
       Set cn = New ADODB.Connection
       Set rsTest = New ADODB.Recordset
       rsTest.CursorLocation = adUseClient
       
       cn.Open "Provider=MSDASQL.1;" & _
               "Persist Security Info=false;" & _
               "Data Source=" & SystemInfo.DataSource & ";" & _
               "User ID=" & SystemInfo.User & ";" & _
               "Password=" & SystemInfo.PWD & ";"
       
       strSQL = "select gd_s_rate.curr_id,c_bz.curr_name,gd_s_rate.hl from gd_s_rate,c_bz " & _
                "where gd_s_rate.curr_id=c_bz.curr_id and gd_s_rate.rq='" & strRq & "'"
                
       rsTest.Open strSQL, cn, adOpenDynamic, adLockOptimistic
       Set Me.DataGrid1.DataSource = rsTest
       
       Me.DataGrid1.Refresh
       
    End SubPrivate Sub cmdCancel_Click()
       rsTest.CancelBatch
       Set Me.DataGrid1.DataSource = Nothing
       rsTest.Requery
       Set Me.DataGrid1.DataSource = rsTest
    End Sub
    Private Sub cmdCancel_Click()
       rsTest.AddNew
       rsTest.Requery
       Set Me.DataGrid1.DataSource = rsTest
    End Sub