MS Access 秀丸

AccessからMySQLを操作

投稿日:2009年5月21日 更新日:

WordPressに書いた記事は、MySQLに格納されている。

格納された大量の記事をまとめて修正したいときは、いちいち管理画面から修正するのは疲れる。
今までは、PhpMyAdminでSQLのUPDATEを使うか、またはいったんテキストファイルでローカル環境にダウンロードしてから秀丸で置き換え機能でやってきた。

でも、フィールド数が多かったり、一つのフィールドに格納されている文字量が多かったりすると、どちらのやり方をとっても、テキストボックスをクリックしてスクロールしないと見えなかったり、あるいはウィンドウの右端で折り返されたりして、なかなか効率が悪い。

こんなとき、ローカルに強いAccessを使えたら便利なのに。
フォームが簡単に作れるから、修正対象となるフィールドだけを表示できるし、文字量の多いフィールドは、テキストボックスの書式を変更してフォントサイズを小さくすればよい。

で、今日はXAIOのMYSQL+ACCESS+ODBCドライバと、XAMPPのMySQL+ACCESS+ODBCドライバで、それぞれやってみた。

結論から言うと、最初は、文字化けしたり、レコードの読み込みはできても更新できなかったり、ODBC接続テストでエラーが出たりして、なかなかうまくいかなかったけど、最後にはできた。

  • xaio(MySQL 4.0.20)+ Access2007 + MysqlODBC(v3.51) —NG
  • xaio(MySQL 4.0.20)+ Access2007 + MysqlODBC(v5.1) —NG
  • xampp(v1.4,MYSQL(v4.0.18)) + Access2007 + MysqlODBC(v3.51) —NG
  • xampp(v1.4,MYSQL(v4.0.18)) + Access2007 + MysqlODBC(v5.1) —NG
  • xampplite(v1.7.1,MYSQL(v5.1.33)) + Access2007 + MysqlODBC(v5.1) —OK

一番最後の組み合わせで、やっと文字化けもエラーも出なくなった。ACCESS2003でもテストしてみたけどそれもうまくいった。
xamppではなくてxamppliteを使ったのは別に意味なし。パッケージをダウンロードするのに時間がかかるようだったからサイズが小さいのにしただけ。

学んだこと:
・それぞれのソフトは、面倒くさがらずに新しいバージョンをダウンロードしてきてから使うこと。特にxaioなんてのは2006年版だった・・・。
・うまくいかない理由はACCESSではなくて、MySQLとそのODBCドライバにあった。
・テストするときは、事前にxaio_start.exeでサーバを作っておかなくてはいけない。
・MySQLのODBCは5.1になってから文字コードを自動変換してくれるようになったらしい。


今日もまた、こんなことに仕事場で半日使ってしまった。
けど、最後にはうまくいってほんと良かった。何度も言うけど。

あとは、この「知恵」を使った仕事が今後来るかどうかだなあ・・・それが問題だったり。

-MS Access, 秀丸

執筆者:

関連記事

no image

テーブル/クエリのデータシートビューでイベントを処理する方法

参考:テーブル/クエリのデータシートビューでイベントを処理する方法 | YU-TANG’s MS-Access Discovery え、そうなの? クエリを閉じた際のイベントをセットできる …

no image

サブフォームで苦労

Access覚書。 サブフォームつきのフォームからダイアログ・フォームを呼び出す。 ダイアログフォームのリスト形式のレコードをクリックしたら、呼び出し元のフォームのサブフォームに値を追加して、次のため …

no image

パラメータクエリにパラメータをセットして実行した結果をデータシートで表示する」というコードの実行で3065エラー

Accessの仕様として、パラメータクエリだけが駄目なのかと思ったら、なんと選択クエリが駄目なのだそう。 理由は、Executeメソッドはアクションクエリのもので、選択クエリのものではないからだそう。 …

no image

Accessで DoCmd.RunSQL を CurrentDb.Executeにしたら、1秒高速化した

処理が遅いので速くして欲しいとの要望があったので、コードを調査。 DoCmd.RunSQL を CurrentDb.Execute に置き換えると非同期で実行されるとの情報を得たので、試す。 結果、6 …

no image

Accessの再クエリーでデータが移動してしまうのを解消

仕事メモ。 メイン・明細フォームのときは、 http://www.sanryu.net/acc/tips/tips323.htm を参考に、 Dim m_offset As Long ‘レ …