Public Function exesql(ByVal sql As String) As ADODB.Recordset
    sql = Trim$(sql)
    Set conn = New ADODB.Connection
    Set rst = New ADODB.Recordset
    conn.ConnectionString = "DSN=Stud"
    conn.Open
    Set rst.ActiveConnection = conn
    rst.LockType = adLockOptimistic
    rst.CursorType = adOpenKeyset
    rst.Open sql
    Set exesql = rst
    Set rst = Nothing
    Set conn = Nothing
End Function
运行时rst.Open sql出错,没有为命令对象设置命令...??
初学vb,请帮小弟注释一下每行代码,先谢了....

解决方案 »

  1.   

    if len(sql )=0 then  exit function
      

  2.   

    最好加上错误处理On error goto err1   .......   exit functionerr1:
         debug.print err.description,vbokonly,"system msg"
         err.clear
      

  3.   

    Public Function exesql(ByVal sql As String) As ADODB.Recordset
        sql = Trim$(sql)'去掉sql字符串两边的空格
        Set conn = New ADODB.Connection'实例化conn 
        Set rst = New ADODB.Recordset'实例化rst 
        conn.ConnectionString = "DSN=Stud"'设置连接字符串
        conn.Open'打开连接
        Set rst.ActiveConnection = conn
        rst.LockType = adLockOptimistic
        rst.CursorType = adOpenKeyset
        rst.Open sql,conn
        Set exesql = rst
        Set rst = Nothing
        Set conn = Nothing
    End Function
      

  4.   

    if len(trim$(sql) )=0 then  exit function
      

  5.   

    其实根本不用这样麻烦的
    直接可以这样的,,
    Dim Rs as Adodb.Recordset
    set Rs=Conn.Execute(SQL,,adcmdtext)这样就可以返回一个结果集了。