AccessからMySQLのODBCドライバを経由してリンクしたテーブルやクエリーの結果の日本語が文字化けする場合の回避方法を覚書。
文字化けの原因は、MySQL側で指定されている文字コードがAccessでサポートしている文字コード(Shift_JIS)と異なるために発生する。
VBAなどのプログラムから接続しに行った場合でも同様。
日本語の文字化けを防ぐには、ODBCドライバの設定で"Shift_JIS"を使うように設定すればよい。
以下にODBCドライバの設定方法について説明。
MySQLのODBCドライバの文字コード設定
MySQLのODBCドライバの設定には文字コードを指定できる場所があるので、そこにAccess側の文字コードを使うことを記述しておけば文字化けせずに済む。
設定方法は以下のとおり。 [ODBCアドミニストレータ]のデータソース設定時に[Connect Options]タブの[Initial Statement]ボックスに以下の表記を入力しておく。(引用符は含まない) "SET NAMES SJIS"
この設定をしておけば、UTF8で設定されているテーブルをリンクしても文字化けが発生しない。
"SET NAMES SJIS"オプションについては、VBAで接続する場合の接続文字列でも指定できる。
機種依存文字や全角記号の文字化け対応について
一部の機種依存文字や全角記号("①"など)だけが文字化けしているような場合は、以下の記事を参照。
MySQLのリンクテーブルで機種依存文字や全角記号などの文字化け回避について
MySQLのリンクテーブルで機種依存文字や全角記号が文字化けを起こす際の回避策について覚書。
コメント
勉強になりました