- ベストアンサー
accessフォーム トルグ yes/no表示切替
- accessフォームにてトルグボタンでyes/noの表示を切り替える
- 単票フォームにyes/no型のチェックボックスがあります。トルグボタンを押すとチェックしたものだけが表示され、ボタンを解除(押さなければ)すると全件表示されるようにしたいです。
- また、この単票フォームを開けた時は、常にボタンが解除されて全件表示の状態にしたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> ボタンを解除(押さなければ)すると全件表示されるようにしたいです。 FilterOnプロパティを「False」にすれば、フィルタを解除(=全件を表示)できます。 ですので、 Me.FilterOn = True を、 Me.FilterOn = トグル38 にすれば、ご希望の動作になるかと思います。 (右辺は、m3_makiさんご提示のように「Me.トグル38.Value」としてもOk) 但し、フィルタ解除時にはFilterプロパティへの代入は不要なので、それを含めて改修 すると、以下のようになります: Private Sub トグル38_Click() Dim strWhere As String If トグル38 =True Then strWhere = "([T2伝票仮] = True)" Me.Filter = strWhere Me.FilterOn = True Else Me.FilterOn = False End If End Sub なお、 > この単票フォームを開けた時は、常にボタンが解除されて全件表示の状態にしたい とのことですが、ご使用のAccessは2007以降でしょうか。 そうであれば、当該フォームをデザインビューで開き、何もないところをダブルクリックする などしてフォームのプロパティシートを表示し、『データ』タブに『読み込み時にフィルタを 適用』の項目がありますので、「はい」になっていないか確認してみてください。 (これを「いいえ」にすれば、開いたときにはフィルタは適用されなくなるはずです) Access2003以前だった場合や、上記のプロパティの値が「いいえ」だった場合は、 開くだけではフィルタは適用されないはずなので、開く時(Open)イベントや読み込み時 (Load)イベント等で「Me.FilterOn=True」の処理をしていないか確認してみてください。 (Openイベントなどで、「トグル38_Click」サブプロシージャを呼び出している等のパターン も含みます: この場合は、呼び出す前に「トグル38 = False」の代入をしておくか、『既定値』プロパティ を「いいえ」にしておけば、サブプロシージャの呼出はそのままにしていても、全件表示が 可能になります) ・・・長文、失礼致しました(汗)
その他の回答 (1)
- m3_maki
- ベストアンサー率64% (296/460)
strWhere = "[T2伝票仮] = " & Me.トグル38.Value かな?
お礼
ご回答をはやく頂き、ありがとうございます。
お礼
わかりやすい、ご回答いただきありがとうございます。 私の考え通り動き、これからの業務に役立ちそうです。 バージョンを記していなかった点をご指摘いただき、 ついつい忘れていたことに気が付きました。 当方は2003でしたので、ご説明を詳しく頂き本当に助かりました。 別件で、また上手く動作がいかないものがでてきましたので、 お手数でなければ、ご回答ください。 ありがとうございました。