MySQL – MySQLのデータをMSアクセスで処理

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は、***をテーブル名に変えるとそのまま使用できます。試してください。

>>つづく。

Comments are closed.