|
いつもお世話になります。
自力で調べたのですが、解決できなかったので、こちらに投稿します。
よろしくお願いします。
計算期間起:2008/4/1
計算期間至:2009/3/31
番号:1
年度:20
フォーム上のこのデータをもとに、ワークテーブルにデータを書込むようにしたいのですが・・・。
データを書き込むワークテーブルは 年度、番号、月4、月5、・・・、月3のフィールドで構成されています。
計算期間起の月の末日が計算期間至の1日後より前ならば月4に1を書込む。
1ずつ月を足していき、n月の末日が計算期間内であれば、フィールド『月n』に1を書き込む。n月が計算期間至の翌日の月と同月であれば終了。
上の条件だと次のようなデータができあがる予定です。
年度 番号 月4 月5 月6 〜 月3
20 1 1 1 1 〜 1
で、次のようなコードを書いてみました。
データを追加するワークテーブル(rs1)にはもともとデータがないので、i=1のときはレコードを追加し、それ以外のときはレコードを編集するとしているのですが、i=2のときに、データがないとエラーになります。このコードではi=1のときにレコードは追加されてないのでしょうか??見た目は追加されたようになっているのですが。。
解決方法があればご教示ください。
どうぞよろしくお願いします。
tuki_ki = Val(Format(Me!計算期間起, "m"))
tuki_si = Val(Format(Me!計算期間至 + 1, "m"))
nendo= Me!年度
bangou = Me!番号
For i = 1 To 12
tuki = "月" & tuki_ki
Dim myLooP As Long
For myLooP = 0 To rs1.Fields.Count - 1
If rs1(myLooP).Name = tuki Then
If i = 1 Then
rs1.AddNew
rs1(myLooP) = 1
rs1!年度 = nendo
rs1!番号 = bangou
rs1.Update
Else
rs1.Edit ←ここで、カレントレコードがないとエラーが出る。
rs1(myLooP) = 1
rs1.Update
End If
Exit For
End If
Next myLooP
tuki_ki = tuki_ki + 1
If tuki_ki > 12 Then
tuki_ki = tuki_ki - 12
End If
If tuki_ki = tuki_si Then
Exit For
End If
Next i
|
|