サブフォームにレコードを追加する方法

TIPSメインへ戻る

概要説明

メインフォームにリンクしているサブフォームに新しいレコードを追加する手順です。
※サブフォームを持つフォームの作り方は次のサイトをご覧ください
 https://fk-plaza.jp/acs/kiso_b/Manabu_MakeFormSub.htm
  フォームが編集不可になっている場合はサブフォームへの追加や編集ができません。 そこで追加入力用フォームを使うことになるが、追加したレコードがメインフォームのレコードにリンクされなければ なりません。追加フォームのリンクフィールドがメインフォームにリンクできるように設定しましょう。

作成手順

  1. 入力用フォームの作成
      ア.サブフォーム[SF_連絡記録一覧]と同じレコードソースにした単票式のフォームを作成します。(上図)
    イ.リンクしている[名簿番号]コントロールの規定値のプロパティにメインフォーム[F_名簿メイン]の 主キーとなっているコントロールの値を指定する。
     (例) =[Forms]![F_名簿メイン]![番号]
     
    ウ.データ入力用プロパティを「はい」に設定

    エ.フォーム上の「登録」コマンドボタンにプロシージャを記述します。

    Private Sub cmd_登録_Click()
    ' データを保存してフォームを閉じます。
    DoCmd.Close
    ' メインフォーム上のサブフォームを更新します
    Forms!F_名簿メイン!SF_連絡記録一覧.Form.Requery

    End Sub
  2. メインフォーム上にコマンドボタンを作成する。

    ア.コマンドボタンに作成した「連絡記録入力」ボタンにプロシージャを設定する。

    Private Sub cmd_連絡記録入力_Click()

    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "F_連絡記録入力"
    DoCmd.OpenForm stDocName, , , stLinkCriteria, acFormAdd, , "追加"

    End Sub
  3. 動作させてみる。
    ア.コマンドボタンで入力用フォームを開く。
    イ.リンクしているコントロールにはメインフォームと同じ値が表示されている。

    ウ.フォームに必要な入力を行い。フォームを閉じればレコードの追加が完了です。

(この項終わり)