これは明らかなはずですが、私は困惑しています。
私は Access 2007 を使用しており、レコードをループしています。最初のレコードセットで 2 番目のレコードセットをフィルター処理したいと考えています。
コードは次のとおりです。
Dim db as Database
Dim rst1 as DAO.Recordset, rst2 as DAO.Recordset
Set rst1 = db.OpenRecordset("TABLE1", dbOpenDynaset)
rst1.MoveFirst
Do Until rst1.EOF
rst1.Edit
set rst2 = db.OpenRecordset("SELECT * FROM TABLE2 WHERE ID = 'rst1![ID]';")
....
これは、ID でフィルター処理されたレコードセットを開きません。ただし、次のコードはエラーなしで実行され (ID = 0001)、適切にフィルター処理されたレコードセットが取得されます。
set rst2 = db.OpenRecordset("SELECT * FROM TABLE2 WHERE ID = '0001';")
rst1![ID] = 0001 であることを確認するためにテストしました。変数に 0001 を配置し、変数をステートメントに配置しましたが、運もありませんでした。rst("ID") 構文を使用するとすぐにエラーが発生することに気付きました。また、クエリ エディターで SQL を作成し、コピーして貼り付けてみました。
私は何が欠けていますか?