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

締切り済みの質問

ACCESSで、フォームのレコードごとに背景色変更

同じ題名ですが、削除できないため補足の説明をさせてください。
添付ファイルにある様に色を付けていきたいのですが、色が付くところが変動するので
固定で作るのではなく出来ないでしょうか?
何卒、宜しくお願い致します。

投稿日時 - 2015-07-14 17:17:19

QNo.9012227

すぐに回答ほしいです

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

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

回答(5)

ANo.5

いくつも回答を書き込んだ後での
質問で申し訳ないのですが、

添付画像を見直すと、
黄-----1,3,5,10 の名前
黒-----7,11 の名前と申請有無

これらから、

1 黄は固定で、黒は変動
2 黄は変動で、黒は固定
3 黄も黒も変動
4 黄のみが変動で、黒は無関係

の四つの場合が考えられるようですが、
これらのうちどれが質問の内容に
合っているのでしょうか。
また、背景色を変更する条件は
どのようなものですか。

投稿日時 - 2015-07-15 15:26:16

ANo.4

No3の
>ひょっとして、選択したレコードに順次背景色をつけていく、ということでは
>ないですね?
ということならば、あり合せのもので。
ほかにも大そうな方法はありますが、以下で
どうでしょう。


(1)
フォームのコントロールソースがテーブルとして、
そのテーブルに「チェック」というフィールドを設定し、
フィールドの型を「Yes/No」にします。

(2)
フォームの詳細にチェックボックスを追加し、そのコントロールソースを
「チェック」にします。名前も「チェック」にしておきます。

(3)
フォームの「名前」のコントロールを選択しておいて、
「条件付き書式設定」を開き、「条件」の「式」を
選択し、式の記入欄に
  [チェック]=True
といれます。

(4)
条件が真のときに使用する書式で、適当な「背景色」
を選択します。「OK」とします。

(5)
フォームの「名前」のダブルクリック時のイベントで、

Private Sub 名前_DblClick(Cancel As Integer)
  If Me!チェック = False Then
    Me!チェック = True
  Else
    Me!チェック = False
  End If
End Sub

とします。

(6)
以上でおわりですが、チェックボックスが目障り
だと思うならば、チェックボックスのプロパティで、
「可視」を「いいえ」にしてどれかのテキストボックスの
下にもぐらせておいてもいいです。

投稿日時 - 2015-07-15 01:46:09

ANo.3

回答して後で気になったのですが、
一つ前の質問には、
>フォームを開いたときに、選択したレコードの背景色に色を付けたい
とあり、この質問の添付画像には複数の背景色がありますが、
ひょっとして、選択したレコードに順次背景色をつけていく、ということでは
ないですね?
選択したレコードの背景色を変更したい、ということであれば、
No2でいいのですが。

投稿日時 - 2015-07-14 22:03:18

ANo.2

以下のところに、いくつかの方法が
記載されています。
「サブフォーム」となっていますが、
帳票フォームでも対応できます。

http://accessclub.jp/bbs/0222/beginers68346.html

一番簡単なのは、
1 フォームのフッターにテキストボックスを
 おき、名前を「txNo」として、「可視」を「いいえ」
 にしておく。

2 フォームの「レコード移動時」のイベントで、

Private Sub Form_Current()
Me!txNo = Me!No
End Sub

とする。なお、「Me.No」の「No」は
フォームのコントロール名。

3 フォームのデザインビューで、詳細のテキストボックスを
すべて選択し、「条件付書式」を開き、「式」を選択し、
「[txID]=[ID]」を「入れる。

4 そのまま、「フォーカスのあるフィールド」を選択し、
  「背景色の中から好きな色を選択し、「OK」とする。

以上です。

上記のリンク先にはその他方法も載っています。
もちろん、込み入ったVBAの方法もありますが、
これが一番簡単でいいのでは、と思いますが。

投稿日時 - 2015-07-14 21:54:39

ANo.1

Q、ACCESSのフォームのレコードごとに背景色変更。
A、「できない」という答えは間違い。

正確には、そういう手間暇のかかることはしないというのが真相。

【実現するには・・・】

ちょっとだけクラスモジュールを開発する必要があるかもしれません。レコード移動ボタンの関するそれ。でも、経験では、これは実に慎重に設計しないと「関数オーバーヘッド・エラー」の原因になります。そういうことで、諦めるのが一番です。もちろん、ActiveXコントロールを使えば、その限りではないと推測します。

投稿日時 - 2015-07-14 19:52:00

あなたにオススメの質問