2017-10-24 13 views
0

私はms-accessクエリに問題があります。私は、必要に応じて複数のフィルターを使って迅速にプロジェクトを切り替えることができるレビューパネルを用意したいと思います。 そのため、私はアクセスクエリを作成し、フィルタリングする列に条件を設定してパラメータを設定しました。パラメータは、Review_Formのフィールドから取得されます。特定の数字を入力しても機能しますが、フィルタリングせずにすべてのレコードを受け取るために入力する内容がわかりません。私はいくつかのアプローチを試みましたが、成功しませんでした。私は例えば下記のリンクに示す例は: https://support.office.com/en-us/article/Apply-criteria-to-text-values-202548b6-b065-4387-800b-2456a7099bca 全体的なアイデアは、添付の写真に示されています: enter image description hereアクセスクエリ - フィルタ関連の問題

は、アイデアはどのようにそれを解決するために、あなたが何か提案がある場合は私に知らせてください。 ありがとうございます、 Piotr

解決策はAndreが提供していますが、フィルタが1つのみの場合にのみ提供されます。私の場合は、より多くのフィルタを使用したいと思います。任意の文字列値を(Is Not Null)または(Like)として適用して特定のフィルタのすべてのレコードを取得しようとすると、以前と同じようにエラーが発生します。 言い換えれば、私が直接アクセスクエリの中に入力した場合。 (Is not Null)は動作しますが、ViewProjectフォーム内のフィールドを代わりに数値の文字列にするとエラーになります。 これを克服する方法はありますか?

+0

問題は、オペレータの問題です。ステータスを星 "*"に変更する場合は、 "="演算子の代わりに "Like"演算子を使用する必要があります。 – KacireeSoftware

答えて

1

簡単に解決策は、ステータスフィルタ= 3

が変更されたときにTRUE、常に状態を作ることで、あなたのWHEREそうのようなSQLビューでの条件:次に

WHERE ((Status.id_status = Forms!ViewProject!pstatus1) OR (Forms!ViewProject!pstatus1 = 3)) 

はあなたが翻訳を必要としませんVBA。クエリ内で直接T_project_s1を参照することもでき、サブはまったく必要ありません。

+0

これは私の質問に答えます。私はそれを理解するためにしばらく時間を取る必要があります。なぜこの状態が常に真実なのか? – Peter

+0

しかし、フィルタが1つしかない場合は、私が説明したように動作します。複数のフィルタで動作する方法はありますか? – Peter

+0

複数のフィルタの場合は、ANDで条件を追加します。 http://allenbrowne.com/ser-62.html - > "代わりにクエリを使う"を参照してください。または、VBA(同じリンク)を使用してフィルタを構築します。 – Andre