0

指定された基準に従って結果を返す検索ページがあり、各基準が OR の場合は問題なく動作しますが、AND を使用すると結果が返されないか、結果が返されません。たとえば、検索条件は次のようになります...

A. Author = ""
B. Subject = ""
C. Keyword = ""
D. Dated = ""

コード:

SELECT * 
FROM Table 
WHERE Author = '" & strAuthor & "' 
  AND Subject = '" & strSubject & "' 
  AND Keyword = '" & strKeyword & "' 
  AND Dated = '" & strDated & "' "

ここでは 4 つのパラメーターのみを使用しましたが、実際にはさらに多くのパラメーターがあります。しかし、例は問題を説明する必要があります...これを機能させるには、「if A and B」または「B、C and D」など、より具体的にする必要がありますが、空白または NULL のパラメーターを使用すると機能しません。

これで、次のような条件ステートメントを使用して基準を書き込むことができます...

SELECT * 
FROM Table 
WHERE
    if strAuthor <> "" then 
        Author = '" & strAuthor & "'
    end if
    if strSubject <> "" then
        AND Subject = '" & strSubject & "'
    end if

など、このような文字列の書き込みが機能しないことを除いてSELECT、選択文字列に追加のコードを含めることができないため、エラーが発生するだけです (これが私の発見です)。

オプションがほんの少ししかない場合は、組み合わせごとに個別の選択文字列を書くことができますが、3,628,800 以上の組み合わせを必要とする 10 以上の異なる基準があります!

これに対する解決策はありますか?

4

2 に答える 2

0

ここでは、2 つのオプションがあります。

a)ストアドプロシージャを作成し、すべての列にデフォルト値を設定します。ユーザーが値を渡さない場合、クエリはその列のデフォルト値で実行されます。

b) すべての列に対して常に値を選択するルールをフロントエンドに課します。

于 2013-08-20T02:44:53.937 に答える