在VB使用ADO时,如何打开Connection的哪个数据库驱动选取的哪个对话框呢?因为连接的数据库可能有多种,所以想做成用户可选的方式答案有效,高分回报!!

解决方案 »

  1.   

    Private objDataLink As New MSDASC.DataLinks    Dim sConnect As String
              Set objDataLink = New MSDASC.DataLinks
              sConnect = objDataLink.PromptNew
      

  2.   

    你还需要在引用中添加
    microsoft ole db service component 1.0 type .......
      

  3.   

    自己程序,楼上的说“API函数”也未尝不可;另外,目标机器中必须要有支持的数据库驱动才行呀!像ODBC那样将所有数据库驱动列出(用API函数),在进行选择。
    或者你在程序中写入几种数据库驱动名(数据库驱动无非就这么几种吗!例如:SQL Server、Oracle、Access2000/97、VFP等等或IBM的CliendAccess)。
      

  4.   

    引用ADO和microsoft ole db service component 1.0 libary参考如下代码
    Option Explicit
    Dim adoConn As ADODB.Connection
    Private Function BuildAdoConnection(ByVal ConnectionString As String) As String    ' display the ADO Connection Window (ADO DB Designer)    Dim dlViewConnection As MSDASC.DataLinks    On Error GoTo Err_BuildAdoConnection
        
        
        If Not (Trim$(ConnectionString) = "") Then
            Set adoConn = New ADODB.Connection
            adoConn.ConnectionString = ConnectionString
            Set dlViewConnection = New MSDASC.DataLinks
            dlViewConnection.hWnd = Me.hWnd
                If dlViewConnection.PromptEdit(adoConn) Then
                    BuildAdoConnection = adoConn.ConnectionString
                Else
                    BuildAdoConnection = ConnectionString
                End If
            Set dlViewConnection = Nothing
            Set adoConn = Nothing
        Else
            Set dlViewConnection = New MSDASC.DataLinks
            dlViewConnection.hWnd = Me.hWnd
            Set adoConn = dlViewConnection.PromptNew
            BuildAdoConnection = adoConn.ConnectionString
            Set dlViewConnection = Nothing
            Set adoConn = Nothing
        End IfExit_BuildAdoConnection:    On Error Resume Next
            If Not (adoConn Is Nothing) Then
                Set adoConn = Nothing
            End If
            If Not (dlViewConnection Is Nothing) Then
                Set dlViewConnection = Nothing
            End If
        On Error GoTo 0
        Exit FunctionErr_BuildAdoConnection:    Select Case Err
            Case 0
                Resume Next
            Case -2147217805
                adoConn.ConnectionString = ""
                Resume
            Case 91
                Resume Exit_BuildAdoConnection
            Case Else
                MsgBox "Error: " & Err.Number & vbCrLf & vbCrLf & Err.Description, vbInformation, App.Title & "  -  Advisory"
                Resume Exit_BuildAdoConnection
        End Select
       
    End Function
    Private Sub Command1_Click()
        Set adoConn = New ADODB.Connection
        Dim strAdoConn As String
        strAdoConn = BuildAdoConnection("")  'strAdoConn 为连接字符串
        MsgBox strAdoConn
    End Sub