※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

AccessDBのコネクション取得

  • ソース
Option Compare Database
Option Explicit

' ACC_AccessDBConnection
' AccessのDBのコネクションを簡易で取得する
' 実行環境にはADODBの参照設定が必要です

Private CAFObj As ACC_CheckAccessFile

Private ProviderStr_MDB As String
Private ProviderStr_ACCDB As String

Private Sub class_initialize()
    Set CAFObj = New ACC_CheckAccessFile
    
    ProviderStr_MDB = "Microsoft Jet OLEDB.4.0"
    ProviderStr_ACCDB = "Microsoft.ACE.OLEDB.12.0"
End Sub

' GetDBConnection
' DB接続を行い、Connectionオブジェクトを取得する
' 引数:あり
' iFilePath :String    :ファイル(含ファイルまでのフルパス)
' 戻り値:あり
' ADODB.Connection   :Accessのプロバイダ名
Public Function GetDBConnection(ByVal iFilePath As String) As ADODB.Connection
    Dim dbCon As ADODB.Connection
    
    Set dbCon = New ADODB.Connection
    
    dbCon.ConnectionString = "provider=" & _
                                GetConnectProviderString(iFilePath) & _
                                ";" & _
                                "Data Source=" & _
                                iFilePath
    
    dbCon.Open
    Set GetDBConnection = dbCon
End Function

' GetConnectProviderString
' DB接続のConnectionStringプロパティに設定するAccessのプロバイダ名を取得する
' 引数:あり
' iFilePath :String    :ファイル(含ファイルまでのフルパス)
' 戻り値:あり
' String   :Accessのプロバイダ名
Private Function GetConnectProviderString(ByVal iFilePath As String) As String
    Dim resultStr As String
    Dim acFilePattern As Long
    
    acFilePattern = CAFObj.GetAccessFilePattern(iFilePath)
    
    If acFilePattern > 10 Then
        resultStr = ProviderStr_ACCDB
    ElseIf acFilePattern > 0 Then
        resultStr = ProviderStr_MDB
    Else
        resultStr = ""
    End If
    GetConnectProviderString = resultStr
End Function