Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3527 / 9994 ←次へ | 前へ→

【9726】findfirstの使い方
質問  メイ子  - 07/8/2(木) 12:45 -

引用なし
パスワード
   こんにちは、メイ子と申します。
「休日一覧基本」というテーブルがあって、日付フィールドには1年の祝日が入力されています。その月と日を取得して、来年の祝日データを「休日一覧」というテーブルに追加していきたいのです。
来年は5月4日が日曜日と重なるので、5月6日が振替休日になるということも含めて、下記のようなコードを作成いたしました。
RS.FindFirst (5月4日のところ)を通った後、「休日一覧基本」の1つめのデータに戻ってしまい、そのまま無限ループ状態になります。
どこを直したらよろしいでしょうか?どなたかご教示お願いいたします。


Private Sub 更新_Click()
  Dim shukujitsu As Date
  Dim db As DAO.Database
  Dim RS As DAO.Recordset
  Dim RS2 As DAO.Recordset
  Dim strSQL As String
    strSQL = "SELECT * FROM 休日一覧基本 "
    Set db = CurrentDb()
    Set RS = db.OpenRecordset(strSQL, dbOpenDynaset)
    Set RS2 = db.OpenRecordset("休日一覧", dbOpenTable)

  Do Until RS.EOF
    shukujitsu = RS!休日
    RS2.AddNew
    If Weekday(Year(Date) + 1 & "/" & Month(shukujitsu) & "/" & _
      Day(shukujitsu)) <> 1 Then
      RS2!休日 = Year(Date) + 1 & "/" & Month(shukujitsu) & _
      "/" & Day(shukujitsu)
    Else
      RS.FindFirst "休日= #" & DateSerial(Year(Date) + 1, _
      Month(shukujitsu), Day(shukujitsu)) + 1 & "#"
      If RS.NoMatch Then
        RS2!休日 = DateSerial(Year(Date) + 1, Month(shukujitsu),_
        Day(shukujitsu)) + 1
      Else
        RS2!休日 = DateSerial(Year(Date) + 1, Month(shukujitsu),_
        Day(shukujitsu)) + 2
      End If
    End If
    RS2.Update
    RS.MoveNext
  Loop

  RS.Close
  RS2.Close
  Set RS = Nothing
  Set RS2 = Nothing

End Sub

678 hits

【9726】findfirstの使い方 メイ子 07/8/2(木) 12:45 質問[未読]
【9727】Re:findfirstの使い方 ちょっちネ 07/8/2(木) 17:10 発言[未読]
【9731】Re:findfirstの使い方 メイ子 07/8/3(金) 18:46 質問[未読]
【9735】Re:findfirstの使い方 hatena 07/8/4(土) 3:15 回答[未読]
【9737】Re:findfirstの使い方 メイ子 07/8/4(土) 20:26 お礼[未読]

3527 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free