使用查询 Access2007 将参数传递给记录源
pass parameters to record source with query Access2007
我对访问还比较陌生,我的任务是改进应用程序的导航。
我有一个用于打开报告的表格。
报道记录来源如下,
SELECT
Projects.Project_Number,
Projects.Customer,
Projects.End_User,
Projects.Engineering_Company,
[Merged Ship and Delivery Dates].Sched_Next_Delivery_Date,
[Merged Ship and Delivery Dates].Sched_Next_Ship_Date,
Projects.QC_Pack_Req,
Projects.Target_QC_Pack_Date,
Projects.Invoice_QC_Pack
FROM
Projects LEFT JOIN [Merged Ship and Delivery Dates]
ON Projects.Project_Number = [Merged Ship and Delivery Dates].Project_Number
WHERE
(((Projects.Project_Number = [Project Number] )))
ORDER BY Projects.Project_Number;
我试图让报告在每次都没有提示的情况下打开。在某些情况下,我需要刷新报表或从其他表单打开它。
我试过使用
DoCmd.OpenReport "Project Control Sheet", _
acViewReport, , _
"[Project_Number]=" & Me.ProjectNumber, , _
"[Project_Number]=" & Me.ProjectNumber
仍然无法将参数传递给记录源。反正我有传参给recordsource(query)吗?
我试过使用
Forms![formName]ProjectNumber
在 where
语句中,但这仅适用于单个表单,我有其他表单可以打开此报告。
刷新表单的目的是让用户在更新报表后可以查看对报表所做的更改。
如果您从报表的记录源查询中删除 WHERE
子句,您稍后可以使用 WhereCondition 选项过滤 returns DoCmd.OpenReport
方法。
Dim strWhereCondition As String
strWhereCondition = "[Project_Number]=" & Me.ProjectNumber.Value
Debug.Print strWhereCondition ' <- view this in Immediate window; Ctrl+g will take you there
'DoCmd.OpenReport "Project Control Sheet", acViewReport, , strWhereCondition
DoCmd.OpenReport ReportName:="Project Control Sheet", _
View:=acViewReport, WhereCondition:=strWhereCondition
如果您想要不同的方法,可以使用 TempVar,因为您的 Access 版本是 2007。
TempVars.Add "ProjectNumber", Me.ProjectNumber.Value
并更改记录源查询以使用 TempVar ...
WHERE Projects.Project_Number = [TempVars]![ProjectNumber]
我对访问还比较陌生,我的任务是改进应用程序的导航。
我有一个用于打开报告的表格。 报道记录来源如下,
SELECT
Projects.Project_Number,
Projects.Customer,
Projects.End_User,
Projects.Engineering_Company,
[Merged Ship and Delivery Dates].Sched_Next_Delivery_Date,
[Merged Ship and Delivery Dates].Sched_Next_Ship_Date,
Projects.QC_Pack_Req,
Projects.Target_QC_Pack_Date,
Projects.Invoice_QC_Pack
FROM
Projects LEFT JOIN [Merged Ship and Delivery Dates]
ON Projects.Project_Number = [Merged Ship and Delivery Dates].Project_Number
WHERE
(((Projects.Project_Number = [Project Number] )))
ORDER BY Projects.Project_Number;
我试图让报告在每次都没有提示的情况下打开。在某些情况下,我需要刷新报表或从其他表单打开它。 我试过使用
DoCmd.OpenReport "Project Control Sheet", _
acViewReport, , _
"[Project_Number]=" & Me.ProjectNumber, , _
"[Project_Number]=" & Me.ProjectNumber
仍然无法将参数传递给记录源。反正我有传参给recordsource(query)吗?
我试过使用
Forms![formName]ProjectNumber
在 where
语句中,但这仅适用于单个表单,我有其他表单可以打开此报告。
刷新表单的目的是让用户在更新报表后可以查看对报表所做的更改。
如果您从报表的记录源查询中删除 WHERE
子句,您稍后可以使用 WhereCondition 选项过滤 returns DoCmd.OpenReport
方法。
Dim strWhereCondition As String
strWhereCondition = "[Project_Number]=" & Me.ProjectNumber.Value
Debug.Print strWhereCondition ' <- view this in Immediate window; Ctrl+g will take you there
'DoCmd.OpenReport "Project Control Sheet", acViewReport, , strWhereCondition
DoCmd.OpenReport ReportName:="Project Control Sheet", _
View:=acViewReport, WhereCondition:=strWhereCondition
如果您想要不同的方法,可以使用 TempVar,因为您的 Access 版本是 2007。
TempVars.Add "ProjectNumber", Me.ProjectNumber.Value
并更改记录源查询以使用 TempVar ...
WHERE Projects.Project_Number = [TempVars]![ProjectNumber]