- ベストアンサー
アクセスフォームチェックボックスのトルグ文字の表記方法について
- アクセスフォームのチェックボックスをトルグボタンに変更する方法を試しています。
- ボタンを押した時だけ表示が「普通」に変わり、ページを移動すると「普通」の表記になってしまいます。
- 式の設定に問題があるのか、トルグ文字の表記がうまくいかない状況です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
前回(?)のご質問の回答者です。 http://okwave.jp/qa/q7850659.html まず初めに、細かい話になりますが、ご質問のコントロールは「トグル(toggle)」ボタン ですので、ご確認を・・・(汗) さて、本題ですが、 > ページ移動ごとに凸凹は変わるのですが、 とのことから、当該フォームの『既定のビュー』が「単票フォーム」になっているものと 推測します。 (ページ移動=レコード移動) そうであれば、ご質問で掲載しているコードはそのまま使用した上で、トグルボタンを 設置したフォームの『レコード移動時』に下記コードを記述すれば、ご希望の動作に なるかと思います: Private Sub Form_Current() 'レコード移動に合わせて、「T2伝票仮」の更新時と同じ処理を実行 Call T2伝票仮_AfterUpdate End Sub 【以下、余談の可能性大(汗)】 もしも当該フォームの『既定のビュー』が「帳票フォーム」になっていて、一度に複数 のレコードが表示される場合は、フォームのコントロールのCaptionプロパティや ForeColorプロパティは、一度に1つの値しかもてないため、ご希望の動作をさせる ことはできません。 (トグルボタンは『背景スタイル』プロパティを持たないため、「透明にして、文字列の 表示用に別途テキストボックスを用意して重ねてしまう」といったこともできません) この場合は、凹凸表示に文字列を重ねるのは諦めて、使用するコントロールを 『コンボボックス』に変更(→『コントロールの種類の変更』では対応できないので、 既存のトグルボタンを削除&新規コンボボックスを追加(&ラベル削除))し、 『条件付書式』によって「前景色/背景色」を切り替える、といった代替策をとるしか ないかと思います。 (条件付書式は、今回のご質問のように条件が固定なら、VBAでやるよりもデザイン ビューでメニューから設定してしまった方が圧倒的に楽です: 当該コンボボックスの右クリックメニューから、「条件付き書式(D)」を選択) ※コンボボックスのプロパティは、例えば以下のようにします: <『書式』タブ> 『列数』=「2」、『列幅』=「0cm;3cm」 <『データ』タブ> 『コントロールソース』=「T2伝票仮」、『値集合タイプ』=「値リスト」、 『値集合ソース』=「True; "仮"; False; "普通"」、『連結列』=「1」 または、トグルボタンは「値の更新用」として残した上で、文字列表示にはテキスト ボックスを使用する(隣に配置)、とする手もあります。 (テキストボックスの『コントロールソース』プロパティには =IIF([T2伝票仮], "仮", "普通") という式を指定すれば、『T2伝票仮』トグルボタンの更新に連動して文字列が 変わります: 先頭に「=」をつけた【演算コントロール】となるため、テキストボックス自体で データを編集することはできません) ・・・以上、長くなりましたが、参考まで。
その他の回答 (3)
- piroin654
- ベストアンサー率75% (692/917)
No1、No2です。 かんじんなことを忘れていました。 T2伝票仮 これが何のコントロールかは何も書いてありませんが、 一応、トルグボタンであろうという前提で回答しています。
お礼
ご回答いただき有難うございます。 No.1~3を読ませていただき、こういう方法もあることを知り とても勉強になります。 説明に不足があるにも関わらず、ご回答頂き有難うございました。
- piroin654
- ベストアンサー率75% (692/917)
No1です。あるいは、 Private Sub T2伝票仮_AfterUpdate() を、あっさり Private Sub cmdCaption() におきかえて、 Call T2伝票仮_AfterUpdate を、 Call cmdCaption にしても同じことではありますが。
お礼
ご回答いただき有難うございます。 No1~3をまとめて、No3にお返事させていただきます。
- piroin654
- ベストアンサー率75% (692/917)
>ページ移動ごとに凸凹は変わるのですが ページとは何ですか?ひょっとしてタブコントロールですか? あるいは、見知らぬコントロールでしょうか? たとえば、タブコントロールとして、タブコントロールの 名前を、 タブ0 とします。たとえば、タブコントロールの変更によるイベントなどで、 Private Sub タブ0_Change() If Me![T2伝票仮].Value = True Then Me![T2伝票仮].Value = False Call T2伝票仮_AfterUpdate Else Me![T2伝票仮].Value = True Call T2伝票仮_AfterUpdate End If End Sub のようにして、T2伝票仮_AfterUpdate というプロシージャを、 Call T2伝票仮_AfterUpdat のように呼び出せばよろしいかと。 なお、上記のプロシージャは適当なものです。 Call T2伝票仮_AfterUpdat の有効活用についての例なので、実際は どのようになっているかはわかりませんが。
お礼
ご回答いただき有難うございます。 No1~3をまとめて、No3にお返事させていただきます。
お礼
2度にわたり、恐縮です。 私の中では、まぎれも無くトルグでした・・・。が、トグルでしたか・・・(恥 他の職員に説明する時、トルグと言い、みんながトルグだと信じるとこでした・・・(焦 ご指摘ありがとうございます。 検索しても検索しても、希望どうりの答えが中々見つからず、困っていましたが、 教えていただきました式にて、無事動作しました。 式の後の、補足もとても勉強になります。有難うございます。 accessは2年くらい触っていますが、その都度必要なものを足していく方法で作っていますので、 その都度初めての式を作らないといけないので、悩まされます。 なるべく自分の力で乗り越えたいと思うのですが、中々・・・ 長くなりましたが、ありがとうございました。