こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

access フォームにてトルグボタンでyes/noの表示を切り替える

単票フォームにyes/no型のチェックボックスがあります。
トルグボタンを押すとチェックしたものだけが表示され、ボタンを解除(押さなければ)すると
全件表示されるようにしたいです。

また、この単票フォームを開けた時は、常にボタンが解除されて全件表示の状態にしたいです。

下記の式だと、ボタンを解除してもチェックしたものだけの表示になり全件表示になりません。
よろしくお願いします。

-----------------------------------------
単票フォーム名:T2伝票
トルグボタン名:トグル38
チェックボックス名:T2伝票仮
-----------------------------------------
Private Sub トグル38_Click()
Dim strWhere As String
strWhere = "([T2伝票仮] = True)"

Me.Filter = strWhere
Me.FilterOn = True
End Sub

投稿日時 - 2012-12-18 16:17:06

QNo.7850659

すぐに回答ほしいです

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

> ボタンを解除(押さなければ)すると全件表示されるようにしたいです。

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」の代入をしておくか、『既定値』プロパティ
 を「いいえ」にしておけば、サブプロシージャの呼出はそのままにしていても、全件表示が
 可能になります)


・・・長文、失礼致しました(汗)

投稿日時 - 2012-12-18 20:53:32

お礼

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

投稿日時 - 2012-12-20 16:36:09

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

かな?

投稿日時 - 2012-12-18 18:08:00

お礼

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

投稿日時 - 2012-12-20 16:31:54

あなたにオススメの質問