- ベストアンサー
Access97の帳票形式フォームで 条件によって書式変更するには
Access97で帳票形式のフォームで下記の対応をするには、どうすれば良いのでしょうか。? 1.条件によって、前景色or背景色を変えるには? 2.フォーカスのあるコントールの背景色を変えるには? 御存知の方、いらっしゃいましたら 教えて頂けませんか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
↓ここに書いてありました
その他の回答 (2)
- yuziro
- ベストアンサー率41% (5/12)
質問2(フォーカスのある~)の方は、よろしいのでしょうかね? *** 質問1&補足について *** まだ、はっきりしない点もあるのですが、 ある程度、想像で補うと、 親フォーム、子フォームのレコード移動時イベントを 使うのが、最も適当かと思われます。 まず、サブフォームの表示なのですが、 親フォームのモジュールで、 Private Sub Form_Current() Me.[サブフォーム名].Visible = (条件) End Sub とすると、(条件)のところが成立していれば、 サブフォームは表示され、 成立していなければ、サブフォームは表示されません。 次に、サブフォームの値による、親フォームの背景色の変更ですが、 サブフォームのモジュールで、 Private Sub Form_Current() Parent.[背景を変えたいコントロール名].BackColor = IIf(条件, 条件が成立した時の色, 条件不成立の時の色) End Sub とすると、条件の正否によって、親フォームのコントロールの背景が変わります。 ※補足 あらかじめ作ったデータだけでなく、 随時入力されるデータを、リアルタイムに、 サブフォームの表示/非表示に利用したい時は、 レコード移動時のイベントを利用すると共に、 各コントロールの更新イベントや、フォームの更新イベントも利用した方がいいですね。 条件の設定の際、Null値の処理には、気を付けてくださいね。
- yuziro
- ベストアンサー率41% (5/12)
1.ACCESS2000なら、「条件付き書式」なる機能があるのですが・・・ VBAを使えば、 [コントロールの名前].ForeColor = 色コード [コントロールの名前].BackColor = 色コード を、必要な個所に織り込むことで可能です。 2.VBAを使うなら、 Screen.ActiveControl.BackColor = 色コード Me.ActiveControl.BackColor = 色コード の、どちらかを 各コントロールのフォーカス取得時、喪失時のイベント に割り当てれば可能です。
補足
申し訳ありません。 もう少し、質問の内容を詳しく書けば良かったのですが... 実は、予めテーブルを作成し、その内容をある条件によってサブフォームに 表示させたいと思っています。 その表示させるサブフォームの各レコードの値によって 前景色or背景色を 変更したのですが 又、VBAを使うイベントのタイミングも出来れば教えて下されば幸いです。 宜しく、お願い致します。
お礼
sstakさん 有難うございました。 お蔭様で 思っていた通りの事が実現出来ました。 Accessでも いろんな技があるのですね。 『もっともっと 知識を高めていこう』と 改めて思いました。 本当に有難うございました。 fumichan