即効テクニック |
●概要● 構文 expression. CreateQueryDef(name, sqltext) 設定項目 内容 expression Databaseオブジェクト[省略不可] name クエリの名前を文字列で指定[省略可能] sqltext SQLステートメントを指定[省略可能] DatabaseオブジェクトのCreateQueryDefメソッドを使用して新しくQueryDefオブジェクトを作成します。引数●サンプル●に長さ0の文字列を指定すると、名前をつけずに一般的な名前のQueryDefオブジェクトを作成することができます。作成したQueryDefオブジェクトのOpenRecordsetメソッドを呼び出してRecordsetオブジェクトを作成します。 サンプルでは、SQLステートメントで「社員テーブル」のすべてのフィールドを選択します。すべてのフィールドを選択する場合は、1つ1つフィールドを指定するかわりに「*」(アスタリスク)を使用することができます。
'クエリを作成して選択クエリを実行する Public Sub Sample() Dim myDB As Database Dim myRS As DAO.Recordset Dim myQuery As QueryDef Dim mySQL As String 'SQLステートメントを定義する mySQL = "SELECT * FROM 社員テーブル;" 'カレントデータベースを変数に代入する Set myDB = CurrentDb 'クエリを作成する Set myQuery = myDB.CreateQueryDef("", mySQL) 'クエリを実行してレコードセットを開く Set myRS = myQuery.OpenRecordset(dbOpenDynaset) 'レコードセットの内容を表示する Do Until myRS.EOF Debug.Print myRS!社員コード & " " & myRS!部署コード & " " _ & myRS!名前 & " " & myRS!入社年月日 & " " & myRS!職種 myRS.MoveNext Loop 'レコードセットを閉じる myRS.Close End Sub
●補足● 選択結果は[イミディエイト]ウィンドウに表示されます。 Access VBAのSQLステートメントでは、文末の「;」はつけてもつけなくてもかまいません。