■環境
MySQL5.1
Access2002(古いw)
■MySQL×Accessの実現方法
ODBCドライバを使う。
って事で、MySQL公式サイトからDL。
「Connector/ODBC」というのから適当にDLすると、最新版(2010年3月11日)は、
mysql-connector-odbc-5.1.6-win32.msi
ってことで、ver5.1.6を深く考えずインストール。
あとは、コンパネ→管理→データソースでドライバ設定。
参考はこの辺を:http://allabout.co.jp/internet/database/closeup/CU20070913A/index2.htm
これでOK。
あとは、ACCESSでMySQLに接続してみよう。
この辺参考:http://allabout.co.jp/internet/database/closeup/CU20021003/index2.htm
そして接続した結果を見ると・・・日本語文字化け 。゜(゜´Д`゜)ノ
■ODBCの文字化けを直そう
文字化けについて色々調べると、サーバとクライアントの文字コードを設定すれば云々・・・と書いてある。
(この辺:http://www.editorgoes.net/blog/2007/01/mysqlaccess.html)
ただ、これをするとSQLインジェクションとかの問題もあったりしてあまり良くない、らしい。
ってか、MySQLとAccessの間に横たわるMyODBC?(正式名称かは不明だが)で
文字コード変換できないとダメだろう、と思い調査。
最初に調べたサイトに詳細が載っていたのに見落としていて、見付けるのに時間がかかったが、
---------------------------------------------------------------------------------
「Connect Options」タブの「Initial Statement」に
「SET NAMES SJIS」と入力し日本語が表示できるように設定します。
「Character Set」にMySQLをインストール設定した場合に指定した文字コード「sjis」を指定します。
---------------------------------------------------------------------------------
と書いてある。
なので、ODBCのオプションを探し、設定してみる。
Initial Statement : SET NAMES SJIS
Character Set : utf8 (今回DBはutf8なので)
すると、エラー。
「set names not allow」
「SET NAMES SJIS」の入力を受け付けてくれない。
原因が分からず調べていると、どうもMyODBC5.1からセキュリティの都合でset namesを許可しなくなったらしい。
その前のODBC3.5まではOKとのこと。
しつこく探せば対応もあったのかもしれないが、ODBC5.1にこだわる理由も無かったので、
3.5を入れなおし、同様の設定をする(5.1と3.5は若干ODBC設定画面が違う)、上手くいきました。
MySQL5.1
Access2002(古いw)
■MySQL×Accessの実現方法
ODBCドライバを使う。
って事で、MySQL公式サイトからDL。
「Connector/ODBC」というのから適当にDLすると、最新版(2010年3月11日)は、
mysql-connector-odbc-5.1.6-win32.msi
ってことで、ver5.1.6を深く考えずインストール。
あとは、コンパネ→管理→データソースでドライバ設定。
参考はこの辺を:http://allabout.co.jp/internet/database/closeup/CU20070913A/index2.htm
これでOK。
あとは、ACCESSでMySQLに接続してみよう。
この辺参考:http://allabout.co.jp/internet/database/closeup/CU20021003/index2.htm
そして接続した結果を見ると・・・日本語文字化け 。゜(゜´Д`゜)ノ
■ODBCの文字化けを直そう
文字化けについて色々調べると、サーバとクライアントの文字コードを設定すれば云々・・・と書いてある。
(この辺:http://www.editorgoes.net/blog/2007/01/mysqlaccess.html)
ただ、これをするとSQLインジェクションとかの問題もあったりしてあまり良くない、らしい。
ってか、MySQLとAccessの間に横たわるMyODBC?(正式名称かは不明だが)で
文字コード変換できないとダメだろう、と思い調査。
最初に調べたサイトに詳細が載っていたのに見落としていて、見付けるのに時間がかかったが、
---------------------------------------------------------------------------------
「Connect Options」タブの「Initial Statement」に
「SET NAMES SJIS」と入力し日本語が表示できるように設定します。
「Character Set」にMySQLをインストール設定した場合に指定した文字コード「sjis」を指定します。
---------------------------------------------------------------------------------
と書いてある。
なので、ODBCのオプションを探し、設定してみる。
Initial Statement : SET NAMES SJIS
Character Set : utf8 (今回DBはutf8なので)
すると、エラー。
「set names not allow」
「SET NAMES SJIS」の入力を受け付けてくれない。
原因が分からず調べていると、どうもMyODBC5.1からセキュリティの都合でset namesを許可しなくなったらしい。
その前のODBC3.5まではOKとのこと。
しつこく探せば対応もあったのかもしれないが、ODBC5.1にこだわる理由も無かったので、
3.5を入れなおし、同様の設定をする(5.1と3.5は若干ODBC設定画面が違う)、上手くいきました。