【发布时间】:2015-05-16 13:53:11
【问题描述】:
我在 MS ACCESS 2007 中设置了一个查询 (Qoff2),如下所示:
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
我想要的是对记录集进行查找,并将 [forms]![form].[text10] 与 Qoff2.filenum 进行比较,然后将所有相关的 fnam 列出到 [forms]![form].test 中,但由于某种原因,我无法让它工作。我收到的参数错误太少,预期为 1 个错误。当我在访问中运行查询并打开表单时,它工作得很好。当我在 vba 中运行模块时出现参数太少的错误,它突出显示 Set rs = qdf.OpenRecordset。
【问题讨论】: