3.3 SQLの実行(レコードセットの作成)
SQLのSELECT文を実行し結果を取得したいときの方法です。SELECT文を実行するときは、ADOコネクションオブジェクトのExecuteメソッドを使います。

SELECTを実行するとレコードセットオブジェクトという物が作成され、そこからレコードやフィールドを取り出します。メソッドが違うだけで、ココのネタ(DAOのところ)にある2.3 テーブルやクエリーのオープンと同じです。実は、このページに書いてあることも、ほとんど同じだったり…でも、手抜きじゃないです(汗)
ExecuteメソッドでSELECT文を実行した例
例では、ADOを使い「住所録テーブル」というテーブルのレコードセットオブジェクトを作成(テーブルのオープン)し、その後クローズしています。太字と下線の部分がポイントで、詳しくはソースコード以下の説明をどうぞ。

Sub prcExecuteSelect()

    'Access VBA Tips
    '3.3 SQLの実行(レコードセットの作成)

    Dim adoCON As ADODB.Connection
    Dim adoRS As ADODB.Recordset

    'データベースのオープン(データベースオブジェクトの作成)
    Set adoCON = Application.CurrentProject.Connection

    'レコードセットの作成(SELECT文の実行)
    Set adoRS = adoCON.Execute("select * from 住所録テーブル")

    'レコードセットのクローズ
    adoRS.Close

    'データベースのクローズ
    adoCON.Close

    'オブジェクト変数のクリア
    Set adoRS = Nothing
    Set adoCON = Nothing

End Sub


■Dim adoRS As ADODB.Recordset

ADOレコードセットオブジェクト用の変数の宣言です。例では変数名にadoRSという名前にしていますが、ここは好きな名前でかまいません。型にはADODB.Recordsetを指定します。


■Set adoRS = adoCON.Execute(@)

レコードセットの作成です。@の所には華麗な(?)SELECT文を書きましょう。もし、単純にテーブルやクエリーを開きたいだけであれば、@の所はテーブル名やクエリー名を書いてもOKです。

 ※Executeに「テーブル名」を指定した例
'レコードセットの作成(テーブル名を指定)
Set adoRS = adoCON.Execute("住所録テーブル")

Executeメソッドの実行結果はSet文でレコードセットオブジェクト変数(例ではadoRS)へ保存し、レコードセットへの各種の操作は変数adoRSのメソッドやプロパティを使って行います。


■adoRS.Close

レコードセットのクローズです。オープンしたら、必ずクローズしましょう。開けたら閉める!ドアが開けっ放しだと…泥棒が入りますよ(笑)


■Set adoRS = Nothing

レコードセットのクリアを行います。使い終わったレコードセットオブジェクトにはNothingをセットし必ずクリアしておきましょう。
Copyright(C) 1999-2006 結城圭介。 All rights reserved