我正在使用 Access 并尝试在 VBA 中使用带有参数的查询。我有几个需要使用的查询,所以我添加了一个例程来概括该过程:
Public Function Execute_query(query) As Recordset
Dim qdf As QueryDef
Set qdf = CurrentDb.QueryDefs(query)
For Each prm In qdf.Parameters
prm.Value = Eval(prm.Name)
Next prm
If (qdf.Type = 80) Then
qdf.Execute
Else: Set Execute_query = qdf.OpenRecordset
End If
End Function
我仍在对此进行测试,因此可能存在其他问题,但我的直接问题是为什么这Eval(prm.name)
条线无法正常工作。参数是 [R_Yr],我已将其声明为公共变量并分配了一个值 - 我可以在监视窗口中验证它。但我收到错误代码 2482 - Access 找不到名称“R_yr”
当参数值来自表单而不是变量时,相同的代码似乎可以工作——这就是为什么我必须首先设置它——我无法在从 VBA 运行的查询中访问表单控件。