2013-06-21 3 views
1

Я хочу передать один параметр сохраненного запроса в MS Access 2010, а затем и получить результаты запроса: его мой сохраненный запрос:Преобразование данных Ошибка 3421 по методу OpenRecordset из DAO QueryDef

SELECT Count(*) 
FROM tb_KonzeptDaten 
WHERE (Konzept=[fzg_ID] and (DCMFile is null or (DCMFile=''))); 

и вот мой VBA код для вызова этого запроса:

Dim db As DAO.Database 
Dim qry As DAO.QueryDef 
Set qry = db.QueryDefs("Test_qr_emptyDCM") 
qry.Parameters("fzg_ID").Value = ID 
Set rs = qry.OpenRecordset("Test_qr_emptyDCM") 

также тип ID в VBA код Long и поле Konzept является База данных Длинное целое Почему я получаю эту ошибку и как ее решить?

ответ

3

Ваша проблема с оператором qry.OpenRecordset. Первый параметр для QueryDef.OpenRecordset равен [Type] (например, dbOpenSnapshot). Вам не нужно указывать имя запроса, поскольку вы уже указали это, когда создали объект QueryDef.

Попробуйте использовать только

Set rs = qry.OpenRecordset