送信先のメールボックスでメールが受信できることを確認できたら、以下ではスクリプトの各部について詳細を見ていくことにしましょう。メールの送信部分については、既にメール送信編でも解説済みですので、本稿ではデータベースへのアクセスに関係する部分に注目してコードを見ていくことにします。
(1)ADOを呼び出す
データベースを操作するには、ADO(ActiveX Data Objects)というデータベースアクセスのためのライブラリを利用します。ADOは、データベースとの接続や問い合わせ(パラメータ)、その結果などを管理するためのさまざまなオブジェクト(道具)の集合です。オブジェクトの「集合」というと、なんだか難しくも聞こえるかもしれませんが、これまでと同じく、定型的な操作をするだけならば、利用するオブジェクトも限られますので、決して難しいことはありません。また、そもそもADO自体がよくできたライブラリなので、やりたいことをごくシンプルなコードで表現できます。
ADOを利用するには、まずADOの中核とも言えるオブジェクトADODB.Connectionオブジェクトを生成する必要があります。オブジェクトを生成するには、WScriptオブジェクトのCreateObjectメソッドを使用するのでしたね。
Set db = WScript.CreateObject("ADODB.Connection")
(2)データベースに接続する
ADODB.Connectionオブジェクトは、データベースへの接続を管理するためのオブジェクトです。なにをするにしても、まずはデータベースに接続していなければ話が始まりませんから、そうした意味でも、ADODB.Connectionオブジェクトはデータベース操作の基点であると言えます。 もっとも、ADODB.Connectionオブジェクトは接続のための単なる道具にすぎませんので、生成しただけでは意味がありません。必要なパラメータを引き渡して、実際のデータベースに接続する必要があります。最低限接続に必要なのは、以下のようなパラメータ(プロパティ)です。
接続に関係するパラメータ(ADODB.Connectionオブジェクトのプロパティ)
プロパティ | 概要 | 設定値(例) |
---|---|---|
Provider | データベース接続に使用するプロバイダ | Microsoft.Jet.OLEDB.4.0 |
Mode | 接続モード(主な設定値は以下) | |
設定値 | 概要 | |
1 | 読み取り専用 | |
2 | 書き込み専用 | |
3 | 読み書き可能 | |
ConnectionString | 接続文字列(データベースのパス) | mail.mdb |
プロバイダとは、データベースへの接続を実際に行うためのライブラリ(ドライバ)です。ADOそのものはあくまで汎用的なデータベース操作の手段を提供しているにすぎませんので、データベースに実際にアクセスするには、そのデータベースに対応したドライバが必要となるのです。ADOでは、このプロバイダを差し替えるだけで、接続するデータベースを柔軟に変更することができます。
接続するデータベースの種類によってProviderプロパティの値は変更する必要がありますが、Accessに接続する場合には、まずは"Microsoft.Jet.OLEDB.4.0"と指定しておけば良いでしょう。
Modeプロパティには、読み書きの可否を数値で設定します。ここでは、データベースの値を読み込むだけですので、最低限、読み込み可能なモードを指定しておきましょう。この場合、データベースへの書き込みはできなくなりますが、その分、読み書き可能モードで接続するよりは多少高速に動作します。
そして、ConnectionStringプロパティは、接続のための具体的な情報を表します。接続先のデータベースによって指定すべき情報は変わりますが、Accessであれば、.mdbファイルのパスを指定します。パスは適宜自分の環境に合わせて書き換える必要があります。以上、必要なパラメータが指定できたら、Openメソッドで接続を確立します。