MS Access vba,打开带参数的选择查询,运行时3065无法执行选择查询

时间:2015-05-14 14:46:49

标签: ms-access access-vba ms-access-2010

我试图用"参数"打开一个选择查询时感到很沮丧。组。我完全怀疑我正在构建我的查询。我想要一个带有未绑定日期文本框的表单,供用户输入日期(我有这个)。然后我希望将该日期传递给预先存储的参数选择查询并打开查询。如果我手动打开查询,它会按预期要求[比较日期]。当我使用表单时,单击按钮打开查询qdf.execute失败。

虚拟查询演示

PARAMETERS [Compare Date] DateTime;
SELECT [Compare Date] AS Compare_date;

我知道"参数"通常在WHERE子句中,但是,如果手动运行,此查询也会起作用。

然后下面是调用代码

Private Sub btnRunReport_Click()

    Const pstr_CURRENCY_QRY As String = "Query12"
    Const pstr_DATA_PARAM As String = "Compare Date"
    Dim db As DAO.Database: Set db = CurrentDb()
    Dim qdf As DAO.QueryDef
    Set qdf = db.QueryDefs(pstr_CURRENCY_QRY)
    With qdf
        .Parameters(pstr_DATA_PARAM).Value = CDate(Me.txtCompareDate.Value)
        .Execute dbFailOnError  ' <<<< Fails here
        .Close
    End With    ' qdf
    Set qdf = Nothing
    Set db = Nothing
End Sub

有人可以告诉我如何解决这个问题,或者采用不同的方法来解决这个问题,以便查询可以手动并通过表单进行操作吗?

1 个答案:

答案 0 :(得分:2)

您无法使用DAO Execute方法进行SELECT查询。这就是Access抱怨&#34;无法执行选择查询的原因。&#34;

参数问题与此无关。

确定您要对参数查询返回的结果集执行的操作。如果要将其加载到记录集中,可以使用QueryDef的{​​{1}}方法。