Q33:AccessのデータベースをMySQLにインポートするには?
Q33-1:
現在Acess2000とXAMPPのMySQL5.0の二つのデータベースを利用していますがMySQL側のデータベースをAccessにインポートする手段として、MyODBCを用いてデータベースをリンクさせることで対応しているのですがこの逆のAccessのデータベースをMySQLにインポートするにはどうすればよいのでしょうか?
Access側のデータベースをcsv形式にして,MySQLにインポートすることも考えたのですがXAMPPのphpMyAdminのインポートからcsv形式にしたデータベースをインポートしてみても次のようなエラーが発生してインポートできず、インポートするデータベースによっては文字化けも発生します。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"1","2007-12-07","11:21:28",NULL,"203","K0001","152",NULL,NULL,"12:01:47","13:14' at line 1
これらの問題にどのように対応すればよいのでしょうか?
A33-1:
MZPlatformを使う方法とAccessから直接MySQLへデータ移行する方法と2つを簡単にご紹介致します。
1.現在ODBCドライバーを介してMySQLのデータを利用しているとのことですので、ドライバー設定済みと思います。
(InitialStatementで [set names sjis]等が設定してあると文字化け防止になります)
Accessのテーブルエクスポートでファイルの種類に「odbcデータベース」を選べば、MySQLへデータを直接移行することができます。
詳しくは以下のURLのMySQLリファレンスをご覧下さい。
http://dev.mysql.com/doc/refman/5.1/ja/myodbc-examples-tools-with-access.html#myodbc-examples-tools-with-access-export
2.MZPlatformを使ってテーブルを移行することも可能です。
手順のみ簡単にご説明します。
@MZPlatformからAccessに接続し[データベースアクセス]コンポーネントを使ってテーブルデータを取得します。取得したテーブルは何らかの方法(CSV出力、複合コンポーネントに入れる)で保存も可能です。
AMZPlatformからMySQLに接続し、Create Table文でテーブルを作成します。
B[データベースアクセス]の「メソッド:insertRow(PFObjectTable)」などを使うと各作成済みのテーブルにデータを一度に入れることができます。
[データベースアクセス]コンポーネントを使ったサンプルファイルをご覧頂くと、上記手順@〜Bを行っている部分があります。
但し、ご自分で各機能を一つのアプリケーションに纏めるか、各サンプルを段階毎に使うなど、煩雑になってしまうかも知れません。