- ベストアンサー
accessでの2つのコンボックスによるフィルター
- アクセスフォームに2つのコンボボックスを追加し、フィルタリング機能を実装したいです。
- コンボボックスのデータソースをテーブル/クエリとして設定し、選択した値に基づいてフィルタリングを行いたいです。
- しかし、1つ目の選択によって2つ目のコンボボックスが正しく動作せず、フィルタリングがうまく行われません。アドバイスをいただけると幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
現象の確認ができました。 申請履歴T(全データ)のデータのありようによっては、 With Me .Filter = "[ステータス]='" & Me.ステータスリスト & "'" .Filter = "[申請内容]='" & Me.申請リスト & "'" .FilterOn = True End Wit や DoCmd.ApplyFilter WhereCondition:="[ステータス]='" & Me.ステータスリスト & "'" DoCmd.ApplyFilter WhereCondition:="[申請内容]='" & Me.申請リスト & "'" では、AND ではなく、OR 検索になってしまうようです。 したがって、No3のように、 Me.Filter = "[ステータス] = '" & Me.ステータスリスト & "' And " & "[申請内容]='" & Me.申請リスト & "'" Me.FilterOn = True きちんとAND記述をしないといけないですね。 私の勘違いでした、とこちらでは思っているのですが どうでしょうか?
その他の回答 (3)
- piroin654
- ベストアンサー率75% (692/917)
同様に、 Private Sub 検証_Click() Me.Filter = "[ステータス] = '" & Me.ステータスリスト & "' And " & "[申請内容]='" & Me.申請リスト & "'" Me.FilterOn = True End Sub では?
- piroin654
- ベストアンサー率75% (692/917)
同じことだと思うのですが、 Private Sub 検証_Click() With Me .Filter = "[ステータス]='" & Me.ステータスリスト & "'" .Filter = "[申請内容]='" & Me.申請リスト & "'" .FilterOn = True End With End Sub と、してみるとどのようになりますか?
- piroin654
- ベストアンサー率75% (692/917)
>1つを選択後2つ目を選択すると○○○and△△△って具合にならず、一方に引っ張られて >ちゃんと出ません。 やり方はあっている、というか、 'DoCmd.ApplyFilter WhereCondition:="[申請内容]='" & Me.申請リスト & "'" のように、この一行がコメントアウトされているからでは??????
補足
冒頭の’ですが私の打ち間違えとしか言えず、VBAには付いておりません。大変申し訳ござませんが、再度お知恵を拝借できないでしょうか。何卒、宜しくお願いいたします。
お礼
No3のAnd で解決いたしました。何度もお付き合いありがとうございました。なんとお礼を言えばいいかわかりませんが、本当にありがとうございました。思わずファン登録させて頂きました。今後も質問があると思いますが、ご助力宜しくお願い致します。
補足
お返事ありがとうございます。でもやはりステータスが維持されず同じ状態です。申請内容だけが維持されステータスは選んだもの以外になってしまいます。VBA事態をIf文にした方が良いのでしょうか。(私には無理ですが) 色々考えていただいてありがとうございます。もう少し付き合っていただいてもよろしいでしょうか? 何卒、宜しくお願いいたします。