MySQLのデータをMSアクセスで処理する。
1 MySQLのテーブルをエクスポート
phpMyAdminで該当するテーブルを開く。処理メニュータブでエクスポートを選ぶ。
○IF NOT EXISTSを追加
○AUTO_INCREMENT 値を追加する
○テーブル名やフィールド名を逆クォートで囲む
○長い INSERT 文を作成する
以上のチェックをはずす。
この設定で、ファイルに保管する。
*.sqlのファイルが作成されるのでそれをエディタで開くと、下記のようなSQL文が出力されている。
CREATE TABLE *** ( ID int(11) NOT NULL auto_increment, CODE1 int(11) default '0', CODE2 int(11) default '0', TEXT1 varchar(250) collate utf8_unicode_ci default '', TEXT2 varchar(250) collate utf8_unicode_ci default '', MEMO1 varchar(1000) collate utf8_unicode_ci default '', MEMO2 varchar(1000) collate utf8_unicode_ci default '', DATE1 datetime default NULL, …… ) ……; INSERT INTO MST_KANRI2 (ID, CODE1, CODE2, …… …… ……
2 テーブルの作成
上のCREATE TABLE 文は別のテキストファイルに保管する。これはテーブルの定義ファイルであり、MySQLに戻すときこれをSQLで実行すると同じ定義のテーブルを作成できる。
INSERT INTO文はデータ本文なので、そのままで、別途入出力プログラムで処理を行う。
アクセスではCREATE TABLEに下記のように変更を加えると、同様のテーブルを作成することができる。
CREATE TABLE *** ( ID AUTOINCREMENT PRIMARY KEY, CODE1 int , CODE2 int , TEXT1 varchar(250) , TEXT2 varchar(250) , MEMO1 memo , MEMO2 memo , DATE1 datetime )
○auto_increment、主キーは上記の記述に変える。
○数値項目はint(11)の桁数を除く。
○アクセスではdefault の記述ができないため削除する。
○テキスト項目のvarchar(255)以上はmemoタイプにする。
○最後のコンマをとる。
以上でOKです。
修正が終わったら、アクセスを開き、選択クエリを、適当なテーブルで作成する。
クエリをSQL表示に変え、そこに作成したクエリをコピペで貼り付ける。
その後クエリの実行すると、目的のテーブルが作成される。エラーがあるとその箇所にカーソルがいくので、上記に照らして修正する。
上記のSQLは、***をテーブル名に変えるとそのまま使用できます。試してください。
>>つづく。