0

さて、これに数時間を費やし、多数のオンラインチュートリアルに従っても、まだうまくいきません..

基本的に、オプションを表示する ComboBox があり<ALL>ますが、レポートについては、実際には何も返されません。現時点では単に美学のためにそこにあるだけです。データを返すようにするにはどうすればよいですか? 記入する必要がある 3 つのコンボ ボックスがあります。1 つは治療タイプ、もう 1 つは治療日 (どちらも頻繁に (ALL) を使用します)、および常に特定の月である生年月日です。

治療タイプ ComboBox のクエリは次のとおりです。

Select "(All Records)" 
FROM Treatment
UNION Select Treatment.Treatment
From Treatment;

治療日 ComboBox のクエリは次のとおりです。

Select 0, "(All Records)"  
FROM Events 
UNION 
Select  Events.DatefieldID, Events.Datefields
From Events;
4

2 に答える 2

1

<All>SQLによって理解される特別な値ではありません...

他のクエリで...をチェックインしていてwhere treatmentType = [Value From Combo Box]、コンボボックスの値が " <All>" ..の場合、その条件に一致する行はなく、何も返されません。

代わりに、値を異なる方法で処理するようにロジックを調整する必要があります<All>...

where treatmentType = [Value From Combo Box] OR [Value From Combo Box] = "<All>"

于 2013-01-22T17:07:58.187 に答える
0

%Michaels ソリューションの代わりに、 ( *Access にある) SQL ワイルドカードを使用してすべてのレコードを一致させることができます。コンボボックスの行ソース クエリ:

Select "*" 
FROM Treatment
UNION Select Treatment.Treatment
From Treatment;

結果クエリのLike [Forms]![FormName]![ComboboxName]フィールドの条件として。Treatment空のフィールドがまだ一致していないことに気付くでしょう。これは、代わりにフィールドをフィルター処理することでアーカイブできますNz([Treatment],0)(Access0は、一致しない*ではなく、一致する を返しNULLます)。

これにより、多くのジョイントを含む結果クエリの SQL コードがよりスリムに保たれました。

于 2016-03-28T21:04:53.110 に答える