- ベストアンサー
(ACCESS)フォームデータシートの項目欄色の変更(チェックボックスの場合)
前回も投稿した内容の延長で申し訳ありませんが、ネットで色々調べても解決しなかったため、投稿しました。 フォーム(データシート形式)で各項目を投入できるようにしたのですが、項目数が多すぎて、優先順位を付けるために、項目欄に色付けをしようと考えています。 テキストボックスの欄は条件付書式で色指定すると色変更はできましたが、チェックボックスのある項目欄はプロパティを見ても、条件付書式がありません。他に色変更する方法は無いでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。 すみません、前回の回答はOfficeの入っていないPCだったため、検証していませんでした(汗) 確認したところ、確かに私のPCでも、miffy123さんの仰るとおりの現象になりました。 改めて検証したところ、どうやら値集合ソースの「True/False」が正しく認識されていないようで、 以下のように修正したところ、当初の意図通りの動作となりました: 値集合ソース=「0;"□";-1;"■"」 デザインビューで上記プロパティを変更してから、データシートビューに切り替えてください。 (データシートビューのままで値集合ソースをいじると、その場では正しく認識されないようで、 正しく認識させるには再クエリが必要でしたので) なお、前回「値を削除するとエラーになる」としましたが、確認したところこれも間違いで(汗)、 実際にはエラーにはならず、False(=0)として扱われるようです。 ですので、更新後イベントは不要です。 これについてもお詫びの上、訂正します。 大変失礼致しました。
その他の回答 (2)
- DexMachina
- ベストアンサー率73% (1287/1744)
チェックボックスでは、残念ながら色の変更はできないと思います。 (条件付書式は「データを視覚的にわかりやすくする」のが本来の目的の はずなので、元々「チェックの有無」で視覚化されているチェック ボックスには必要のない機能と判断されているのではないかと) ですので、代替案になりますが、リストの内容が「■」「□」の2つの 選択肢しかないコンボボックスを設置する、というのはいかがでしょうか。 (「■」は「レ」などでも可、その辺りは適当に・・・) コンボボックスのプロパティ: 列数=「2」 列幅=「0cm;0.5cm」(→入力すると半端になりますが気にせずに) コントロールソース=チェックボックスで表示させていたフィールド名 値集合タイプ=「値リスト」 値集合ソース=「False;"□";True;"■"」 連結列=「1」 なお、コンボボックスの値を削除するとエラーになるかと思いますが、 これを回避したい場合は、更新後イベントを使用してください: Private Sub コンボ0_AfterUpdate() 'コンボボックス名=「コンボ0」 If IsNull(コンボ0) Then '値が削除された場合 MsgBox "削除はしないでね。", , "確認" コンボ0 = 0 '値削除時に「□」にする場合 'コンボ0 = コンボ0.OldValue '値削除時に元に戻す場合 End If End Sub ※No.1の方の回答は、帳票型フォームには適用できても、今回のご質問の データシート型フォームには使えないのではないでしょうか・・・?
お礼
DexMachinaさん。 お返事遅れて申し訳ありません。 コンボボックスに変更して、プロパティの設定、イベントプロシージャの設定を書かれてる通りやってみましたが、■も□も選択してもデータリスト上に何も表示されません。エラーメッセージは何も表示されません。
- CHRONOS_0
- ベストアンサー率54% (457/838)
非連結のテキストボックスの上にチェックボックスを置きます 下に敷いた非連結のテキストボックスに条件付き書式を設定します これで十分目立ちますよ
お礼
DexMachinaさん。 御丁寧に検証までしていただいて、有難うございました。 値集合ソースを書き直して、更新後イベントを削除したところ正常に 動作いたしました。 大変助かりました。親切にサポートして頂いて本当に感謝いたします。 〆(・∀・*)ノ