• 締切済み

如何したら良いのか分かりません。

Access2000/Windows2000を使用してます。 車検到来年を自動計算させようとしてます。 現在よりも小さい場合は、車検到来区分によって現在の日付以上になるように計算させるようにしたいのですが・・・ 以下の組み方ではうまく出来ません。如何したら良いのかアドバイス宜しくお願い致します。 Private Sub コマンド233_Click() Dim MyDB As DAO.Database Dim MyRS As DAO.Recordset Dim strDate As String Dim strSyakenDate As String '現在の年月日を退避しておく strDate = Format(Date, "yyyymmdd") Set MyDB = CurrentDb() Set MyRS = MyDB.OpenRecordset("基保有") Do Until strSyakenDate > strDate Select Case MyRS.Fields("車検到来区分") Case 1 MyRS.Fields("車検到来年") = MyRS.Fields("車検到来年") + 2 Case 2 MyRS.Fields("車検到来年") = MyRS.Fields("車検到来年") + 1 Case 3 MyRS.Fields("車検到来年") = MyRS.Fields("車検到来年") + 2 Case 4 MyRS.Fields("車検到来年") = MyRS.Fields("車検到来年") + 1 End Select '車検日を再算出 strSyakenDate = Format(MyRS.Fields("車検到来年"), "0000") & Format(MyRS.Fields("車月"), "00") & Format(MyRS.Fields("検日"), "00") Loop MyRS.Update MyRS.MoveNext MyRS.Close End Sub

みんなの回答

  • bobble
  • ベストアンサー率34% (111/323)
回答No.1

こんにちわ。 私も詳しい人間じゃないので通りすがりのチョッカイ位に聞いて下さい。 まず”基保有”というのは複数件あるデータでしょうか? レコードセットの一件目を処理した後に、2件目にMOVENEXTしてそのままCLOSEしてますね。 もし”基保有”が複数行あるのであれば、私ならこうします。 DO UNTIL MYRS.EOF  DO UNTIL strSyakenDate > strDate SELECT MYRS・・・・・ END SELECT STRSYAKENDATE = ・・・・ LOOP MYRS.UPDATE MYRS.MOVENEXT LOOP MYRS.CLOSE とこんな感じです。ようは外のLOOPでレコードをまわし、中のLOOPで到来年を検索 するって感じですかね。 参考になればいいのですが・・・

関連するQ&A