- ベストアンサー
ACCESSでデータ絞込み時に条件表示がおかしくなる
- ACCESSの一覧表示フォームで検索条件を設定し、ApplyFilterを使用してデータ絞込みを行う際に、該当データがないと条件の表示が正しく表示されない問題が発生しています。
- 該当データがない場合は検索条件のコンボボックスに値が表示されず、再度検索して該当データがある場合には表示されるようになります。
- 認識はしているものの、データの存在しない場合の処理を改善する方法や回避策があれば教えていただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
状況が分からないので対症療法的ですが If Dcount(Filter条件・・) = 0 Then MsgBox "No Records!", vbOKOnly Me.FilterOn = False End If とか?
その他の回答 (2)
- nicotinism
- ベストアンサー率70% (1019/1452)
もしかして・・ コンボボックスのコントロールソースにフォームのレコードソースの何かを指定してるとか? コンボボックスのプロパティにて、 コントロールソースに何か記述が有れば削除して空欄にします。 値集合タイプへ、テーブル/クエリ 値集合ソースへ、SELECT フィールド名1,フィールド名2 FROM テーブル名など; のSQL文 (あるいは[・・・] ボタン(▼ボタンの右隣)を押して作成) 連結列へ、・・・・・適宜指定してください。 これでコンボボックスは非連結コントロールになりますので フォームのフィルターとは連動しません(常に全てのレコードが出ます) 見当はずれかも?
- O_cyan
- ベストアンサー率59% (745/1260)
Filterに値をセットする前にフィルターの初期化を Me.Filter = "" として行いそれから抽出条件をセットして Me.FilterOn = True でFilterを実行。 >データが存在しない場合に何か別のことをするようにするなど、回避する方法 抽出レコードが無いときの処理は If Me.Recordset.RecordCount = 0 Then などでやっているのでしょうか? レコードが無い場合の処理に Me.Filter = False Me.FilterOn = True とすれば何も表示されません。 同様に Me.FilterOn = False で全レコードが表示されます。
お礼
すみません。 うまく状況が伝わっていないようでした・・ レコードがない場合に条件設定のコンボがおかしくなるんです。 If Me.Recordset.RecordCount = 0 Thenなど何もいれていません。 回答ありがとうございました!
お礼
ありがとうございました!! 状況よくわからないですよね。 すみません・・ でも、この方法で、0件の時は、表示しないように回避させました。