Как открыть набор записей Access, используя значение из другого набора записей - PullRequest
0 голосов
/ 04 марта 2011

Это должно быть очевидно, но я в замешательстве.

Я нахожусь в 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 в редакторе запросов, скопировать и вставить.

Что мне не хватает?

Ответы [ 2 ]

1 голос
/ 04 марта 2011

Измените строку на

set rst2 = db.OpenRecordset("SELECT * FROM TABLE2 WHERE ID = '" & rst1![ID] & "';")
1 голос
/ 04 марта 2011

попробуйте что-то вроде:

sSql = "SELECT * FROM TABLE2 WHERE ID = '" & rst1!ID & "'" 
set rst2 = db.OpenRecordset(sSql)
...