プロが教えるわが家の防犯対策術!

メインフォームからサブフォームの背景色を変えたい。

いつもお世話になっています、度々よろしくお願いします。

メインフォームの開く時にレコード内容によりメインフォームの背景色を変えています、
同時にサブフォームの背景色も同色に変更したく(メインフォームの開く時イベント)に下記コードでやってみたのですが

プロパティー、メッソッドがサポートされないとエラーが出ます、

Me!サブフォーム名.詳細.BackColor = RGB(192, 192, 192)

親フォームからサブフォームの背景色変更は出来ないのでしょうか?
アドバイス宜しくお願いいたします。

A 回答 (2件)

以下の変更で、どうでしょうか。



> Me!サブフォーム名.詳細.BackColor = RGB(192, 192, 192)



Me!サブフォーム名.Form.詳細.BackColor = RGB(192, 192, 192)


出来上がっていたフォームを、
ドラッグ&ドロップでサブフォームとして組み込むと、
サブフォームコントロール名は、サブフォーム名になりますが、
作る手順/設定により、異なる名前を付けることができます。

メインに配置したサブフォームコントロール名を「FSUB」と仮定すると

Me!FSUB.Form.詳細.BackColor = RGB(192, 192, 192)

の記述になります。

「FSUB」のプロパティ「ソースオブジェクト」には、
サブフォームとして組み込んだフォーム名が設定されています。


余談)

代替の背景色(AlternateBackColor)があったりします。
    • good
    • 0
この回答へのお礼

早急な返信ありがとうございます。
バッチリ背景色を変更する事が出来ました。
ありがとうございました。m(_ _)m

ちなみに、サブフォーム名の後の.form.は何を指しているのですか?
よろしければレスおねがいいたします。

お礼日時:2010/09/11 09:41

Access で良かったのでしょうか?



「詳細」とは何者かを考えてみるとわかると思います。
(私が理解している範囲で:嘘かも、調べてみてください)

「詳細」はコントロール名では無い、ということです。
(フォームを管理する上での名前??)

自フォーム上で「詳細」にアクセスする時には、

Me.詳細  もしくは、 Me.Section(acDetail) の記述でできます。

Me!詳細 の記述はできません。

テキストボックス等のコントロールは、
Me!テキストボックス名 または、Me.テキストボックス名 で記述できます。

では、親フォームからサブフォームコントロール「FSUB」を通して
テキストボックスを参照する記述は、

Me!FSUB!テキストボックス名 とか
Me!FSUB.Controls("テキストボックス名")

でもアクセスできますが、
コントロールで無い「詳細」については、

サブフォームコントロールに設定したフォーム上でのこととして
Me!FSUB.Form を指定します。

「詳細」と同様に、フォームの「標題」を参照する時には、
Me!FSUB.Form.Caption と記述します。

なお、前述したテキストボックスに対しても、フォームを記述した

Me!FSUB.Form!テキストボックス名 とか
Me!FSUB.Form.テキストボックス名 とか
Me!FSUB.Form.Controls("テキストボックス名")

ができます。



実際にどういう記述ができるのか、その背景色を設定している箇所で止め、
ウォッチウインドウを表示し、いろいろな式を指定してみてください。

説明になっていたでしょうか。
調べてください。
    • good
    • 0
この回答へのお礼

大変丁寧なレスありがとうございます。
説明不足で大変申し訳ありませんでした!
WIN XP
ACCESS 2003で行っております。

なるほど!!
ウォッチウインドウを使う頭が無いのですぐに行き詰まっていました、
また.Form.については大変理解が深まりました。

今後も宜しくお願いいたします。
30246kikuさんありがとうございました。m(_ _)m

お礼日時:2010/09/11 14:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A