AccessからMySQL(MariaDB)へODBC接続

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

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

なお、今回まとめた手順は予めODBCドライバがインストールされている環境でAccess2013を使用しています。

新規ファイルの作成

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

 

新規にファイルを作成

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

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

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

リンクテーブルの作成

ODBCデータベースを指定

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

リンクテーブルを作成

外部データの取り込みで「リンクテーブルを作成…」にチェックを入れ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接続はOS側での設定が可能のようでが試していません。

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

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

WindowsPCからMySQL(MariaDB)サーバーへODBC接続するためにドライバをインストールする準備と手順についてまとめてみました。

クライアントPC側のアプリケーションはMS_Accessを想定しています。

今回使用したドライバーはmysql-connector-odbc-5.3.10-win32.msiです。

なお、重要なデータを扱う際には最新のバージョンを使用するのが良いでしょう。

DBMS接続のドライバは32bitを使用

まず基礎知識として、OSであるWindows10は64bitを使用していてもインストールしているAccessが32bitであればODBCドライバも32bitのものを使用した方が良いようです。

ほかのOfficeソフトであるWord・Excelは32bitが一般的であるのでAccessも32bitをインストールするのが望ましいようです。

それから、オラクルから提供されるされる「mysql-connector-odbc」のインストールにはVisualC++の再配布可能パッケージが必要でした。

事前にVC++再配布可能パッケージを準備

ODBCドライバをインストールする前に「VisualC++の再配布可能パッケージ」をインストールします。
手順は次の通り

1.マイクロソフトのサイトから、VC++ 2010とVC++2013の再配布可能パッケージ(どちらも32bit:vcredist_x86.exe)をダウンロードする。

2.VC++ 2010の次に2013の順にダウンロードしたパッケージをインストールする。

※VisualC++再配布可能パッケージはどちらか一つをインストールすれば間に合いそうな感じがしますが、手元の環境では2010と2013の両方しかも2010を先にインストールしてから2013でないとODBCドライバがインストールできませんでした。

ODBCドライバのインストール

ドライバの実行環境が整ったところで、オラクルのサイトからダウンロードしたODBCドライバ(今回はmysql-connector-odbc-5.3.10-win32.msi)をインストール。

ODBCドライバインストール画面

ドライバのインストールプログラムを実行するとこちらの画面が表示されます。

typicalを選択

ここでは一番上のTypicalを選択しました。

ODBCドライバのインストール完了

Installをクリックするとインストールが自動で開始されドライバのインストールが完了します。

PCによりますが、VC++再配布可能パッケージがインストールされていないと途中でメッセージが表示されインストールが完了できません。

インストールが完了すれば、データベースサーバーへ接続が可能になりますが、MS_Accessからの利用には別途アプリケーションからの設定(OS側でも可能?)も必要でした。

私の印象では、利用に関して情報の少ないLibreOfficeBaseからのJDBC接続のほうが簡単に感じます。

AccessもBaseも操作性に評価すべき点がそれぞれあるので、今のところどちらも使えるように環境を整えています。

Accessのインストールで既存のOfficeが64bitだと表示される

先日、デスクトップのWinodwsPCにMicrosoftのMS-Access2016(32bit)をインストールしようとしたところ、PCにインストール済みのOfficeが64bitだから、それを削除してからAccessをインストールするようにとのメッセージが表示されました。

Accessをインストールしたいパソコンで使用しているOfficeはhome and business 2019です。

32bitなのに64bitが入っている?

Access2016のセットアッププログラムを実行しようとして出てきたのは、次のメッセージ。

エラーメッセージ

Accessインストールのエラー

要するにMS_Officeの64bit版がすでにインストールされているから32bitのAccessをインストールしたいなら64bit版をアンインストールしなければならないとのこと。

しかし、先にインストールされていたOffice2019は64bitではなく32bit版でした。

このメッセージに従い、Office以外の64bitのプログラムを適当にアンインストールしたらパソコンに不具合が出ることが予想されます。

OfficeにAccessを追加する場合の注意

先に確認していた情報で、パソコンにプリインストールされているOfficeにAccessだけを追加インストールする場合、既存のOffice2016にAccess2016は追加インストールできない仕様になっているというのは知っていました。

この情報から推測すると、最新バージョンのOffice2019には一つ前のAccess2016はインストールできなと思われますが、MS_Officeの2016と2019の仕様に大きな変更がないのであれば、Office2019にはAccessの2019と2016の両方がインストール不可能ということになります。

Accessが付属していなかったOffice2019にあとから追加インストールできるAccessのバージョンは2013と解釈できます。

※クイックインストールができないだけで何か特別な手順を踏めば同じバージョンがインストール可能なのかは分かりません。

Access2013をインストール

ためしにAccess2013の32bit版インストールメディアをPCにセットし同じOffice2019がプリインストールされたPCにインストールを試みたところ、あっけなくインストールが完了

どうやら、Office2019がプリインストールされたパソコンにはAccess2016はインストールはインストールできない仕様になっているようです。

今回は、たまたまマイクロソフトのOffice2019が入っていたパソコンへのAccess追加インストールでしたが、自分の場合Word、Excelはあまり使わないのでMS_Accessだけ単発でセットアップする機会の方が多く今回のような事象に出くわすことはないと思われます。

ビジネス向けモデルのパソコンでOfficeのWord、Excelのみが入った端末を使っていてAccessだけを追加したいときなどは今回と同じエラーがでるかもしれません。