• ベストアンサー

サブフォームを非表示させる方法を教えて下さい

Access 親フォームより表示、非表示のサブフォームを表示させる方法は何とか出来ましたが、表示したサブフォームを自分自身で非表示させる方法が判りません。 お判りになる方、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

サブフォームのモジュールから、サブフォームを非表示にしたいということでしょうか。 メインフォームのサブフォーム以外のコントロールにフォーカスを移動させてから、 Visible を False にします。 Forms!メインフォーム名.コントロール名.SetFocus Me.Visible = False

ozoxq
質問者

補足

ご回答をありがとうございます。私の説明が不適切なのでしょうか、ご回答頂きました方法は既に何度も試しているのですが、上手くいきません。親フォームから表示させた、サブフォームをそのサブフォーム自身から非表示にしたいのですが、ご回答下さいました方法で出来るものなのでしょうか? 宜しくお願いいたします。

その他の回答 (2)

回答No.3

No.1 で 「メインフォームのサブフォーム以外のコントロールにフォーカスを移動させてから、 Visible を False にします。」 と回答したしたが、この文章をもう一度よく読んで、 > Private Sub subClose_Click() >   Forms!MainForm.subFormA.SetFocus > Me.Visible = False > コントロールがフォーカスを取得しているときは、コントロールを非表示にできません このコードとエラーメッセージの意味を理解すれば、 うまくいかない原因は分かると思います。

ozoxq
質問者

お礼

解決できました。時間がかかりましたが、理解することも出来たと思っています。 まだまだ未知の領域があります。また質問させて頂きます際は、宜しくお願いします。 今回はありがとうございました。

回答No.2

> 親フォームから表示させた、サブフォームをそのサブフォーム自身から非表示にしたいのですが、ご回答下さいました方法で出来るものなのでしょうか? 当方で簡単なサンプルを作成して実験してみましたが、問題なくできました。 下記の情報を補足してください。 現状のメインフォームに記述してあるサブフォーム非表示のコード。 今回、サブフォームに記述したうまく行かないサブフォーム非表示のコード。 また、そのコードでどのようにうまく行かないのかの詳細。 エラーが出るなら、どのコードでどのようなエラーメッセージがでるのか。

ozoxq
質問者

補足

ありがとうございます。 親フォーム: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 の部分が指摘されている様です。 宜しくお願いいたします。

関連するQ&A