AccessからMySQL(MariaDB)へODBC接続

アクセスからODBC接続

WindowsPCのデータベースアプリケーションMS-AccessからオラクルのODBCドライバを使ってMySQL(MariaDB)サーバーへ接続する手順です。

あれこれ試して自己解決で接続できた方法ですが、あとで調べてみたらODBC接続はWindows側で設定する手段が王道のようでした。

当記事にまとめた接続手順は予めODBCドライバがインストールされている環境でAccess2013を使用しています。その後の動作環境の検証についてページ下に記載してします。

ODBC接続についての検証環境

ドライバのインストール

MySQLへ接続するODBCドライバをインストール

新規ファイルの作成

Accessを起動し「空のデスクトップデータベース」をクリック。 新しいファイルの保存先を指定して「作成」をクリックし***.accdbファイルを作成する。

新規にファイルを作成

空のデータベースファイルを作成。

ファイルの保存場所を指定

※ここで作成される「テーブル1」は使用しないので「閉じる」を操作し、すぐ削除してしまってかまわない。

リンクテーブルの作成

ODBCデータベースを指定

続いて「外部データ」メニューから「ODBCデータベース」をクリック。

Access2016では、「外部データ」→「インポートとリンク:新しいデータソース」→「データベースから(D)」→「SQLServerから(S)」の手順になります

リンクテーブルを作成

外部データの取り込みで「リンクテーブルを作成…」にチェックを入れOKを押す。

データソースの選択

そのまま新規作成

何もせず新規作成をクリック

MySQL_ODBC5.3UnicodeDriverを選択

MySQL_ODBC5.3UnicodeDriverを選択して次へ

「データソースの選択」というボックスが表示されるので、DSN名(D):の右側「新規作成(N)」をクリック(この段階ではDSN名は空欄でも良い)しデータソースの新規作成ボックスの一覧から「MySQL ODBC 5.3Unicode Driver」を選択し「次へ」へ進む。

データソース名を入力

データソース名の入力画面になるので任意の名前を入力し「次へ」へ進む(まだ保存場所は指定しなくて大丈夫。

ファイル名とドライバの表示を確認

ファイルデータソースとして、指定した「ファイル名:***」及び「ドライバー:***」が表示されるので確認し「完了」を押す。

データベースサーバーへの接続設定

MySQLコネクタの画面

必要項目を入力するとデータベースが表示される

その後、自動で表示される「MySQL_Connector/ODBC」の画面でデータベースサーバーのTCP/IP、User、Passwordを入力するとDatabase:のところでプルダウンから目的のデータベースが選択できるようになるので接続するデータベースを選択してOKを押す(MySQL_Connector/ODBCの表示は少し時間がかかる)。

データソースファイルの保存

データソースの選択に戻る

ここで再度「データソースの選択」に戻るが、DSN名(D):の入力欄に「ファイルデータソース」で入力したデータソース名が表示されているので確認後、必要により上の「データソースの場所(I):」を選択してから「OK」を押す。

作成されるデータソースファイル(拡張子がdnsのファイル)は、別のアクセスファイルで同じデータベースに接続したいときにも使用可能。

Accessで利用するテーブルを選択

MySQL_Connector/ODBCの画面

再度「MySQL_Connector/ODBC」の画面が出るので、今度はパスワードのみを入力しOKを押す。

テーブルのリンク

「テーブルのリンク」が表示されるので、必要であれば「パスワードの保存」にチェックを入れAccessで使用するテーブルを選択し「OK」を押します。

※「パスワードの保存」にチェックを入れるとパスワードについての注意のメッセージが表示されます。

固有レコード識別子の選択

次に表示される「固有レコード識別子の選択」というボックスで、テーブルごとのフィールドが表示させれるのでAccessで使用したいフィールドを選択しOKを押す。

この操作をテーブルの数分繰り返す。

以上でAccessからODBC接続でMySQLデータベースへ接続が完了しAccessの画面の左にテーブル名の一覧がリンクテーブルとして表示されます。

Accessに表示されたテーブル名

Accessに表示されたMySQLサーバーのテーブル名

データベースサーバーへのODBC接続はWIndowsOS側でも設定が可能のようでが試せていません。

利用するアプリケーションがAccessだけなら今回の方法がわかりやすいのではと今のところ考えます。

ODBC接続についての検証環境

Accessからデータベースサーバーへの接続環境について、検証できている最新の動作環境は次の通りです。(2023年1月現在)

【PCの構成】

アプリケーション Access2016 64bit
コネクターのバージョン Connector/ODBC 8.0.31 64bit
OS Windows10 64bit

【接続先ローカルサーバー】

OS Debian11 32bit(Linux)
DBサーバー MariaDB 10.5.18

ベアボーンPC「Shuttle XS35 V2」でデータベースサーバーDebian11 bullseye

サーバーはハードウェアスペックに合わせ32bitで運用していますが、接続元のPCはすべて64bitに統一しています。

PCはAccessが64bitならODBCドライバも64bit。32bitならドライバも同じ32bitに統一しないと接続できませんでした。

ODBC接続の場合、特別な事情(マクロの動作問題など)が無ければWindowsも含めて全て64bitを採用したほうが良さそうです。

上手く接続できないとき

AccessからMariaDBへODBC接続できないときに確認したいこと

おすすめ記事

アクセスがインストールできない Accessのインストールで既存のOfficeが64bitだと表示される Accessのサブフォームでデータベースを活用した簡単便利な仕事管理システムを作る MicrosoftのAccessは難しい データベースアプリケーションの種類