Dim cnn1 As ADODB.Connection
Dim rst As ADODB.Recordset
Dim cnnstr As String
Set cnn1 = New ADODB.Connectioncnnstr = " provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;"
cnn1.Open cnnstrSet rst = New ADODB.Recordset
rst.CursorType = adOpenKeyset
rst.LockType = adLockOptimistic
rst.Open "select * from stu", cnn1Set Form1.MSHFlexGrid1.DataSource = rstrst.Close
cnn1.Close
End Sub

解决方案 »

  1.   

    dsn是data source name,是数据接口,你可心到odbc上设定
      

  2.   

    Public adoCN As New ADODB.Connection       '定义数据库的连接存放数据和代码
    Public adoCNAccess As New ADODB.Connection '定义数据库的连接存放数据和代码
    Public adoCNAccess1 As New ADODB.Connection '定义数据库的连接存放数据和代码
    Public adoCNtemp As New ADODB.Connection   '临时数据库
    Public SqlCommand As New ADODB.Command     '定义 SQL 命令
    Public RsUsers As New ADODB.Recordset
    Public RsDept As New ADODB.Recordset
    Public Rs_Dm_Level As New ADODB.Recordset
    Dim adoDateTime As New ADODB.Recordset     '获取 NT-SERVER 时间
    '***********************************************************************
    '*  功能:与 SQL SERVER 数据库建立连接并取出服务器时间
    '***********************************************************************
    Public Function OpenConnection1() As String '打开数据库
    End FunctionPublic Function OpenConnection() As String '打开数据库
        On Error GoTo SQLConErr
        With adoCN
            .CursorLocation = adUseClient
            .Provider = "sqloledb"
            .Properties("Data Source").Value = cNtServerName
            .Properties("Initial Catalog").Value = cDatabaseName
            .Properties("User ID") = cSQLUserName
            .Properties("Password") = cSQLPassword
            .Properties("prompt") = adPromptNever
            .ConnectionTimeout = 15
            .Open
            
            If .State = adStateOpen Then
                adoDateTime.Open "select getdate()", adoCN, adOpenStatic, adLockOptimistic
                cServerDate = Format(adoDateTime(0), "yyyy-mm-dd")
                cServertime = Mid(adoDateTime(0), 10)
            Else
                MsgBox "数据库连接失败,请找系统管理员进行检查 !", 16, cProgramName
                End
            End If
        End With
        
        SqlCommand.ActiveConnection = adoCN
        SqlCommand.CommandType = adCmdText
        Exit Function
    SQLConErr:
        Select Case Err.Number
            Case -2147467259
                MsgBox "找不到指定的SQL Server服务器或者数据库不存在,请重新设置!", vbExclamation
                F_SetSystem.Show 1
            Case -2147217843
                MsgBox "指定的SQL Server数据库用户不存在或口令错误,请重新设置!", vbExclamation
                F_SetSystem.Show 1
            Case Else
                MsgBox "数据环境连接失败,请找系统管理员进行检查 !", 16, cProgramName
        End Select
        OpenConnection
    End Function'***********************************************************************
    '*  功能:连接数据报表环境
    '*
    '***********************************************************************
    Public Sub OpenDEConnection()        '连接数据环境
        On Error GoTo DEConErr
        With DE_Report.Con_report
            If .State = adStateOpen Then
                .Close
            End If
            .CursorLocation = adUseClient
            .ConnectionTimeout = 15
            .ConnectionString = "Provider=SQLOLEDB.1;Password=" & cSQLPassword & ";Persist Security Info=True;User ID=" & cSQLUserName & ";Initial Catalog=" & cDatabaseName & ";Data Source=" & cNtServerName
            .Open
        End With
        Exit Sub
    DEConErr:
        Select Case Err.Number
            Case Else
                MsgBox "数据环境连接失败,请找系统管理员进行检查 !", 16, cProgramName
                End
        End Select
    End SubPublic Function OpenAccess() As String
        With adoCNAccess
            If .State <> adStateOpen Then
                .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & cProgramPath & "Trade.mdb" ';password=allway"
                .ConnectionTimeout = 5
                .Open
                If .State = adStateOpen Then
                    OpenAccess = "数据库连接成功"
                Else
                    OpenAccess = "数据库连接失败,请按帮助进行检查 !"
                    MsgBox "数据库连接失败,请找系统管理员进行检查 !", 16, cProgramName
                    End
                End If
            End If
        End With
    End Function
      

  3.   

    ConnectionString 属性
          包含用于建立连接数据源的信息。设置和返回值设置或返回字符串值。说明使用 ConnectionString 属性,通过传递包含一系列由分号分隔的 argument = value 语句的详细连接字符串可指定数据源。ADO 支持 ConnectionString 属性的四个参数,任何其他参数将直接传递到提供者而不经过 ADO 处理。ADO 支持的参数如下:参数 说明 
    Provider= 指定用来连接的提供者名称。 
    File Name= 指定包含预先设置连接信息的特定提供者的文件名称(例如,持久数据源对象)。 
    Remote Provider= 指定打开客户端连接时使用的提供者名称。(仅限于远程数据服务) 
    Remote Server= 指定打开客户端连接时使用的服务器的路径名称。(仅限于远程数据服务) 设置 ConnectionString 属性并打开 Connection 对象后,提供者可以更改属性的内容,例如通过将 ADO 定义的参数名映射到其提供者等价项来更改属性的内容。ConnectionString 属性将自动继承用于 Open 方法的 ConnectionString 参数的值,以便在 Open 方法调用期间覆盖当前的 ConnectionString 属性。由于 File Name 参数使得 ADO 加载关联的提供者,因此无法传递 Provider 和 File Name 参数。连接关闭时 ConnectionString 属性为读/写,打开时其属性为只读。远程数据服务用法   在客户端 Connection 对象上使用该服务时,ConnectionString 属性只能包括 Remote Provider 和 Remote Server 参数。
      

  4.   

    ConnectionString、ConnectionTimeout 和 State 属性范例
    该范例说明了使用 ConnectionString 属性打开 Connection 对象的不同方法。同时还使用 ConnectionTimeout 属性设置连接超时时间,并使用 State 属性检查连接的状态。该过程运行时需要 GetState 函数。Public Sub ConnectionStringX()    Dim cnn1 As ADODB.Connection
        Dim cnn2 As ADODB.Connection
        Dim cnn3 As ADODB.Connection
        Dim cnn4 As ADODB.Connection    ' 不使用数据源名 (DSN) 打开连接。
        Set cnn1 = New ADODB.Connection
        cnn1.ConnectionString = "driver={SQL Server};" & _
            "server=bigsmile;uid=sa;pwd=pwd;database=pubs"
        cnn1.ConnectionTimeout = 30
        cnn1.Open
        
        ' 使用 DSN 和 ODBC 标记打开连接。
        Set cnn2 = New ADODB.Connection
        cnn2.ConnectionString = "DSN=Pubs;UID=sa;PWD=pwd;"
        cnn2.Open
        
        ' 使用 DSN 和 OLE DB 标记打开连接。
        Set cnn3 = New ADODB.Connection
        cnn3.ConnectionString = "Data Source=Pubs;User ID=sa;Password=pwd;"
        cnn3.Open
        
        ' 使用 DSN 和单个参数而非连接字符串打开连接。
        Set cnn4 = New ADODB.Connection
        cnn4.Open "Pubs", "sa", "pwd"
     
        ' 显示连接的状态。
        MsgBox "cnn1 state: " & GetState(cnn1.State) & vbCr & _
            "cnn2 state: " & GetState(cnn2.State) & vbCr & _
            "cnn3 state: " & GetState(cnn3.State) & vbCr & _
            "cnn4 state: " & GetState(cnn4.State)    cnn4.Close
        cnn3.Close
        cnn2.Close
        cnn1.CloseEnd SubPublic Function GetState(intState As Integer) As String    Select Case intState
            Case adStateClosed
                GetState = "adStateClosed"
            Case adStateOpen
                GetState = "adStateOpen"
        End SelectEnd Function