Public Function sql(ByVal sqlstring As String) As ADODB.Recordset
    Dim conn As New ADODB.Connection
    Dim AuthConnectionString As String
    Dim rs1 As New ADODB.Recordset
    Set conn = CreateObject("ADODB.Connection")
    AuthConnectionString = "Provider=Sqloledb; User ID=sa; Password=ll; Initial Catalog =house; Data Source=(local)"
    conn.ConnectionString = AuthConnectionString
    conn.Open
    rs1.Open sqlstring, conn, adOpenStatic, adLockReadOnly, adCmdText
    Set sql = rs1
End Function

解决方案 »

  1.   

    Public Function sql(ByVal sqlstring As String) As ADODB.Recordset
        Dim conn As New ADODB.Connection'类实例化
        Dim AuthConnectionString As String'连接字符串
        Dim rs1 As New ADODB.Recordset
        Set conn = CreateObject("ADODB.Connection")'创建连接对象
        AuthConnectionString = "Provider=Sqloledb; User ID=sa; Password=ll; Initial Catalog =house; Data Source=(local)"'设置连接字符串
        conn.ConnectionString = AuthConnectionString
        conn.Open
        rs1.Open sqlstring, conn, adOpenStatic, adLockReadOnly, adCmdText'打开记录集
        Set sql = rs1'赋值给SQL
    End Function
      

  2.   

    Set sql = rs1 这句应该注释为函数返回值
      

  3.   

    这也叫不错?
        Dim conn As New ADODB.Connection'类实例化
        Dim AuthConnectionString As String'连接字符串Set conn = CreateObject("ADODB.Connection")'创建连接对象
        AuthConnectionString = "Provider=Sqloledb; User ID=sa; Password=ll; Initial Catalog =house; Data Source=(local)"'设置连接字符串
        conn.ConnectionString = AuthConnectionString上边这些应该是不放在这个函数中的。设计一个类 创建连接 执行SQL返回 关闭连接 这才是一个通用的,你上边的这么一段,每执行一个SQL 就 创建一次连接,麻烦....速度还慢...
      

  4.   

    我以前编程就是在一个模块中建一个通用的Connection,启动的时候就连接了,然后只使用它去执行一些SQL命令,整个程序退出的时候才关闭这个Connection的楼上的有道理