我试图用"参数"打开一个选择查询时感到很沮丧。组。我完全怀疑我正在构建我的查询。我想要一个带有未绑定日期文本框的表单,供用户输入日期(我有这个)。然后我希望将该日期传递给预先存储的参数选择查询并打开查询。如果我手动打开查询,它会按预期要求[比较日期]。当我使用表单时,单击按钮打开查询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
有人可以告诉我如何解决这个问题,或者采用不同的方法来解决这个问题,以便查询可以手动并通过表单进行操作吗?
答案 0 :(得分:2)
您无法使用DAO Execute
方法进行SELECT
查询。这就是Access抱怨&#34;无法执行选择查询的原因。&#34;
参数问题与此无关。
确定您要对参数查询返回的结果集执行的操作。如果要将其加载到记录集中,可以使用QueryDef
的{{1}}方法。