0
단추를 사용하여 한 테이블에서 다른 테이블로 레코드를 복사 할 수있는 양식이 있습니다. 성공적으로 레코드를 복사하는 데 도움이되는 쿼리를 만들었습니다.Rs.MoveNext 및 레코드 중복의 오류
ID를 고유 ID로 수정하기로 결정했습니다. 그러나 내 기록은 계속 중복되고 rs.MoveNext에서 Run Time Error 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