Microsoft Access 掲示板

登録画面の構成に関して / 13

15 コメント
views
5 フォロー
13
hatena 2021/05/14 (金) 13:07:43 修正

まず、Forループ内でカウンター変数を変更するのはご法度です。Step を使いましょう。

データ追加は、サブフォームのレコードセットに対してAddNewで追加するようにします。
Withでサブフォームのレコードセットを参照するようしてますのて、
Me.T_月額マスタのサブフォーム1.Formは不要です。

![契約番号サブ] 等の[]内はコントロール名ではなく、フィールド名にしてください。

テーブルのフィールド名が「契約番号サブ」ならいいですが、「契約番号」なら、
![契約番号]
です。

あと、最後に .Update が必要です。

'請求月数の分だけ、サブフォームにレコードを追加する
Dim i As Long, s As Long
With Me.T_月額マスタのサブフォーム1.Form.Recordset
  '「ごとに請求」のコンボボックスで、以下の値が選択されている場合
  If Me.入金月頻度 = "2ヶ月" Then
      s = 2
  ElseIf Me.入金月頻度 = "半年" Then
      s = 6
  ElseIf Me.入金月頻度 = "1年" Then
      s = 12
  End If

  For i = 0 To 月数 Step s
      .AddNew
      ![契約番号] = Me.txt契約番号
      ![月額] = Me.月額
      ![入金月] = DateAdd("m", i, 開始年月)
      ![税率] = Me.税率
      ![税の処理] = Me.税の処理
      .Update
  Next
End With

リンクフィールドの設定は問題ないと思います。

通報 ...