MS-AccessのテーブルをMySQL(ODBC接続)にエクスポートする

テーブルを格納したファイル(database.mdb)とフォームを格納したファイル(form.mdb)があるときに、database.mdbのデータをMySQL(ODBC接続)にエクスポートした手順を記述します。

実験環境

Clientマシン
Serverマシン

Serverマシンの作業

  • 空のデータベースを作成する
    • MySQL Query BrowserでCreate New Schemaを行う
    • MySQL AdministratorでODBC接続に使用するユーザ(例:odbc_client)を作成する
    • 管理権限ユーザでログインする(XAMPP初期値では、管理権限ユーザ Username:root Password:(なし)でログインできる)
    • User AdministrationでコンテクストメニューからAdd new userを行う
    • 作成したユーザに対して権限を付与する
    • phpMyAdminで作成したデータベースの(文字コード)照合順序をsjis_japanese_ciに変更する(※)
    • 左カラムでデータベース名をクリックする
    • 右カラムで操作をクリックする
    • 照合順序のプルダウンメニューからsjis_japanese_ciを選択して[実行する]ボタンを押す

Clientの作業

  • ODBCドライバをインストールする
    • MySQL Connector/ODBC 3.51を下記からダウンロードする

http://dev.mysql.com/downloads/connector/odbc/3.51.html

    • ダウンロードしたファイルをダブルクリックしてインストールする
    • ODBC データソース アドミニストレータでDSNを追加する
    • [コントロール パネル]-[管理ツール]-[データソース (ODBC)]の順に開く
    • システム DSNタブを選択する
    • [追加]ボタンを押す
    • MySQL ODBC 3.51 Driverを選択して[完了]ボタンを押す
    • Data Source Nameを記入する(DSN選択時の表示名となる)
    • Serverを記入する(localhostまたはコンピュータ名)
    • UserにODBC接続に使用するユーザを記入する
    • Connect OptionsでInitial Statementに「set character set sjis」を入力する
    • Connect OptionsでCharacter Setに「sjis」を入力する
    • Passwordを設定する
    • [Test]ボタンを押して接続テストを行う(Success; connection was made!とダイアログが表示されれば成功)
    • Databaseを選択し、[Ok]ボタンを押す
  • AccessファイルのテーブルをMySQL(ODBC接続)にエクスポートする
    • Accessファイル(database.mdb)を開き、テーブル一覧を表示する
    • エクスポートするテーブルを選択し、コンテクストメニューからエクスポートする
    • ファイル選択ダイアログが開いたら、ファイルの種類でODBC データベース ()を選択する
    • テーブルのエクスポート先を入力するダイアログが開いたら、[OK]ボタンを押す
    • データ ソースの選択ダイアログが開いたら、[コンピュータ データ ソース]タブを選択する
    • 作成したDSNを選択して[OK]ボタンを押す
  • Accessフォームのデータベース参照先をMySQL(ODBC接続)に変更する
    • Accessファイル(form.mdb)を開き、テーブル一覧を表示する
    • Accessファイル(database.mdb)のテーブルへのリンクを削除する
    • コンテクストメニューからテーブルのリンクを行う
    • リンクの選択ダイアログが開いたら、ファイルの種類でODBC データベース ()を選択する
    • データ ソースの選択ダイアログが開いたら、[コンピュータ データ ソース]タブを選択する
    • 作成したDSNを選択して[OK]ボタンを押す
    • テーブルのリンクダイアログが開いたら、リンクするテーブルを選択して[OK]ボタンを押す
    • 固有レコード識別子の選択ダイアログが開いたら、Primary Keyのフィールドを選択して[OK]ボタンを押す

文字コードをShift-JISに合わせる過程で、他にもいろいろ試行錯誤したので、必要な作業が抜けてるかもしれません。
試行錯誤した内容

  • my.cnfにdefault-character-set=sjisを加える(結局最終的にはやめました)
  • ODBCドライバのAdvancedのFlags 3タブでRead Options From my.cnfにチェックを入れる(結局最終的にはやめました)

参照したページ

  • MySQLインストール - けんとのブログ

http://blog.goo.ne.jp/kent-12_2008/e/ce6692595c8d38c156d218c767f2e196

  • 古いmysqlを利用してのODBC接続はSP3の導入に注意!

http://www.isagiyoi.com/e172.html

http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200803/08030009.txt

  • START YOUR ENGINES MySQL

http://osada113.blog94.fc2.com/blog-category-6.html

  • MySQL黒猫SQL Studio文字化け - THE MIND の日記

http://d.hatena.ne.jp/THE_MIND/20080517

  • MSN相談箱 全角文字が???になる

http://questionbox.jp.msn.com/qa2068942.html?ans_count_asc=1

http://www.artful.jp/blog/archives/2006/07/xamppmysqlphpmy.html

  • MyODBCのインストールとデータソースの作成 - [データベース]All About

http://allabout.co.jp/internet/database/closeup/CU20060107A/

  • MSN相談箱 MS-AccessまたはExcleで作ったものをMySQLにインポートするには?

http://questionbox.jp.msn.com/qa1244588.html

http://www.accessclub.jp/bbs6/0017/das5094.html

  • 自己解決しました。

http://www.amy.hi-ho.ne.jp/jbaba/messages/2279.html

  • Good-How » エクセル>ACCESSMySQLへのデータのエクスポート その2

http://www.good-how.com/index.php?a=home&p=3

  • MySQLのインストール/動作確認手順

http://homepage1.nifty.com/yito/anhttpd/faq/mysql.html

http://d.hatena.ne.jp/ke_takahashi/20060404

http://www.arakin.dyndns.org/hp_utf8xampp.php

  • 2008-06-09 - urapicoの日記(メモ的に)

http://d.hatena.ne.jp/urapico/20080609

  • 偽偽夜食日記: Connecter/ODBCでハマる問題

http://rryu.sakura.ne.jp/nisenise-fuhito/category/connecter-odbc-problem.html

http://oshiete1.goo.ne.jp/qa1244588.html

http://blog.setunai.net/20061126/ms-access%E3%81%8B%E3%82%89mysql%E3%81%ABodbc%E3%81%A7%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B/