「For~Next」構文では、ループカウンタの変数(日付/時刻型の変数)に日付の範囲を代入することによって、○年○月○日~○年○月○日というループ処理を行うことができます。ここでは、その方法を使って、カレンダデータを保存するテーブルにある1年分の日付データを書き出す例を紹介します。
まず、次のような構造の「tblカレンダ」テーブルを作成します。

そして、次のようなプログラムを実行します。ここでは、「tblカレンダ」というテーブルに対して、2006年01月01日~2006年12月31日の範囲で、それぞれの日付・曜日・その年の何日目か・その年の第何週かを出力しています。
Dim dbs As Database
Dim rst As Recordset
Dim dtmLoop As Date
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("tblカレンダ")
With rst
For dtmLoop = #1/1/2006# To #12/31/2006#
.AddNew
!日付 = dtmLoop
!曜日 = Format$(dtmLoop, "aaa")
!通年日 = Format$(dtmLoop, "y")
!通年週 = Format$(dtmLoop, "ww")
.Update
Next dtmLoop
.Close
End With
実行結果:
 |