#532 EUC形式のMySQLリンクテーブルの注意点 VBA

Accessで扱うデータの文字コードはShift-JISです。一方MySQLの場合はShift-JISだったりEUCだったりあるいはUTF-8だったりするので、それらのテーブルをAccessのリンクテーブルにした場合、Accessで表示すると全角文字が文字化けしてしまいます。
文字化けしたテーブル

そのような場合、ODBCの設定を変更することによって問題を回避することができます。たとえば、MySQLにEUC形式で保存されているデータをAccess上ではShift-JIS形式で正しく表示させたり、AccessでShift-JIS形式で編集されたデータをEUC形式に変換した上でMySQLに保存したりすることができます。


それには次のような操作を行います。
  1. まずスタートメニューの[管理ツール]等から「ODBCデータソースアドミニストレータ」を起動します。
    ODBCデータソースアドミニストレータを起動

  2. Access接続用のデータソースを[追加]ボタンから新規作成するか、すでに作成済みであればそれを変更するためにデータソースを選択してから[構成]ボタンをクリックします。
    [構成]ボタンをクリック

  3. MySQL用のODBCの設定画面が表示されたら、[Connect Options]のタブを選択します。

  4. ここで、「Character Set」の欄において、Accessの文字コードである「sjis」(=Shift-JIS)を選択します。
    Character Setを指定

  5. [OK]ボタンで設定を保存します。

なおこのあとの操作として、ODBCの設定変更をAccess側に反映させる必要があるわけですが、Accessのバージョン等によっても異なるのかもしれませんが、いくつかの操作を試みる必要があるようです。

実際にやってみてうまくいった方法は、
  1. MySQLのリンクテーブルがすでにある場合はいったん削除して、一からリンクし直す
  2. Accessをいったん終了してから再起動する
というものでした。通常はリンクテーブルマネージャを使って再リンクを行いますが、それだけでは反映されないケースもあるようです。

ODBC変更後のテーブル:
ODBC変更後のテーブル
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved