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