• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:accessフォーム トルグ yes/no表示切替)

accessフォーム トルグ yes/no表示切替

このQ&Aのポイント
  • accessフォームにてトルグボタンでyes/noの表示を切り替える
  • 単票フォームにyes/no型のチェックボックスがあります。トルグボタンを押すとチェックしたものだけが表示され、ボタンを解除(押さなければ)すると全件表示されるようにしたいです。
  • また、この単票フォームを開けた時は、常にボタンが解除されて全件表示の状態にしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答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」の代入をしておくか、『既定値』プロパティ  を「いいえ」にしておけば、サブプロシージャの呼出はそのままにしていても、全件表示が  可能になります) ・・・長文、失礼致しました(汗)

hyolli
質問者

お礼

わかりやすい、ご回答いただきありがとうございます。 私の考え通り動き、これからの業務に役立ちそうです。 バージョンを記していなかった点をご指摘いただき、 ついつい忘れていたことに気が付きました。 当方は2003でしたので、ご説明を詳しく頂き本当に助かりました。 別件で、また上手く動作がいかないものがでてきましたので、 お手数でなければ、ご回答ください。 ありがとうございました。

その他の回答 (1)

  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.1

strWhere = "[T2伝票仮] = " & Me.トグル38.Value かな?

hyolli
質問者

お礼

ご回答をはやく頂き、ありがとうございます。

関連するQ&A