サブフォームのIDで抽出するクエリを作成し、そのクエリをもとにフォームを作成します。
下のように[F_商品]フォームには[F_商品のサブフォーム]と名前が付いたサブフォームがあります。
このサブフォーム内のレコードを選択して、[修正フォームを開く]ボタンをクリックすると[F修正フォーム]を開くように作成します。
参考サブフォームの作成については、以下の記事を参照してください。
-
サブフォームを含むフォームを簡単作成
Accessで1つのフォーム上に2つのテーブルの情報を表示して、同時に閲覧できると便利な場合があります。 たとえば、[得意先]テーブルと[受 ...
ここでは[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択しています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
クエリの作成
サブフォームのIDを取得するクエリは、クエリの抽出条件に、以下のように入力して、このクエリを基に[F修正フォーム]を作成しています。
フォームのコントロールを参照するには、フォーム名のあとに[!](感嘆符)を付け、プロパティ名をつなぐときは[.](ドット)を付けます。
サブフォームを参照するときは、特殊なプロパティ[Form]を使用します。
作成したクエリは、[Q_売上ID]と名前を付けて保存します。
クエリをもとに単票フォームを作成
クエリをもとに単票フォームを作成します。
フォームプロパティの[レコードソース]は[Q_売上ID]です。
プロパティの表示/非表示は、[F4]キーで切り替えられます。
フォーム名は、[F_修正]とします。
参考フォームの作成については、以下の記事で解説しています。ウィザードで作成する方法を解説しています。
-
フォームウィザードでフォームを作成(クエリが認識されないことも)
Accessのフォームとはテーブルやクエリのデータをもとに、データの表示、入力、編集するためのオブジェクトです。 フォームウィザードでは、[ ...
サブフォームのレコードを選択して[修正]フォームを開く
フォーム[F_商品] をデザインビューで開いて、コマンドボタンを作成して、フォーム[F_修正]を開くようにします。
[デザイン]タブの[コントロール]グループにある[ボタン]を選択して、フォームヘッダーにボタンを作成します。
ボタンのプロパティを表示して[クリック時]イベントの[ビルダー選択]ボタン[…]をクリックして、
[ビルダーの選択]ダイアログボックスから[マクロビルダー]を選択して[OK]ボタンをクリックします。
[マクロウィンドウ]が表示されます。
[新しいアクションの追加]で[フォームを開く]を選択します。
[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。
そして、[フォーム名]の▼ボタンをクリックして、[F_修正]を選択します。
[上書き保存]をクリックして、閉じます。
これで、[修正フォームを開く]ボタンをクリックして、フォーム[F_修正]を開けるようになります。
データを更新
フォーム[F修正フォーム]でデータを更新したら、サブフォームのデータも更新したいですね。
閉じる時に、データが更新されるようにしてもいいですが、ここでは、フォーム[F修正フォーム]を開いたまま、データの更新が確認できるように、[更新]ボタンを作成します。
フォーム[F_修正]をデザインビューで開き、コマンドボタンを作成します。
標題は、[更新]とします。
[イベント]タブの[クリック時]で[マクロビルダー]を選択します。
[新しいアクションの追加]で[再クエリ]を選択します。
一番下までスクロールすると、見つけられます。
[コントロール名]は空白のままでOKです。
[上書き保存]をクリックして、閉じます。
プロパティには、[埋め込みマクロ]と表示されます。
参考[ビルダーの選択]ダイアログボックスで[コードビルダー]を選択するのであれば、
以下のように入力します。マクロビルダーで設定しても、コードビルダーで設定しても同じです。
Docmd.Requery
フォームで動作を確認します。
関連サブフォーム関連のページです。
-
オプションボタンでサブフォームに表示するデータを切り替えるには
オプションボタンでサブフォームのソースオブジェクトを変更する方法です。 下のようなオプショングループを設置して、サブフォームを組み込んだフォ ...