Public add As Boolean
Public user As String
Public yiban As Boolean
Public Function ExecuteSQL(ByVal SQL _
   As String, MsgString As String) _
   As ADODB.Recordset
   Dim cnn As ADODB.Connection
   Dim rst As ADODB.Recordset
   Dim MsgString1 As String
   Set cnn = New ADODB.Connection
      sTokens = Split(SQL)
      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
       Set ExecuteSQL = rst
       MsgString = "查询到" & rst.RecordCount & " 条记录 "
     End If
End Function
Public Function ConnectString() _
   As String
   ConnectString = "FileDSN=you.dsn;UID=sa;PWD=password"
End Function

解决方案 »

  1.   

    feixuehenshui(飞雪恨水) :
    sTokens = Split(SQL)
     If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0)))
    这两句是什么意思?
      

  2.   

    就是判断SQL字符串里面有否INSERT,DELETE,UPDATE这几个关键字注意不区分大小写。因为UCase$把整个字符串都大写化了
      

  3.   

    注意不Public add As Boolean
    Public user As String
    Public yiban As Boolean
    Public Function ExecuteSQL(ByVal SQL _
       As String, MsgString As String) _
       As ADODB.Recordset
       Dim cnn As ADODB.Connection
       Dim rst As ADODB.Recordset
       Dim MsgString1 As String
       Set cnn = New ADODB.Connection
          sTokens = Split(SQL)
          cnn.Open ConnectString区分大小写。因为UCase$把整个字符串都大写化了