メインフォーム上に設けたサブフォームに関連データを追加する方法

解説

単票フォーム(以下メインフォームと云う)上にサブフォームを設置している形式である。 サブフォームはメ、インフォームの関係するデータのみを表示することが目的になるので、 メインフォームの主キーを外部キーとして持っている状態にある。
ここでサブフォームに新規レコードを追加する方法として、追加用フォームを開いてデータ入力処理 する方法を取り上げてみる。
いまメインフォームに表示されているレコードにサブフォームのレコードを追加しようとする。追加フォームを 開いた時に追加フォームの外部キーに初期値としてメインフォームの主キーの値を取り込めば 自動的にリンク関係が保つことが出来る。その方法を下に示す。

手順

  1. サブフォームのレコードソースと同じにした単票形式のフォームを作り追加用フォームとする。
  2. 追加用フォームのデータ入力用プロパティを「はい」に設定する。
  3. メインフォームとリンクするコントロール(外部キー)の規定値プロパティにはリンク先の コントロール名を指定する。
    (例)規定値コントロール=Forms![フォーム名]![コントロール名]
  4. 追加用フォーム上に保存用コマンドボタンを設ける。クリック時イベントプロシージャには レコードの保存命令とメインフォームの「Refresh」メソッドを入れる。
    Private Sub Cmd_保存_Click()
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 '保存命令
    Forms![メインフォーム].Refresh
    DoCmd.Close
    End Sub
  5. メインフォーム上にコマンドボタンを作る。そしてクリック時のイベントプロシージャーで 作成した入力用フォームを開く。
  6. 操作はメインフォームからコマンドボタンを操作することで開始されます。なお、追加入力 用フォームにはキャンセル用のコマンドボタンも設けておきましょう。

(この項終わり)