我正在使用下面的 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] 删除。
我来说两句