Ms access MS访问集参数查询

Ms access MS访问集参数查询,ms-access,Ms Access,我正在尝试运行一个Access查询,该查询按站点筛选RawData表 当我正常运行查询时,它运行良好,我已按如下方式设置查询 我在数据库中有一个子表,其中包含站点的名称,我正在使用VBA运行该表中的站点列表,并执行某些操作,包括过滤原始数据表(通过查询)和将原始数据复制到excel工作表 我正试图将我的Access查询合并到Access VBA中,它就落在这里了 DoCmd.SetParameter "[Enter the Site:]", rs!DimensionSite DoCmd.Ope

我正在尝试运行一个Access查询,该查询按站点筛选RawData表

当我正常运行查询时,它运行良好,我已按如下方式设置查询

我在数据库中有一个子表,其中包含站点的名称,我正在使用VBA运行该表中的站点列表,并执行某些操作,包括过滤原始数据表(通过查询)和将原始数据复制到excel工作表

我正试图将我的Access查询合并到Access VBA中,它就落在这里了

DoCmd.SetParameter "[Enter the Site:]", rs!DimensionSite
DoCmd.OpenQuery "Raw Data Filtered by Site"
rs!DimensionSite是站点表中“DimensionSite”列中的相关字段

我在第一行收到一个错误,它说“您输入的表达式包含无效语法”

我不确定在setparameter文本中是否应该引用(1)“DimensionSite”(即表中的列名)或(2)“输入站点:”,即我在查询中使用的文本框条件

如果有人能帮我解决问题,我将不胜感激

谢谢


J

在遇到同样的问题后。我发现微软提供的例子让你误入歧途

当您使用字符串参数时,您需要用“环绕”

例如,请使用:

DoCmd.SetParameter "[Enter the Site:]", """" & rs!DimensionSite & """"

您的代码看起来很好。如果您使用“简单”参数名称,例如“[Site]”而不是“[Enter the Site:”?(请注意,您需要在查询和代码中都对其进行更改。)请尝试用现有值替换
rs!DimensionSite
。如果这样做(应该这样做),记录不保存任何现有值(如果有)。Hi Heinzi.DoCmd.SetParameter“[Site]”,rs!DimensionSite,并在查询中更改为[Site],但仍然获得相同的消息Hi Gustav,我尝试用一个站点名称替换其中一个rs!DimensionSite,但仍然获得相同的错误消息。我尝试使用此DoCmd.SetParameter“[Site]”Site1”,但无法正常工作我没有使用
DoCmd.SetParameter
,但您可能必须在
Query design->Parameters
中明确指定参数名称和数据类型。