截出的一些看不懂的代码
dim stokens() as string
 
stokens=Split(SQL)      '书上解释"用Split产生一个包含各个子串的数组
                        SQL这里代表什么意思??看不懂?if InStr("INSERT,DELETE,UPDATE",UCase(stokens(0))) then  '看不懂条件在干啥?
dim rst as ADODB.Recordset
set rst=NEW ADODB.Recordset
set ExecuteSQL=rst    '它在干嘛??哪位大哥能解释下?以下是全部代码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) & "查询成功"
   Else
    Set rst = New ADODB.Recordset
    rst.Open Trim(sql), cnn, adOpenKeyset, adLockOptimistic
    Set executesql = rst
    msgstring = "查询到" & rst.RecordCount & "条记录"
End If
executesql_exit:
  Set rst = Nothing
  Set cnn = Nothing
  Exit Function
executewql_error:
  msgstring = "查询错误:" & Err.Description
  Resume executesql_exit
End Function
Public Function testtxt(txt As String) As Boolean
If Trim(txt) = "" Then
  testtxt = False
  Else: testtxt = True
End If
End Function

解决方案 »

  1.   

    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)                   *将一个 SQL 语句(字符串)按空格分隔成单词
    Set cnn = New ADODB.Connection         
    cnn.Open connectstring
    If InStr("INSERT,DELETE,UPDATE", UCase(stokens(0))) Then  *如果 SQL 语句的第一个词是这三个关键字中的一个,直接执行语句,无返回记录集
       cnn.Execute sql
       msgstring = stokens(0) & "查询成功"
       Else
        Set rst = New ADODB.Recordset
        rst.Open Trim(sql), cnn, adOpenKeyset, adLockOptimistic
        Set executesql = rst                              *将打开的记录集赋给函数的返回值
        msgstring = "查询到" & rst.RecordCount & "条记录"
    End If
    executesql_exit:
      Set rst = Nothing
      Set cnn = Nothing
      Exit Function
    executewql_error:
      msgstring = "查询错误:" & Err.Description
      Resume executesql_exit
    End Function
    Public Function testtxt(txt As String) As Boolean
    If Trim(txt) = "" Then
      testtxt = False
      Else: testtxt = True
    End If
    End Function