您好,这是我的目标,我有一个带有开始日期(start_Date)和结束日期(end_Date)字段的 for 以及一个包含交叉表查询作为记录源的报告。我希望能够根据表格上给出的日期对报告中的数据进行排序。我尝试了 3 种不同的方法。
运行宏并使用 where 条件打开报告,在这种情况下,Access 会抱怨并说“[Reports]![AuditPTTETotal]![Date] 不是有效的参考”
通过 VBA 设置我的报告的“where 条件”。另一个参考错误,但这一次,它说我的表单字段无效。
Private Sub ViewReport_Click() Dim strWhere As String If Not IsNull(Me.start_Date) Then strWhere = strWhere & " AND [Reports]![AuditPTETotal]![Date] >=#" & [Forms]! [AuditPTETotals]![start_Date] & "# " End If If Not IsNull(Me.end_Date) Then strWhere = strWhere & " AND [Reports]![AuditPTETotal]![Date] <=#" & [Forms]! [AuditPTETotals]![end_Date] & "# " End If DoCmd.OpenReport "AuditPTETotal", acViewNormal, , strWhere End Sub
最后,将我的表单值传递给查询。这些方法都不适合我,我真的需要完成这项工作。我别无选择。任何帮助,将不胜感激。
询问
PARAMETERS [Forms]![AuditPTETotals]![start_Date] DateTime, [Forms]![AuditPTETotals]! [end_Date] DateTime;
TRANSFORM Sum(ScrapCollection.PTEtotal) AS SumOfPTEtotal
SELECT ScrapCollection.Date, ScrapCollection.regNum
FROM ScrapCollection INNER JOIN (ScrapTireType INNER JOIN ScrapCollectionTireType ON (ScrapTireType.scrapTireTypeID = ScrapCollectionTireType.scrapTireTypeID) AND (ScrapTireType.scrapTireTypeID = ScrapCollectionTireType.scrapTireTypeID)) ON ScrapCollection.scrapCollectionID = ScrapCollectionTireType.scrapCollectionID
WHERE (((ScrapCollection.Date) Between [Forms]![AuditPTETotals]![start_Date] And [Forms]![AuditPTETotals]![end_Date]))
GROUP BY ScrapCollection.Date, ScrapCollection.regNum
PIVOT ScrapTireType.description;