2013-02-25 5 views
0

У меня есть код VBA, который генерирует HTML-отчет на основе содержимого запроса. Дата запроса определяется по содержимому поля, используя следующие критерии.Слишком мало Paramters. Ожидаемый 1

Forms![frmImport]![Flash] 

Когда у меня он установлен таким образом, он дает мне ошибку слишком мало параметров. Если я задал критерии, чтобы сказать, 2/20/2013, он работает нормально. Я предполагаю, что это имеет какое-то отношение к тому, как VBA интерпретирует критерии запроса.

Ниже приведена часть моего кода, что VBA, похоже, не нравится.

Dim db As DAO.Database 
Dim QUERY As DAO.Recordset 

Set QUERY = db.OpenRecordset("qryFlash") 

Я не уверен, если есть что-то еще я должен добавить к строке Set для того, чтобы VBA, чтобы играть хорошо с этим запросом.

+1

показать полный SQL-запрос или, по крайней мере, полное условие WHERE - у вас есть некоторая ошибка при обращении к текстовому полю формы внутри вашего запроса (возможно, имя «flash» не является именем текстового поля , или форма закрывается при запуске запроса или?) –

+0

WHERE (((qryMidDay1.Profile) Как «* ABCD») AND ((tblLibrary.Date) = [Forms]! [frmImport]! [Flash])); Имя текстового поля является правильным, и я открывал форму каждый раз, когда я ее запускал. – user1706975

+0

Пока форма открыта, перейдите в редактор VBA, откройте ближайшее окно (если оно не открыто) и введите:? [Формы]! [FrmImport]! [Flash] Убедитесь, что он похож на дату. Если это так, убедитесь, что tblLibrary.Date на самом деле тип datetime. –

ответ

1

Попробуйте

Dim qdf As DAO.QueryDef 
Dim prm As DAO.Parameter 
Dim rs As DAO.Recordset 

Set qdf = CurrentDb.QueryDefs("qryFlash") 
For Each prm In qdf.Parameters 
    prm.Value = Eval(prm.Name) 
Next prm 
Set rs = qdf.OpenRecordset(dbOpenDynaset) 
+0

Это не работает. Я использую несколько команд .RecordCounts и .MoveFirst в коде для правильной сборки отчета, и они, похоже, не очень хорошо работают с этой настройкой. – user1706975

+1

Вы не упомянули, в чем проблема. Пожалуйста, предоставьте как можно больше информации о том, что конкретно не работает так, как вы хотите. Обратите внимание, что вы всегда можете просто построить строку SQL вместо того, чтобы открывать набор записей из хранимого запроса, и в этом случае вы не будете иметь проблему с параметром. Также, если результирующий набор несколько невелик, и если вам не нужно его обновлять, лучше dbOpenSnapshot. –

+0

Это на самом деле то, что я закончил делать. Спасибо за помощь! – user1706975

0

Законченное просто строит строку SQL вместо запроса. Решила мою проблему.

Смежные вопросы