VBAでクエリを作成する (DAO)
  Access97での標準データアクセス方法であるDAOを使用した、VBAによるクエ
リ作成方法を説明します。


● 準備 ●

(1) 以下の構成のテーブル[テーブル1]を作成します。
    ----------------------------------------
    フィールド名        データ型
    ID                  長整数型
    ----------------------------------------
    適当なレコードをいくつか作っておくこと。

(2) 新規標準モジュールに以下のプロシージャを記述して下さい。


● サンプル ●

Private Sub MakeQueryDAO()
    Dim Qdf    As DAO.QueryDef
    Dim strSQL As String

    strSQL = "Select * From テーブル1"

    'CreateQueryDefメソッドによるクエリ作成
    Set Qdf = CurrentDb.CreateQueryDef("新規クエリ_DAO1", strSQL)
    CurrentDb.QueryDefs.Refresh

    'Appendメソッドによるクエリ作成
    Set Qdf = New QueryDef
    Qdf.Name = "新規クエリ_DAO2"
    Qdf.SQL = strSQL
    CurrentDb.QueryDefs.Append Qdf
    CurrentDb.QueryDefs.Refresh

    '終了処理
    Set Qdf = Nothing
End Sub


● 動作確認 ●
  上記プロシージャ、MakeQueryDAOを実行して下さい。


● 詳細 ●

  Access(DAO)では、各クエリはQueryDefsコレクションの中のQueryDefオブジェ
クトとして管理されています。

  サンプルでは、DatabaseオブジェクトのCreateQueryDefメソッド、QueryDefs
コレクションのAppendメソッドを使用して新規のクエリを作成しています。ク
エリ作成後にはRefreshメソッドを使い、コレクションの状態を更新しています。

  両者とも同じようにクエリ名、SQL文を使用して新規クエリを作成しますが、
コレクション−オブジェクトというAccessの基本的なオブジェクト構造に忠実な
QueryDefs.Appendメソッドのほうが、若干分かり易いかも知れません。

  作成されるクエリにはまったく違いがありませんので、後は好みの問題です。


● 補足説明 ●

  Access2000の場合、デフォルトではDAOに参照設定されていません。
  Visual Basic Editor(VBE)を開き、メニューの[ツール]−[参照設定]から、
Microsoft DAO 3.6 Object Libraryにチェックを入れて下さい。
  その際にMicrosoft ActiveX Data Object 2.1 Libraryよりも上に、DAOの
チェックを持ってきて下さい。

Access97/2000



戻る


Excel Word Access VBA! モーグ