0

こんにちは、これが私の目標です。開始日(start_Date)フィールドと終了日(end_Date)フィールドを持つforと、レコードソースとしてクロス集計クエリを持つレポートがあります。フォームに記載されている日付に基づいて、レポートのデータを並べ替えることができるようにしたいと思います。私は3つの異なるアプローチを試しました。

  1. マクロを実行し、where条件でレポートを開くと、Accessは「[Reports]![AuditPTETotal]![Date]は有効な参照ではありません」と文句を言います。

  2. 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 
    
  3. そして最後に、フォームの値をクエリに渡します。これらのアプローチはどれも私にはうまくいきませんでした、そして私は本当にこれを成し遂げる必要があります。私は選択肢がありません。どんな助けでもいただければ幸いです。

クエリ

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;
4

1 に答える 1

1

フォームを使用してクロス集計の結果を制限する場合は、次のパラメータが必要です。

PARAMETERS [Forms]![AForm]![text0] DateTime, [Forms]![AForm]![text2] DateTime;
TRANSFORM Count(Table1.AKey) AS CountOfAKey
SELECT Table1.AText
FROM Table1
WHERE (((Table1.ADate) Between [Forms]![AForm]![text0] And [Forms]![AForm]![text2]))
GROUP BY Table1.AText
PIVOT Table1.ADate;
于 2012-06-06T12:34:15.930 に答える