• ベストアンサー

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

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

  • ozoxq
  • お礼率27% (3/11)

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

  • ベストアンサー
回答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

  • 「サブフォーム」の名前を取得したい

    アクセスのフォームの中にサブフォームが2つあります。 このうちの一つのサブフォームをクリックした時に 自身のフォーム名をVBAで取得したいのですが、 サブフォームのモジュールで Debug.Print Screen.ActiveForm.Name をすると、 親フォームが取得されます。 Forms("親フォーム").Controls("サブフォーム").Form.Controls("担当者").Value の部分の、「親フォーム」が取得されます。 「サブフォーム」の部分を取得するコードはありますか?

  • サブフォームの切り替え方を教えてください

    ACCESS97のVBAでアプリケーションを作成しています。 その中でメインメニューのボタンを押した時に新しいフォームとその中のサブフォームが表示されるような処理を行っているのですが、基本的にフォームは同じのを使いまわし、その中のサブフォームをイベントによって切り替えたいのです(例えばメニュー画面でAのボタンをクリックしたら新しいフォームとその中のAAのサブフォームが、メニューのBのボタンをクリックしたらBBのサブフォームが表示するなど)。どなたか良い方法を知っていましたら教えてください。

  • サブフォームのサブフォームの値を参照

    Access2007で親フォームAの中にサブフォームBが入っていて、そのサブフォームBの中にサブフォームCが入っているとします。 この場合、親フォームAからサブフォームCの中のテキストボックスの内容等は参照できないのでしょうか? 一応試しに、親フォームから Me!サブフォームB.Form!サブフォームC.From!テキスト.SetFocus と、ソースに書いたのですが「実行エラー:438」が出てしまいます。 どうにかして参照できないでしょうか? ご存じの方がいらっしゃったらご教授お願いします。

  • ACCESS2003でサブフォームを使う

    すみませんが教えてください。 親フォームの中に、サブフォームを作ります。 サブフォームにはクエリの内容が表示されています。 そのサブフォームの内容を、親フォームに表示させたいです。 (サブフォームをクリックすると、親フォームの内容も切り替わる) VBAが必要なのでしょうか。 もしそうであれば、参考になるページ、もしくはコードを教えていただけるとありがたいです。 現在、親フォームのほうには [Forms]![登録内容クエリ2フォーム]![登録内容マスタのサブフォーム] ![Forms]![内容]と設定しているのですがこのままではうまくいかないのですね;; ヨロシクお願いします。

  • サブフォームをリクエリするには?

    アクセスのフォームにはサブフォームがあり、 親フォームの上にあるコマンドボタンで、テーブルに対してアクションクエリでレコードの削除やレコードの更新を行います。 サブフォームにはそのテーブルをソースとしたデータを表示させているのですが、 親フォームの上にあるコマンドボタンのイベントの最後に、 Me.Controls("サブフォーム").Requery を入れても、フォームのデータが#Deletedになります。 Me.Requery でも、サブフォームのデータは#Deletedになってしまいます。 フォームを開きなおしたり、並べ替えをすればデータが表示されますが コマンドボタン押下後にイベントを実行し終わったら、サブフォームのデータも更新されたデータを表示するさせるには どうすればいいでしょうか?

  • accessのサブフォームの並び替え方法

    accessのサブフォームの表示において並び替え方法を教えてください。 主フォームのプログラム制御にて並び替えをしたいと思います。

  • ACCESS のサブフォーム表示について

    ACCESS のサブフォーム表示について 環境 ACCESS2003 テーブルが2つあります 1、 TBL顧客情報 2、 TBL購入品 TBL顧客情報をメインにTBL購入品をサブフォーム にして受注フォームを作りたいと思います 以下3つのことを望んでいます 1、サブフォームに購入品を加えてたいのですが 追加できる行を3行までと制限を掛けたい。 2、受注フォームを開いたときサブフォームには 空の3行が表示されている 3、ですのでTBL購入品には記入した購入品がのみが 追加され、空の行は無視される。 どなたかお知恵を拝借させてください。

  • アクセスのサブフォーム

    アクセス2000を使っているのですが、サブフォーム内に表示されている金額の合計をメインフォームに表示させる事は出来るでしょうか? またサブフォームを透明にして、メインフォームが透けて見えるようにはならないでしょうか? よろしくお願いします。

  • サブフォームが見えなくなる。

    サブフォームが見えなくなる。 Access初心者です。 メインフォームにサブフォームを入れ込んだのですが、メインフォームを新しいレコードに移動すると、サブフォーム自体が出てこなくなります。 データがあるレコードではきちんとサブフォームが出ていることが確認出来ています。 どうしていいのか判らないので教えて下さい。 マクロで入力ボタンを押すとメインのフォームを開き、新しいレコードに移動することをやっていますが、関係あるでしょうか? やりたいことはメインを新しいレコードに移動した時に、サブフォームが表示されて入力できるようにしたいということです。

  • Accessサブフォームの表示について

    はじめまして、yossy136kgと申します。 Microsoft Access2003のメインフォーム、サブフォームに関して下記の件、ご教授願います。 メインフォーム、サブフォームを作成しリンクして、あるテーブルのレコードをサブフォームに表示されることが確認できている状況です。 サブフォームのRecordSourceに設定しているテーブルに【複数件レコードがある】状態に対して、検索条件に満たない場合空の状態でサブフォームは表示出来ています。 確認したいことは、サブフォームのRecordSourceに設定しているテーブルが【0件(レコードがない)】の状態に対して、サブフォームを空の状態で表示することは出来ますでしょうか? 現状、サブフォームは非表示となっています。 ※ダミーデータを入れてそれを表示対象とするしかないのでしょうか? 何かご不明な点がありましたご指摘ください。 以上、宜しくお願い致します。

専門家に質問してみよう