2015-03-13 9 views
0

У меня есть запрос (Qoff2) установлен в MS Access 2007, который выглядит следующим образом:Слишком мало параметров с Recordset потянув запрос из MS Access 2007

SELECT off.FNAM, inc.RECEIVED_DT, 
inc.FILENUM 
FROM (INC LEFT JOIN AIO ON INC.INCNUM = AIO.INCNUM) LEFT JOIN OFF ON AIO.OFFNUM = off.OFFNUM 
WHERE ((inc.ID)=[forms]![form].[text10])); 

И у меня есть модуль, который имеет этот код, чтобы захватить запрос из MS Access.

Public Sub OpenRecordset() 

Dim qdf As QueryDef 
Set qdf = CurrentDb.QueryDefs("QOff2") 


Dim db As Database 
Dim rs As Recordset 
Dim StrBusinesses As String 

Set rs = qdf.OpenRecordset 
If rs.EOF And rs.BOF Then 
MsgBox ("No businesses exist for this Customer") 
Exit Sub 
Else 
rs.MoveFirst 
End If 
StrBusinesses = "" 
Do While Not rs.EOF 
StrBusinesses = StrBusinesses & rs!Fnam & ", " 
rs.MoveNext 
Loop 

rs.Close 
StrBusinesses = Left(StrBusinesses, Len(StrBusinesses) - 2) 
Forms!Form.Test = StrBusinesses 
Set rs = Nothing 

End Sub 

То, что я хочу для записей, чтобы сделать поиск и сравнение [формы]! [Форма]. [Text10] для Qoff2.filenum, затем список всех связанных fnam годов в [формы]! [Форма ] .test, но по какой-то причине я не могу заставить его работать. Я получаю слишком мало ошибок параметра, ожидаемых 1 ошибка. Он отлично работает, когда я запускаю запрос внутри доступа и открываю форму. Я получаю ошибку слишком мало параметров при запуске модуля в vba, и он выделяет Set rs = qdf.OpenRecordset.

ответ

0

Вы должны указать параметр:

Set qdf = CurrentDb.QueryDefs("QOff2") 
qdf.Parameters(0).Value = [forms]![form]![text10] 
+0

, который прекрасно работает, за исключением того, у меня есть еще один вопрос, который я должен буду размещать прямо сейчас. – epv

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