Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2016)
日付期間から毎月1レコードを一括登録する
投稿日時: 20/04/04 14:21:39
投稿者: hiro_h

可能かどうか教えてください。
 
フォームの日付期間、開始月〜終了月までを判断し、この期間 毎月1レコードずつを登録したいと考えています。
 
フォームメイン
例)開始月2020年1月(開始月テキストボックス) 終了月2020年10月(終了月テキストボックス)
登録ボタン
 
登録ボタン押下時に処理したい内容
日付      内容
2020年1月1日  A
2020年2月1日  B
2020年3月1日  A



2020年10月1日 A
 
-----
普通に登録する時のレコード登録のVBAは理解しております。
Dim db As DAO.Database
Dim rs As DAO.Recordset
 
 Set db = CurrentDb
 Set rs = db.OpenRecordset("登録したいテーブル")
     
  rs.AddNew
  rs![日付] = ME![開始月テキストボックス]
  rs![内容] = Me![終了月テキストボックス]
  rs.Update
 
 rs.Close: Set rs = Nothing
 db.Close: Set db = Nothing

回答
投稿日時: 20/04/04 23:33:43
投稿者: hatena
投稿者のウェブサイトに移動

下記でどうでしょうか。
 

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
 
    Set db = CurrentDb
    Set rs = db.OpenRecordset("登録したいテーブル")
     
    Dim BeginDate As Date
    BeginDate = CDate(Me!開始月テキストボックス) '"2020年1月"
 
    Dim i As Long, n As Long
    n = DateDiff("m", BeginDate, CDate(CDate("2020年10月"))
    For i = 0 To n
        rs.AddNew
        rs!日付.Value = DateAdd("m", i, BeginDate)
        rs!内容.Value = IIf(i Mod 2 = 0, "A", "B") '質問では不明なので適当 
        rs.Update
    Next
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing

投稿日時: 20/04/05 10:47:00
投稿者: hiro_h

hatena 様
 
ありがとうございます!
無事、思った事ができました。