Access VBA 中的参数太少,但适用于查询生成器

dmorgan20

我正在使用下面的 SQL,如果我从查询构建器运行它,它可以正常工作,但是一旦我将它放入 VBA,它就会抛出一个错误:

代码:

With CurrentDb.CreateQueryDef("", "SELECT [_tbl_Structure].[User Name], tbl_Genesys_Daily.Field32, [_tbl_Structure].[Supervisor Emp Num], [_tbl_Structure].Supervisor FROM _tbl_Structure RIGHT JOIN tbl_Genesys_Daily ON [_tbl_Structure].[User ID] = tbl_Genesys_Daily.Field5 WHERE ((([_tbl_Structure].Supervisor)=?));")
            .Parameters(0) = [Forms]![frm_Manager_Stats_NEW]![Text279]  
            Set lvxObj = AvailabilityCap.Object
                Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
        End With

错误:

参数太少。预期 1.(运行时 3061)

任何帮助理解为什么这对一个人有效而不对另一个人有效的任何帮助表示赞赏

埃里克

基于表单和报告的参数仅在 GUI 上下文中可用(使用 GUI、表单、报告、宏和 运行查询DoCmd.RunSQL)。您可能正在通过 执行此操作CurrentDb,并且需要改用 querydef。

With CurrentDb.CreateQueryDef("", "SELECT [_tbl_Structure].[User Name], tbl_Genesys_Daily.Field32, [_tbl_Structure].[Supervisor Emp Num], [_tbl_Structure].Supervisor FROM _tbl_Structure RIGHT JOIN tbl_Genesys_Daily ON [_tbl_Structure].[User ID] = tbl_Genesys_Daily.Field5 WHERE ((([_tbl_Structure].Supervisor)=?));")
    .Parameters(0) = [Forms]![frm_Manager_Stats_NEW]![Text279]
    Set rs = .OpenRecordset
End With

您可以在此答案中了解有关不同类型参数以及何时使用哪种参数的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章