【问题标题】:Too Few Parameters with Recordset pulling query from MS Access 2007从 MS Access 2007 中提取查询的 Recordset 参数太少
【发布时间】: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。

【问题讨论】:

    标签: sql ms-access vba


    【解决方案1】:

    需要指定参数:

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

    【讨论】:

    • 效果很好,除了我现在必须发布另一个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    相关资源
    最近更新 更多