Chapter5-3 Recordsetオブジェクト

1件1件のレコードを対象に、読み込み・更新・追加等の処理を行なう場合には、「レコードセット(Recordset)」オブジェクトを開きます。レコードセットには、テーブルやクエリの全レコードと、指定されたフィールドが表のような形式の”セット”で格納されています。

レコードセットを開くには、次のような構文があります。

■テーブルを指定する場合
Dim dbs As Database
Dim rst As Recordset

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("tbl書籍情報")


※この場合、テーブルの全レコード・全フィールドがレコードセットに含まれます。


■選択クエリを指定する場合
Dim dbs As Database
Dim rst As Recordset

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("qsel書籍情報")


※この場合、選択クエリで指定されている抽出条件・出力フィールド・並び順などを満たすレコード/フィールドがレコードセットに含まれます。
※あとで特定のフィールドの内容を取り出す際には、レコードセットに含まれないフィールドを指定しないよう注意してください。



■選択クエリのSQL文を指定する場合
Dim dbs As Database
Dim rst As Recordset
Dim strSQL As String

Set dbs = CurrentDb
strSQL = "SELECT ISBN, タイトル, 価格 FROM tbl書籍情報 WHERE 価格 > 3000"
Set rst = dbs.OpenRecordset(strSQL)


※この場合も、選択クエリと同様のレコードやフィールドがレコードセットに含まれます。

※SQL文も文字列データとして指定します。句の区切りのスペースが抜けていないか、文字列や日付の指定形式に間違いがないか(特に変数を組み合わせる場合)、注意してください。
例1:
"WHERE タイトル Like '*入門*'"
"WHERE タイトル Like '*” & strKeyWord & “*'"

→SQL文内の文字列は「’(シングルクォーテーション)」または「””(ダブルクォーテーション2つ)」で囲みます。

例2:
"WHERE 発行日 >= #2009/11/01#"
"WHERE 発行日 >= #” & dtmSearchDate & “#"

→日付の前後は「#(シャープ)」で囲みます
| Index | Prev | Next |

 

Copyright © T'sWare All rights reserved