Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在ms access中的VBA中使用query.execute语句_Vba_Ms Access - Fatal编程技术网

无法在ms access中的VBA中使用query.execute语句

无法在ms access中的VBA中使用query.execute语句,vba,ms-access,Vba,Ms Access,我有一个要从vba运行的已保存查询。该查询称为“211_AppendToBackdated_Tracer” 我可以使用DoCmd.OpenQuery执行它,这是可行的,但其他两种方法都没有达到预期效果 我收到一个SQL错误,因此它正在尝试运行查询。错误是“参数太少。应为1。” 我宁愿使用execute方法,因为这不需要我关闭系统警告(我想知道查询是否失败,而不是添加多少记录等) 这是因为您的查询是select查询 这是因为查询不是操作查询(更新、追加或删除) 要使用参数执行,请执行以下操作: S

我有一个要从vba运行的已保存查询。该查询称为“211_AppendToBackdated_Tracer”

我可以使用DoCmd.OpenQuery执行它,这是可行的,但其他两种方法都没有达到预期效果

我收到一个SQL错误,因此它正在尝试运行查询。错误是“参数太少。应为1。”

我宁愿使用execute方法,因为这不需要我关闭系统警告(我想知道查询是否失败,而不是添加多少记录等)

这是因为您的查询是select查询

这是因为查询不是操作查询(更新、追加或删除)

要使用参数执行,请执行以下操作:

Set qdy = CurrentDb.QueryDefs("211_AppendToBackdated_Tracer")
qdy.Parameter(0).Value = somevalue
qdy.Execute dbFailOnError

您可以显示SQL吗?当您打开查询时,查询是否以交互方式请求参数?SQL太长,无法放入此处的框中。SQL包含IIf(左([FUND_ID],3)=“FIP”,“3442”,“3433”),因为我尝试用替换所有的“with”,但没有起作用。当使用docmd openqueryAdd SQL运行查询时,查询不需要任何参数来问题文本。可能您有
表单![formname]![fieldname]
在SQL文本中。不允许执行
Execute
可能的问题是每个注释的交互参数。查询的名称包括append。问题是solver-这是因为查询包含对表单的引用(表单![formname]![fieldname])。无法在执行中使用此选项。查询不是选择查询-这将返回其他错误。您可以在操作查询中使用参数。请参阅编辑的答案。
DoCmd.OpenQuery "211_AppendToBackdated_Tracer"   'This line works
CurrentDb.Execute "211_AppendToBackdated_Tracer" 'This line and next fail
CurrentDb.QueryDefs("211_AppendToBackdated_Tracer").Execute dbFailOnError
Set qdy = CurrentDb.QueryDefs("211_AppendToBackdated_Tracer")
qdy.Parameter(0).Value = somevalue
qdy.Execute dbFailOnError