如何在Access VBA中引用已保存的查询?

时间:2018-06-01 04:04:59

标签: vba ms-access access-vba

我正在尝试检查已保存查询中的记录,以确定VBA是否应禁用某些表单控件:

Dim SavedQry
SavedQry = Queries!qryCurrentItems 'or Queries("qryCurrentItems")

无法编译,因为它要我定义变量“Queries。”

您可以使用Forms!FormName!ControlName执行此类操作来引用控件中的数据,为什么不喜欢这样?

为清楚起见;有问题的查询具有由表单填充的“参数”。代码如下。

SELECT tblColour.Colour AS Colour
FROM tblColour 
INNER JOIN (tblGenCol 
INNER JOIN tblAutCol ON tblAutCol.Colour = tblGenCol.Colour) 
ON tblGenCol.Colour = tblColour.ID
WHERE tblGenCol.Genre = Forms!frmColourChoice!cmbGenre
AND tblAutCol.Author = Forms!frmColourChoice!cmbAuthor;

参数是Forms!frmColourChoice!cmbGenre和Forms!frmColourChoice!cmbAuthor。

1 个答案:

答案 0 :(得分:0)

使用一两件物品:

Dim SavedQry As DAO.QueryDef
Dim rs As DAO.Recordset

Set SavedQry = CurrentDb.QueryDefs("qryCurrentItems")
SavedQry.Parameter("ParameterName1").Value = SomeValue
SavedQry.Parameter("ParameterName2").Value = AnotherValue
Set rs = SavedQry.OpenRecordset()
' Investigate records.