
親フォームからサブフォームのレコードソースを設定するには?
フォーム1にテーブル1をドロップアンドドラッグして、「テーブル1のサブフォーム」を作成しました。
フォーム1にあるコマンドボタンから「テーブル1のサブフォーム」のRecordSourceを設定する方法を教えてください。
「テーブル1のサブフォーム」からなら
Private Sub Form_Load()
Me.RecordSource = ""
End Sub
とできるのですが、
やりたいことはフォーム1からのイベントなので
「テーブル1のサブフォーム」からのイベントは使えません。
だからってフォーム1の
Private Sub コマンド2_Click()
Me.テーブル1のサブフォーム.RecordSource = "テーブル1のサブフォーム"
End Sub
とするとコンパイルエラーになります。
良い方法があれば教えてください。アドバイスよろしくお願いします。

No.3ベストアンサー
- 回答日時:
No2です。
説明もれがあったので追加しておきます。No2のところで、
>このとき、「テーブル1のサブフォーム」
>のフィールドには「#Name?」のような表示がされていると
>思います。すなわちこときはサブフォームにはレコードソースが
>設定されていないからです。
としていますが、「#Name?」と表示される理由はフィールドの
コントロールソースが設定されているために、「#Name?」のような
表示が出てきます。
ここからは蛇足ではありますが、コントロールソースが設定されていなければ
こうした表示はでませんが、もしコントロールソースも取り除いて
いるならば、コマンド1でもコマンド2のクリックイベントでもどちらでも
かまいませんが、たとえば「テーブル1のサブフォーム」の
フィールドのコントロールソースをすべて取り除いておいて、
コマンド2のクリックイベントで設定するとすれば、一応
「テーブル1のサブフォーム」のフィールドの名前をID、名前、住所として
テーブル1のフィールド名を同じくID、名前、住所とするならば、
Private Sub コマンド2_Click()
Me.テーブル1のサブフォーム.Form.RecordSource = "テーブル1"
Me.テーブル1のサブフォーム.Form.Controls("ID").ControlSource = "ID"
Me.テーブル1のサブフォーム.Form.Controls("名前").ControlSource = "名前"
Me.テーブル1のサブフォーム.Form.Controls("住所").ControlSource = "住所"
End Sub
として、レコードソース、コントロールソースを設定します。
No.2
- 回答日時:
一応、以下を確認をしておきます。
1 「フォーム1」は親フォーム
2 「テーブル1のサブフォーム」はサブフォーム
3 「テーブル1のサブフォーム」のRecordSourceは「テーブル1」
であるとします。何故という部分をわかりやすく
するために以下のように設定してみてください。
1 「テーブル1のサブフォーム」をデザインビューで開き、
プロパティの「レコードソース」の「テーブル1」を
削除し、そのまま保存してとじてください。
2 親フォームをデザインビューで開き、サブフォームを
表示するコントロールのプロパティを開き「ソースオブジェクト」
の「テーブル1のサブフォーム」を削除し、そのまま閉じてください。
このとき、サブフォームを表示するコントロールの名前が
「テーブル1のサブフォーム」になっているのか、あるいは
「埋め込み0」のような名前になっているのか確認をしてください。
もし、「埋め込み0」のような名前になっているのならば
以下のコードの中で「テーブル1のサブフォーム」を
「埋め込み0」というように変更してください。
フォーム1にコマンドボタンを二つ設定し、それぞれのクリック
イベントに以下を設定します。
'サブフォーム表示コントロールのソースオブジェクトの設定
Private Sub コマンド1_Click()
Me.テーブル1のサブフォーム.SourceObject = "テーブル1のサブフォーム"
End Sub
'サブフォーム表示コントロールに設定するフォームのレコードソースの設定
Private Sub コマンド2_Click()
Me.テーブル1のサブフォーム.Form.RecordSource = "テーブル1"
End Sub
フォーム1のサブフォーム表示コントロール名の設定が
うまくいっていれば、コマンド1のクリックイベントで
「フォーム1」に「テーブル1のサブフォーム」が表示
されたと思います。このとき、「テーブル1のサブフォーム」
のフィールドには「#Name?」のような表示がされていると
思います。すなわちこときはサブフォームにはレコードソースが
設定されていないからです。
次に、コマンド2のクリックイベントで、「テーブル1のサブフォーム」
にレコードが表示されたと思います。
上記は「親フォーム」、「サブフォーム表示コントロール」、
「サブフォーム」の関係を質問のフォームを使って説明したものです。
したがって、質問の回答を端的にするならば、上記の操作を
せずに、
Me.テーブル1のサブフォーム.Form.RecordSource = "テーブル1"
すなわち、上記のコマンド2のクリックイベントが
回答ということになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Access(アクセス) テキストボックスの値をテーブルに入力したい 2 2022/06/28 12:08
このQ&Aを見た人はこんなQ&Aも見ています
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。
-
ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
ゴリラ向け動画配信サイト「ウホウホ動画」にありがちなことを教えて下さい。
-
性格いい人が優勝
できるだけ性格いい人になって回答をお願いします。
-
スタッフと宿泊客が全員斜め上を行くホテルのレビュー
スタッフも宿泊客も、一流を通り越して全員斜め上なホテルのレビューにありがちな内容を教えて下さい
-
準・究極の選択
「年収1000万円で一生カレーライス」か「年収180万円で毎日何でも食べ放題」
-
Access サブフォームでの選択行の取得
その他(データベース)
-
ACCSESS2013VBA フォームのレコードソースを変更する
その他(データベース)
-
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
-
4
ボタン押下でサブフォームのレコードソースを変更
Visual Basic(VBA)
-
5
Access サブフォームのレコードソースを変更するには
Access(アクセス)
-
6
Access2000 サブフォームのRecordSet取得法
Access(アクセス)
-
7
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
8
Accessのサブフォームから値を参照する方法について
その他(データベース)
-
9
access サブフォームにリストを表示させたいが一件しかレコードが表示されない
Access(アクセス)
-
10
親・子リンクフィールドの設定は、どうすればよいのでしょうか。
その他(Microsoft Office)
-
11
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
12
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
13
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
14
アクセスでサブフォームのレコードを取得したい。
Access(アクセス)
-
15
ACCESS フォームからサブフォームのデータを更新・入力したい
Access(アクセス)
-
16
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
17
Accessレポートのチェックボックスを大きくする方法
Access(アクセス)
-
18
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
19
ACCESS2000 VBAで印刷時にサブレポートのレコードソースを設定するには?
Access(アクセス)
-
20
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クエリで出来た表にチェックボ...
-
Access2010 サブフォームの並び...
-
Access VBA には Gridはないで...
-
Accessで埋め込んだサブフォー...
-
親フォームからサブフォームの...
-
サブフォームに対してGoToRecor...
-
access フォーム上で複数行の...
-
アクセス メインフォームの条...
-
親・子リンクフィールドの設定...
-
Access フォームで条件抽出し...
-
Access2007 ラベルの削除がで...
-
サブフォームのあるフォームか...
-
アクセスでエラー・・・
-
ACCESS──メインフォームでサブ...
-
Access サブフォームのレコード...
-
ACCESSのフォームで列固定?
-
ACCESS 帳票フォームとデータ...
-
サブフォームの高さをVBAで調整...
-
Access レポート印刷するときに...
-
アクセスでテキストボックスの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サブフォームに対してGoToRecor...
-
クエリで出来た表にチェックボ...
-
ACCESS──メインフォームでサブ...
-
親フォームからサブフォームの...
-
Access VBA には Gridはないで...
-
親・子リンクフィールドの設定...
-
Accessで埋め込んだサブフォー...
-
access フォーム上で複数行の...
-
サブフォームを非表示させる方...
-
Access2007 ラベルの削除がで...
-
サブフォームのあるフォームか...
-
Accessでサブフォームのボタン...
-
ACCESSで条件によってサブフォ...
-
Accessでセレクタをダブルクリ...
-
ACCESSにて
-
access vba サブフォームに条件...
-
サブフォームに変数を代入し、R...
-
Access SUMの結果が何もない時...
-
ACCESS VBA メインフォーム及び...
-
ACCESSのフォームで列固定?
おすすめ情報