将查询设置为记录集

时间:2015-03-22 10:28:15

标签: ms-access access-vba

我正在尝试设置一个不断给我错误信息的记录集 - "运行时错误3061参数太少。预计1"。 查询检查组合框中的值是什么,然后返回两个字段。这是我试过的VBA代码 -

Dim db As Database
Dim rst As Recordset2
Dim field As field

Dim n As Integer
Dim Qno As Integer
Dim sqlstr As String

Set db = DBEngine(0)(0)
Set rst = db.OpenRecordset("Get_Questions", dbOpenDynaset)

这是Get_Questions查询背后的SQL -

SELECT Question_Lt.Qnumber, Question_Lt.Questions, Question_Lt.Freq
FROM Question_Lt
WHERE (((Question_Lt.ClientCd)=[Forms]![TestForm]![CmClient]));

2 个答案:

答案 0 :(得分:1)

将您的查询用作QueryDef对象,提供参数值,然后使用其OpenRecordset方法填充您的记录集。

'Set rst = db.OpenRecordset("Get_Questions", dbOpenDynaset)
Dim qdf As DAO.QueryDef
Set qdf = db.QueryDefs("Get_Questions")
qdf.Parameters(0).Value = [Forms]![TestForm]![CmClient]
Set rst = qdf.OpenRecordset(dbOpenDynaset)

答案 1 :(得分:0)

我很少有声誉点来评论你的问题。但究竟什么是SQL语句。在我看来,你的''没有定,但我不知道

我只是猜测:Get_Questions的Sql脚本应该是这样的。我不知道参数“Get_Questions”是一个查询名吗?

sqlStr =
   "SELECT...
    FROM Question_LT
    WHERE Client.Cd = " & [Forms]![TestForm]![CmClient]