dim rsUsers As ADODB.Recordset
    dim Conn As ADODB.Connection
    dim CnnString As StringPublic Sub OpenDB(ByVal sfile As String)    ' 打开数据库    CnnString = "Provider=SQLOLEDB;Data Source=192.168.2.1;User ID=sa;Password=111111;Initial Catalog=tempdb;Persist Security Info=True"    Set Conn = New ADODB.Connection
    Conn.Open CnnString
    
    ' 打开记录集
    CnnString = "Select * From  User_Table"
    Set rsUsers = GetRecordSet(Conn, CnnString)
end sub
Public Function GetRecordSet(cnnConnection As ADODB.Connection, sqry As String) As ADODB.Recordset
Dim myRst As ADODB.Recordset
Set myRst = New ADODB.Recordset
        myRst.CursorType = adOpenKeyset
        myRst.LockType = adLockOptimistic
        myRst.CursorLocation = adUseClient
        myRst.Source = sqry
        Set myRst.ActiveConnection = cnnConnection
        myRst.Open  ————————运行到此就报“运行时错误:‘-2147217865(80040e37)’”
        
        Set GetRecordSet = myRstEnd Function
请问:如何解决,是不是连接有问题,CnnString是否写对,如果不对应该如何写?多谢了!

解决方案 »

  1.   

    Public Function GetRecordSet(cnnConnection As ADODB.Connection, sqry As String) As ADODB.Recordset 
        Dim myRst As ADODB.Recordset 
        Set myRst = New ADODB.Recordset 
        if myrst.state<>adstateclosed then myrst.close
        myrst.open sqry,cnnconnection,adopenkeyset,adlockreadonly
            
        Set GetRecordSet = myRst End Function 
      

  2.   

    CnnString是否写对你去www.connectionstrings.com上面照葫芦画瓢就好
      

  3.   

         myRst.Open  ————————运行到此就报“运行时错误:‘-2147217865(80040e37)’” 是因为你在前面     Conn.Open CnnString 已经把连接打开了
      

  4.   

        '连接字符串
        Adodc1.ConnectionString = "driver={sql server};server=" + Trim(server) + ";uid=" + Trim(user) + ";pwd=" + Trim(password) + ";database=erp1"
        '查询users表中全部信息
        Adodc1.RecordSource = "select * from businessman"
        '用datagrid显示查询信息
        Set DataGrid1.DataSource = Adodc1