最終更新日: 2009/11/03
MS-Windowsに用意されている ADO(注1)およびADOX(注2)の仕組を利用すれば、データベースソフトのAccessのファイルを作成・参照・更新できます。Excelのファイルも同じ仕組によって処理できます。Access, Excelがインストールされていないパソコンでも大丈夫です。
そうしたADOによる処理をrubyで簡単に実現するために作ったのが yado.rb です。総てrubyスクリプトで書かれています。
Windows上で ruby.exe を実行できる環境があれば、yado.rbを用いて、AccessやExcelのファイルを操作するrubyスクリプトを簡単に作成できます。
ver 1.0→1.5のバージョンアップ内容
Access2007ファイル *.accdb への対応、sql命令の実行結果を保持する Resultクラスの新設、xml, adtgファイルの読み書きなどが主なバージョンアップ内容です。
ダウンロード: ZIPアーカイブ yado150.zip
また、Access, ExcelのファイルをSQL命令で操作したい時に、同梱の yadosql.exe を利用できます。このコマンドは、Accessやrubyがない環境でも動作します。
これをWindowsのコマンドプロンプトで起動すると、標準入力から入力されたSQL命令が実行され、その結果が標準出力・標準エラー出力に出力されます。
yadosql.exeの解説ドキュメントは yadosql.exeの使い方 に掲載しています。
なお、yado.rbのver 1.5へのバージョンアップに伴い、次の2つのコマンドが追加されています。
参考情報: MS-Accessの Form, Report, Query, Macro, Module をテキストファイルとして書き出すrubyスクリプトを プログラミング雑記帳 に載せておきました。テキストファイルから読み込む方法も容易に類推できます。つまり export, import とも行えるわけです。yado.rbと違ってAccessがインストールされていないと動かせませんが、それなりに便利です。
Accessを使わずに、なるべく簡単なrubyスクリプトで、そのファイルを作成・参照・更新できるようにすることを目標にしました。
なにより「簡単なrubyスクリプトで」が第一で、例えば、下に掲げる実質4行のスクリプトで、Access付属のNorthwind.mdb(注)の標準テーブルの中身を総てExcelファイルに書き出すことができます。(Excelには慣れているけど Accessにはちょっと、というユーザーにはそれなりに使えるのでは?)
#! ruby.exe -KS require 'yado' db = Yado.new 'Northwind.mdb' db.print_all_values 'OUTPUT.XLS' # OUTPUT.CSVだとCSVファイルとして書き出す db.close
もちろん、queryまたはquery_resultメソッドによってSQL命令の実行も可能です。
db.query_result("SELECT * FROM 受注明細;").pav("output.xls")
(注) Northwind.mdbは、下の愛媛大学のサイトからダウンロードできます。
「コンピュータ演習 Excel2000 & Access2000」
Windows XP, ADO ver 2.7, MSWin版 ruby ver 1.8.7
CPU:インテル(x86)・2800MHz, メモリー:190MB
2002年に購入した今となっては旧いパソコンですが、ADOは最初からインストールされていました。
ZIPアーカイブ同梱のサンプルスクリプトを試したところ、上の開発環境のほか、Windows VISTA, ADO ver 6.0 (Access2007はインストールされていない。)でも動きました。
ruby.exeについては、Windows上で動くものであって win32ole.so が用意されていれば、その種類は問わないと思います。バージョンは、1.8.x であれば問題ないはずです。1.9.xでは動作確認していません。
ADOの仕組を通して、Lotus、Paradox、あるいはmysqlやpostgresqlなどのデータベースファイルを扱えるようですが、yado.rbではそこまで拡張していません。
ZIPアーカイブに含まれているドキュメントでは、ADOやSQLに関して私なりに調べた情報を交じえながら、yado.rbの解説を記しています。
mdbファイルを基にして説明していますが、xlsファイルの扱いについても最後の方で触れています。
ドキュメントをWeb上で閲覧したい方はyado.rbの使い方(1) からどうぞ。「part 1」と「part 2」の2つに分けて掲載しています。
ドキュメントの目次は下のとおりです。
当Webに関連することでアドバイスや問合せなど何かありましたら、以下までメールをお願いします。
t-yoshi#izumi@msb.biglobe.ne.jp
(SPAM対策のため、8文字目に # を入れて記載しています。お手数ですが、上記アドレスから # を除いて送信してください。)