2

Access2007クエリがあります。基準では、フォームのフィルターが「すべての組織を表示」に設定されている場合、すべてのレコードを選択する必要があります。しかし、私はそれを動作させることができません。以下の基準:

=IIf([Forms]![Reports]![Referrals - Business Filter]="View all organisations","Like '*'")

基準は一般的に機能します。「Like'*'」を「Barclays」などの特定の名前に変更すると、そのビジネスの下にリストされている正しい連絡先が選択されますが、それは私が達成したいことではありません。

私は何が間違っているのですか?

ありがとう。

4

1 に答える 1

3

あなたは何か面白いものを見つけました!評価するクエリを取得しようとしている「Like*」は、リテラル文字列ではなく、論理式(TrueまたはFalseに評価されます)です。

Iifを使用してSQLで異なる比較式を切り替える場合(厳密には、IifはSQLではなくAccess VBAですが、Accessではクエリである程度VBAを使用できます)、リテラル値のみを切り替えることができます。例:1、453.5、「これ」、「顧客名」。

「LIKE*」式に切り替えることは、SQLをその場で作成することを意味します。「今日は(Iif(金曜日、(5-4)、(6/2))のコーヒーを飲んだ」と言っているようなものです。あなたの脳は、文字通りの英語から必要なものへのコンテキストでこの切り替えを処理できます。評価された(そして今日、英語の文字通りの単語「one」に相当する);アクセスもある程度可能ですが、これを評価するほどではありません:

[AColumn] = "Like *"

そしてそれを意味するように解釈する

[AColumn] LIKE "*"

「すべて表示」が選択されているかどうかのチェックを別のテストに分割することです。

WHERE
([Selection on the form]="View all") OR
([AColumn]=[Selection on the form])
于 2012-11-29T09:58:53.313 に答える