Accessロゴ

ODBCドライバ経由でAccessのデータベースに接続する際にODBCデータソースを作成せずにVBAのプログラム中のODBC接続文字列に直接指定して接続するサンプルプログラムを覚書。

通常ODBCドライバ経由でデータベースに接続する場合、[コントロールパネル] > [管理ツール] > [データソース(ODBC)]でデータソースを作成しそれをプログラム中で指定して接続しますが、紹介する方法であればデータソースの作成が必要なくなります。
スポンサードリンク


ODBCデータソースレス接続方法

ODBCデータソースレス接続する際の接続文字列は以下のとおりです。

Driver={ドライバ名};DBQ=デーベースファイルへのフルパス;UID=admin;

上記の{ドライバ名}にAccessのODBCドライバ名を指定します。

ODBCドライバのドライバ名の確認

接続文字列の{ドライバ名}に指定するODBCドライバ名は以下の2つの方法で確認することができます。

レジストリで確認する方法

レジストリエディタを起動して"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI"のキーを参照します。

キー名称が各ODBCドライバの名前になります。

ODBCドライバ名をレジストリで確認する

[ODBC データソース アドミニストレータ] ダイアログボックスから確認する方法

[ODBC データソース アドミニストレータ] ダイアログボックスの[ドライバ]タブの[名前]一覧に表示されている名前が各ODBCドライバの名前になります。

ODBCドライバ名を[ODBC データソース アドミニストレータ] ダイアログボックスから確認する


上記の何れかの方法で確認するとAccessのODBCドライバ名は、

"Microsoft Access Driver (*.mdb)"

であることがわかります。

ODBCデータソースレス接続文字列の例

例えば、"C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"にODBCデータソースレス接続する場合の接続文字列は以下のようになります。

Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb;UID=admin;

ODBCデータソースレス接続を使用したVBAのサンプルプログラム

Access VBAでODBCデータソースレス接続を使用したサンプルプログラムを紹介します。

以下のサンプルプログラムは、サンプルデータベース"Northwind"に接続して"社員"テーブルの"氏名"フィールドの内容をイミディエイトウィンドウに表示するサンプルプログラムです。
Sub procTest()
Dim Con As New ADODB.Connection, Rec As New ADODB.Recordset

Con.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};" _
    & "DBQ=C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb;UID=admin;"
    
Con.Open

Rec.Open "社員", Con
    Do Until Rec.EOF
        Debug.Print Rec("氏名")
        Rec.MoveNext
    Loop
    
End Sub

ODBCデータソースレス接続のまとめ

ODBCデータソースレス接続は他のPCで動作させる際に端末ごとにデータソースを作成する必要がないため、非常に便利です。

もちろんODBCドライバがインストール済みであることが前提です。

ODBCデータソースレス接続はAccessのVBAだけでなく、ExcelのVBAやVBでも使用できます。

使用するODBCドライバによって接続文字列の記述方法が若干異なりますが、基本的にはどのODBCドライバ接続でもデータソースレス接続が可能です。

スポンサードリンク

  

関連記事