Rs.MoveNext&中的错误重复记录

时间:2016-12-30 03:39:57

标签: duplicates ms-access-2013 recordset

我有一个表单,允许我使用按钮将记录从一个表复制到另一个表。我已经成功创建了一个查询,可以帮助我复制记录。

我决定将ID修改为我自己的唯一ID。但是,我的记录一直在重复,我在rs.MoveNext上一直收到运行时错误3071。

我哪里错了?

Private Sub Save_Click()

Dim rs As Recordset
Dim sql As String
Dim lastdate As String
Dim lastyear As Double
Dim lastid As String
Dim currentid As String
Dim a As Integer

sql = "select top 1 * from 2_WIP order by Date_Recorded DESC"
Set rs = CurrentDb.OpenRecordset(sql)

If rs.EOF Then
    lastdate = "01/1/1990"
    lastyear = 1990
    lastid = 0
Else
    lastdate = DateValue(rs!Date_Recorded)
    lastyear = Year(rs!Date_Recorded)
    lastid = Val(Mid(rs!RecordID, 6))
End If

sql = "select * from 1_Daily_Entry where datevalue(Date_Recorded)>= '" & lastdate & "' and year(Date_Recorded) >= '" & lastyear & "';"
Set rs = CurrentDb.OpenRecordset(sql)

Do While Not rs.EOF
    If DateValue(rs!Date_Recorded) = lastdate Then
            a = Year(rs!Date_Recorded)
                If (a = lastyear) Then
                    lastid = lastid + 1
                Else
                    lastid = 1
                    lastyear = a
                End If
                    currentid = a & "_" & lastid
                    If rs!S1_Good_Count = 0 Then
                        DoCmd.Close
                    ElseIf rs!S2_Good_Count = 0 Then
                        DoCmd.Close
                    ElseIf rs!S3_Good_Count = 0 Then
                        DoCmd.Close
                    Else
                        sql = "insert into 2_WIP (RecordID, Date_Recorded, Product, S1_Good_Count, S2_Good_Count, S3_Good_Count) values ('" & currentid & "', '" & rs!Date_Recorded & "', '" & rs!Product & "', '" & rs!S1_Good_Count & "', '" & rs!S2_Good_Count & "', '" & rs!S3_Good_Count & "')"
                        CurrentDb.Execute (sql)
                        DoCmd.Close
                    End If

    Else
        a = Year(rs!Date_Recorded)
        If (a = lastyear) Then
            lastid = lastid + 1
        Else
            lastid = 1
            lastyear = a
        End If
            currentid = a & "_" & lastid
            If rs!S1_Good_Count = 0 Then
                DoCmd.Close
            ElseIf rs!S2_Good_Count = 0 Then
                DoCmd.Close

             ElseIf rs!S3_Good_Count = 0 Then
                DoCmd.Close
             Else
                sql = "insert into 2_WIP (RecordID, Date_Recorded, Product, S1_Good_Count, S2_Good_Count, S3_Good_Count) values ('" & currentid & "', '" & rs!Date_Recorded & "', '" & rs!Product & "', '" & rs!S1_Good_Count & "', '" & rs!S2_Good_Count & "', '" & rs!S3_Good_Count & "')"
                CurrentDb.Execute (sql)
                DoCmd.Close
            End If
        End If

rs.MoveNext *error keeps highlighting at this line*
Loop

End Sub

1 个答案:

答案 0 :(得分:0)

为那些与我有类似问题的人找到了解决方案。

Link for Answer to Question