Это должно быть очевидно, но я в замешательстве.
Я нахожусь в Access 2007, и я перебираю записи.Я хочу отфильтровать второй набор записей на первом.
Код выглядит следующим образом:
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 = 0001), и я получаю соответствующим образом отфильтрованный набор записей.
set rst2 = db.OpenRecordset("SELECT * FROM TABLE2 WHERE ID = '0001';")
Я проверил, чтобы убедиться, что rst1! [ID] = 0001. Я поместил 0001в переменной и поместил переменную в операторе, также без удачи.Я заметил, что использование синтаксиса rst ("ID") приводит к немедленной ошибке.Я также попытался создать SQL в редакторе запросов, скопировать и вставить.
Что мне не хватает?