- ベストアンサー
サブフォームを非表示させる方法を教えて下さい
Access 親フォームより表示、非表示のサブフォームを表示させる方法は何とか出来ましたが、表示したサブフォームを自分自身で非表示させる方法が判りません。 お判りになる方、宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
サブフォームのモジュールから、サブフォームを非表示にしたいということでしょうか。 メインフォームのサブフォーム以外のコントロールにフォーカスを移動させてから、 Visible を False にします。 Forms!メインフォーム名.コントロール名.SetFocus Me.Visible = False
その他の回答 (2)
- hatena1989
- ベストアンサー率87% (378/433)
No.1 で 「メインフォームのサブフォーム以外のコントロールにフォーカスを移動させてから、 Visible を False にします。」 と回答したしたが、この文章をもう一度よく読んで、 > Private Sub subClose_Click() > Forms!MainForm.subFormA.SetFocus > Me.Visible = False > コントロールがフォーカスを取得しているときは、コントロールを非表示にできません このコードとエラーメッセージの意味を理解すれば、 うまくいかない原因は分かると思います。
お礼
解決できました。時間がかかりましたが、理解することも出来たと思っています。 まだまだ未知の領域があります。また質問させて頂きます際は、宜しくお願いします。 今回はありがとうございました。
- hatena1989
- ベストアンサー率87% (378/433)
> 親フォームから表示させた、サブフォームをそのサブフォーム自身から非表示にしたいのですが、ご回答下さいました方法で出来るものなのでしょうか? 当方で簡単なサンプルを作成して実験してみましたが、問題なくできました。 下記の情報を補足してください。 現状のメインフォームに記述してあるサブフォーム非表示のコード。 今回、サブフォームに記述したうまく行かないサブフォーム非表示のコード。 また、そのコードでどのようにうまく行かないのかの詳細。 エラーが出るなら、どのコードでどのようなエラーメッセージがでるのか。
補足
ありがとうございます。 親フォーム:MainForm サブフォーム名:subFormA Open時に Private Sub SubOpen_Click() Me.Parent.subFormA.Form.Visible = True End Sub サブフォーム上のCloseに Private Sub subClose_Click() Forms!MainForm.subFormA.SetFocus Me.Visible = False です。 エラーメッセージは 「実行時エラー "2165" コントロールがフォーカスを取得しているときは、コントロールを非表示にできません」 Access2013です。 ディバックに > Me.Visible = False の部分が指摘されている様です。 宜しくお願いいたします。
補足
ご回答をありがとうございます。私の説明が不適切なのでしょうか、ご回答頂きました方法は既に何度も試しているのですが、上手くいきません。親フォームから表示させた、サブフォームをそのサブフォーム自身から非表示にしたいのですが、ご回答下さいました方法で出来るものなのでしょうか? 宜しくお願いいたします。