2009年2月15日日曜日

Microsoft Access から MySQL5.0 に ODBC connecter で 接続したい。

[やりたいこと・しりたいこと]
Microsoft Access から MySQL5.0 に ODBC connecter で 接続したい。


[環境]
WindowsXP SP3 on VMware
mysql-essential-5.0.67-win32.msi
mysql-connector-odbc-5.1.5-win32.msi
Access 2003 SP3

MySQLとAccessは 同一仮想マシンの上にインストールされている



[やったこと・わかったこと]

1. my.iniにcharacter setを追記する

[client]
default-character-set=sjis

[mysqld]
default-character-set=sjis

[mysqldump]
default-character-set=sjis

[mysql]
default-character-set=sjis



2. mysqlで現在のcharacter setを 確認する

mysql> SHOW VARIABLES LIKE 'char%';

使用できる character setを 確認する
mysql> show character set like '%cp%';
mysql> show character set like '%jis%';
mysql> show character set like '%utf%';

3.1 acsessから接続するdatabaseを作る
mysql> create database db_acsess character set sjis

3.2 サンプルのtableを作る

create table tbl_sample (id int, name varchar(30));

3.3 サンプルの情報を登録する

insert into tbl_sample (id, name) values (1, '綾波レイ');
insert into tbl_sample values (3, '碇シンジ');



4. mysql-connector-odbc の インストール
mysql-connector-odbc-5.1.5-win32.msi


5.
コントロールパネル
データソース(ODBC)
ユーザーDSN 追加
MuSQL ODBC 5.1 Driver 完了


Data Source Name:mysql_access
Description:
Sever: localhost
Port:3306
User:root
Password:********
Database:db_access

Data Source Name: この接続の識別名
Description: この接続の説明
Server: データベースサーバー
Port:MySQLのポートナンバー
User: データベースに接続するためのアカウント
Password: 上記アカウントのパスワード
Database: 接続対象のデータベース


6. AccessからMySQLのデータベースに接続する

新規データベース作成
sample.mdb

ファイル -> 外部データの取り込み -> テーブルリンク ->

ODBCデータベース -> コンピュータデータソース -> mysql_access



[注意点・はまった箇所]

MySQLInstanceConfig.exeを使わず、手動でサービス登録などをしているので、default_character_set=latin1 になっている。
この状態で、create database db_accessだけだと database の character set が latin1 になってしまう。
その場合は明示的に create database db_acsess character set sjis とする。

my.ini に sjis の設定が済んでいるなら、明示的に create database db_acsess character set sjis とする必要はない。

utf8 に 設定した場合 英数字はOK だが かな漢字の表示が 旨くいかなかった。 sjisなら 表示できた。

mysql5 utf8 php5 utf8 access2003 sjis だと 問題になる。
mysql5 sjis php5 sjis access2003 sjis なら 問題ないはず。


[参考]

MS AccessからMySQLのデータベースに接続する
http://www.hm-lab.net/archives/305

Microsoft Access で Connector/ODBC を使用する
http://dev.mysql.com/doc/refman/5.1/ja/myodbc-examples-tools-with-access.html

文字コード確認設定
http://www.smaps.co.jp/blog/03_service/02_www/post_28.php

mySQL 操作メモ(一般)
http://www.netp.tuis.ac.jp/moodle/course/view.php?id=18&page=MySQL

KRAKENBEAL RECORD: mysqlのデータベースへaccess 2003のテーブルのリンク
http://krakenbeal.javascript:void(0)blogspot.com/2009/06/mysqlaccess-2003.html