我是通过函数执行SQL语句的,如果SQL语句里有distinct就会出错,请高手帮忙看一下,函数如下:Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
  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 sucessful"
  Else
    Set rst = New ADODB.Recordset
    rst.Open Trim(SQL), cnn, adOpenKeyset, adLockOptimistic, adCmdText
    Set ExecuteSQL = rst
    MsgString = "查询到" & rst.RecordCount & "条记录"
  End If
ExecuteSQL_Exit:
    Set rst = Nothing
    Set cnn = Nothing
    Exit Function
ExecuteSQL_Error:
  MsgString = "查询错误:" & Err.Description
  Resume ExecuteSQL_Exit
End FunctionPublic Function ConnectString() As String
  ConnectString = "Provider=SQLOLEDB.1;Password=410403;Persist Security Info=True;" & _
  "User ID=sa;Initial Catalog=data;Data Source=EWAYXT"
End Function