Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


470 / 9994 ←次へ | 前へ→

【12836】Re:サブフォームの抽出結果をメインフォームに表示させたい
回答  hatena  - 15/5/28(木) 15:08 -

引用なし
パスワード
   かるびの さん、こんにちは。hatenaです。
つっこみご容赦。

>  第1に、あちこちでActiveControlプロパティが使われていますが、
> 「Me.ActiveControl」ではエラーになります。

エラーにはなりません。
Formオブジェクトも、ActiveControlプロパティを持っています。

例えば、
フォーム1 の コントロール1 にフォーカスがあるとき、

Screen.ActiveControl.Name は、コントロール1
Forms!フォーム1.ActiveControl.Name も コントロール1
になります。

ここで、フォーム2 をアクティブにして、そこのコントロール2をアクティブにしたとします。

Screen.ActiveControl.Name は、コントロール2
Forms!フォーム2.ActiveControl.Name も コントロール2
になります。
さらに、
Forms!フォーム1.ActiveControl.Name は コントロール1 となり、エラーになりません。

つまり、フォームがアクティブではなくても、フォーム自体は自分のどのコントロールがアクティブなのか記憶しているということです。ですので、また、自分自身にフォーカスが戻ってきた時、前にアクティブだったコントロールがそのままアクティブになっているわけです。

デバッグに当たり、コードをステップ実行させるときも、
Screen.ActiveControl はエラーになりますが、
Me.ActiveControl はエラーにならずそのフォームのアクティブなコントロールを参照できます。


今回の、SetFilter 関数がどこのどのイベントで呼び出されるのか不明ですが、
更新後処理などで、自分自身を参照したいときなどに使えば問題無いです。
私自身も、コードを複数のコントロールで共通化したい場合によく使います。


さて、本題の rinrinさんの質問に関して、
かるびのさんも指摘していますが、
フォームの構成と目的がはっきりしません。

メインフォームの名前は?
メインフォームは連結なのか非連結なのか?

このコードはどこに記述してあるのですか。

あと、SetFilter は提示のコードでは使われてませんが、どこで使用しているのですか。

また、サブフォームの抽出結果をメインフォームに表示ということですが、
抽出結果が複数の場合は、どのレコードを表示するのですか。

そもそも、どのような目的でフォームを作成しているのですが、その概要も説明してください。

704 hits

【12834】サブフォームの抽出結果をメインフォームに表示させたい rinrin 15/5/26(火) 21:22 質問[未読]
【12835】Re:サブフォームの抽出結果をメインフォー... かるびの 15/5/28(木) 2:00 回答[未読]
【12836】Re:サブフォームの抽出結果をメインフォー... hatena 15/5/28(木) 15:08 回答[未読]
【12837】Re:サブフォームの抽出結果をメインフォー... かるびの 15/5/29(金) 0:07 発言[未読]
【12838】Re:サブフォームの抽出結果をメインフォー... rinrin 15/5/29(金) 23:18 お礼[未読]

470 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078265
(SS)C-BOARD v3.8 is Free