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
您可以在
中详细了解不同类型的参数以及何时使用哪一种参数
我正在使用下面的 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
您可以在