2016-12-07 17 views
0

日付範囲(開始日と終了日)を入力できるようにクロスタブを表示してクエリを開くと、このデータのみが来るようになります(dd-mm-yyyy)クエリが実行されたときに戻されます。アクセスクロスタブの日付範囲

現在、次のコードに載っています。

TRANSFORM Count(AlphaData.[Invoice]) AS CountOfInvoice 
SELECT AlphaData.[Reason], Count(AlphaData.[Invoice]) AS [Total Of Invoice] 
FROM AlphaData 
WHERE ((AlphaData.[DateRaised]) Between AlphaData.[DateRaised] And AlphaData.[DateRaised]) 
GROUP BY AlphaData.[Reason] 
PIVOT Format([DateRaised],"Short Date"); 

しかし、私の人生のために回避することはできません「MS AccessのDBエンジン 『Alphadata [DateRaised:]』認識しない有効なフィールド名または式として」問題を。

クエリの「WHERE」部分は他のクエリでは機能しますが、クロス集計に適用するとポットに移動します。

提案がありますか?

答えて

1

:あなただけの選択クエリのためにパラメータを入力することができますよう、クロスタブで起こりますちょっと混じっているようです。どのように:

PARAMETERS 
    [From Date:] DateTime, 
    [To Date:] DateTime; 
TRANSFORM 
    Count(*) AS CountOfInvoice 
SELECT 
    AlphaData.[Reason], 
    Sum(AlphaData.[Invoice]) AS [Total Of Invoice] 
FROM 
    AlphaData 
WHERE 
    AlphaData.[DateRaised] Between [From Date:] And [To Date:] 
GROUP BY 
    AlphaData.[Reason] 
PIVOT 
    Format([DateRaised],"Short Date"); 
+0

これまでの私の男は、あなたは生きた伝説です。これは完全に機能しました。また、何かを学んだ、huzzah! – Nik

1

クエリにパラメータを追加する必要があります。

PARAMETERS [Start Date] DateTime, [End Date] DateTime; 
TRANSFORM Count(AlphaData.Invoice) AS CountOfInvoice 
SELECT AlphaData.Reason, Count(AlphaData.Invoice) AS [Total Of Invoice] 
FROM AlphaData 
WHERE (((AlphaData.DateRaised) Between [Start Date] And [End Date])) 
GROUP BY AlphaData.Reason 
PIVOT Format([DateRaised],"Short Date"); 

注:パラメータは、最初の行として追加し、その後、Between文で使用します)。

あなたはパラメータオプションを探す必要がグラフィカルインターフェイス使用している場合:
enter image description here

と、ダイアログボックスにパラメータを入力します。
enter image description here

を私はこれを実現していませんでした

SELECT Invoice, Reason, DateRaised 
FROM AlphaData 
WHERE DateRaised=[Start Date]