Access 中的参数太少 VBA 但在查询生成器中有效

Too Few Parameters in Access VBA but works in Query builder

我正在使用下面的 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

错误:

Too few parameters. Expected 1. (Runtime 3061)

感谢任何帮助理解为什么这对一个人有效但对另一个人无效

表单和 report-based 参数仅在 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

您可以在

中详细了解不同类型的参数以及何时使用哪一种参数