2017-07-19 19 views
0

[Supplier]というテーブルの列から描画される[Supp]というコンボボックスを持つフォームがあります。私はサプライヤーフィルタをオプションにしようとしている日付範囲を持つレコード[Text6](開始日)と[Text7](終了日)どのようにクエリ条件を選択するかを選択するパラメータが空白の場合

に関連付けられた日付をフィルタリングしています。同時に

[Supp] Blank/Nullを離れるたびにすべてのSuppliersを選択させることによって、

[Supp]を空白のままにすると、Date Rangeフィルタを超えて、日付にかかわらずすべての使用可能なレコードが選択されるという問題があります。私は "OR"を使用しているのでその可能性が最も高いと思います。

SQL Code

SELECT [Table Material Label].Serial, [Table Material Label].[Date Recieved], [Table Material Label].MaterialDescription, [Table Material Label].MaterialCode, [Table Material Label].Supplier, 

[Table Material Label].[Lot Number], [Table Material Label].Weight, [Table Material Label].Quantity, [Table Material Label].[Purchase Order Number], [Table Material Label].[Received By], [Table Material Label].[Checked in By], [Table Material Label].[Total Weight] 

FROM [Table Material Label] 

WHERE ((([Table Material Label].[Date Recieved])>=[Forms]![Report Generator]![Text6] 
    And ([Table Material Label].[Date Recieved])<=[Forms]![Report Generator]![Text7]) 
    AND (([Table Material Label].Supplier)=IIf([forms]![Report Generator]![Supp].[Value]="*",([Table Material Label].[Supplier])='*',([Table Material Label].[Supplier])=[Forms]![Report Generator]![Supp].[Value]))) 


ORDER BY [Table Material Label].[Date Recieved], [Table Material Label].MaterialDescription, [Table Material Label].MaterialCode, [Table Material Label].Supplier; 

要約すると - 私は、日付範囲の両方によっておよびサプライヤによってフィルタクエリを作成しようとしています。しかし、サプライヤーの基準が空白の場合、サプライヤーをフィルターにかけることは望ましくありません。私は、日付範囲フィルタを壊さずにこれを行うことができません。

ご協力いただければ幸いです。ありがとうございました。

完成品、アンドレのソリューションのおかげで:ここ

SELECT [Table Material Label].Serial, [Table Material Label].[Date Recieved], [Table Material Label].MaterialDescription, [Table Material Label].MaterialCode, [Table Material Label].Supplier, 

[Table Material Label].[Lot Number], [Table Material Label].Weight, [Table Material Label].Quantity, [Table Material Label].[Purchase Order Number], [Table Material Label].[Received By], [Table Material Label].[Checked in By], [Table Material Label].[Total Weight] 

FROM [Table Material Label] 

WHERE (([Table Material Label].[Date Recieved])>=[Forms]![Report Generator]![Text6] 
    And ([Table Material Label].[Date Recieved])<=[Forms]![Report Generator]![Text7]) 
    AND ([Table Material Label].Supplier = [Forms]![Report Generator]![Supp] 
    OR [Forms]![Report Generator]![Supp] IS NULL) 

ORDER BY [Table Material Label].[Date Recieved], [Table Material Label].MaterialDescription, [Table Material Label].MaterialCode, [Table Material Label].Supplier; 

答えて

0

ルック:https://stackoverflow.com/a/38899574/3820271

AND ([Table Material Label].Supplier = [Forms]![Report Generator]![Supp] 
    OR [Forms]![Report Generator]![Supp] IS NULL) 

サプライヤー基準が空白の場合、このパートは常にtrueになります。

+0

10億のアンドレがありがとうございました。その驚くべきコードを体系化することで、エラーを見つけるのに役立ちます。 – Reid

関連する問題