在别人的程序中看到Set rst = SelectSQL(SQL, msg),不知道怎么理解,在网上也没搜到,请高手指点一下

解决方案 »

  1.   

    SQLSelect(ConnectID,DataTableName, WhereExpr)
      
      说明
       在数据库中选择符合条件的记录,该函数返回一数据集,可以使用如
       下函数SQLFirst(),SQLLast(),SQLNext(),SQLPrev()遍历该数据集中的记录。
      参数
       ConnectID 数据源标识,由SQLConnect调用返回。
       DataTableName 字符串,数据表名称。
       WhereExpr字符串,选择表达式,只有符合该条件的记录被选中。也可以直接使用排序语句
      返回值:
       0成功,-1失败
      示例
       1) SQLSelect(ConnectID,"Tab1","");
       参数ConnectID由SQLConnect调用得到。
       数据表名为"Tab1"。
       条件为空""表示选择所有记录。
      
       2) SQLSelect (ConnectID,"Tab1","A = 50");
       只选择字段A等于50的记录。
      
      3)SQLSelect(ConnectID,"Tab1" ,"A > 50 ORDER BY A DESC");
       选择字段A大于50的记录,并以降序排序。 
      

  2.   

    函数源码如下:
    Public Function SelectSQL(ByVal SQL _
    As String, ByRef msg As String) As ADODB.Recordset
    '执行SQL语句,返回ADODB.Recordset
        Dim Conn As ADODB.Connection
        Dim rst As ADODB.Recordset
        Dim sTokens() As String
        '出错处理
        On Error GoTo ErrorHandle
        '判断SQL语句
        sTokens = Split(SQL)
        If InStr("SELECT", UCase((sTokens(0)))) Then
            '打开数据库连接
            If OpenConn(Conn) Then
                Set rst = New ADODB.Recordset
                rst.CursorLocation = adUseClient
                rst.Open Trim$(SQL), Conn, adOpenDynamic, adLockOptimistic
                Set SelectSQL = rst
                msg = "查询到" & rst.RecordCount & " 条记录! "
            End If
        Else
            msg = "SQL语句有误:" & SQL
        End If
    Finally_Exit:
        Set rst = Nothing
        Set Conn = Nothing
        Exit Function
    ErrorHandle:
        MsgString = "查询错误: " & _
        Err.Description
        Resume Finally_Exit
    End Function