我用DATAGRID绑定了一个记录集(数据来自两个表的连接)。我想让用户在GRID上修改数据临时使用。也就是说我的数据不需要更新。但是出现了两个问题:
一是有时我获取用户修改后的数据时出现实时错误6160,说数据不可访问。
二是在退出窗体时提示记录集是只读的。
请问要怎么才能解决这个问题,急!!!

解决方案 »

  1.   

    Public Function ExecuteSQL(ByVal sql _
       As String, MsgString As String) _
       As ADODB.Recordset
       'executes SQL and returns Recordset
      
     ' ConnectString = "DBQ=" + CurDir("") + DataBaseName + ";pwd=;DefaultDir=;Driver={Microsoft Access Driver (*.mdb)};"
       ConnectString = "DBQ=" & DataBaseName & ";DefaultDir=;Driver={Microsoft Access Driver (*.mdb)};"
       Dim cnn As ADODB.Connection
       Dim rst As ADODB.Recordset
       Dim sTokens() As String
       
       On Error GoTo ExecuteSQL_Error
       
       sTokens = Split(sql)
       Set cnn = New ADODB.Connection
       cnn.Open ConnectString
       If InStr("INSERT,DELETE,UPDATE", _
          UCase$(sTokens(0))) Then
          cnn.Execute sql
          MsgString = sTokens(0) & _
             " query successful"
       Else
          Set rst = New ADODB.Recordset
          rst.Open Trim$(sql), cnn, _
             adOpenKeyset, _
             adLockOptimistic
          'rst.MoveLast     'get RecordCount
          Set ExecuteSQL = rst
          MsgString = "²éѯµ½" & rst.RecordCount & _
             " Ìõ¼Ç¼ "
       End If
       Set rst = Nothing
       Set cnn = Nothing
       Exit Function
    ExecuteSQL_Exit:
       Set rst = Nothing
       Set cnn = Nothing
       Exit Function
       
    ExecuteSQL_Error:
       MsgString = "²éѯ´íÎó: " & _
          Err.Description
       Resume ExecuteSQL_Exit
    End Function