I'm not sure I understand and won't without the tables and some data.
I'm still ........... but try this: (added lines are blue)
Code:
Option Compare Database
Option Explicit
Sub CustLookup()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim sSQL As String
Set db = CurrentDb
sSQL = "SELECT CustID, Customer, Zip"
sSQL = sSQL & " FROM DailySalesOrds"
sSQL = sSQL & " ORDER BY [Customer];"
' Debug.Print sSQL
Set rs = db.OpenRecordset(sSQL)
If rs.EOF Then
MsgBox "No Records"
Else
rs.MoveLast
rs.MoveFirst
Do
sSQL = "SELECT CustID, CustNameKey, UniqueKey"
sSQL = sSQL & " FROM InFlowUniqueCustLookup"
sSQL = sSQL & " WHERE CustID = '" & rs!CustID & "';"
' Debug.Print sSQL
Set rs2 = db.OpenRecordset(sSQL)
If Not rs2.BOF And Not rs2.EOF Then
rs2.MoveLast
rs2.MoveFirst
'we already know that rs!CustID = rs2!CustID, so check the other two fields
Do While Not rs2.EOF
If (rs.Fields("Customer") = rs2.Fields("CustNameKey")) And _
(rs.Fields("Zip") = rs2.Fields("UniqueKey")) Then
rs.Edit
rs.Fields("Customer") = rs2.Fields("InFlowCustName")
rs.Update
rs2.MoveNext
Loop
rs2.Close
End If
End If
rs.MoveNext '<<-- moved to here
Loop Until rs.EOF
End If
'Close and Cleanup
On Error Resume Next
rs.Close
rs2.Close
Set rs = Nothing
Set rs2 = Nothing
Set db = Nothing
End Sub
What are the field types for:
Customer
CustNameKey
Zip
UniqueKey
Are they all text type fields?
I think adding those fields to the SQL for rs2 might be easier.
Something like:
Code:
Option Compare Database
Option Explicit
Sub CustLookup()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim sSQL As String
Set db = CurrentDb
sSQL = "SELECT CustID, Customer, Zip"
sSQL = sSQL & " FROM DailySalesOrds"
sSQL = sSQL & " ORDER BY [Customer];"
' Debug.Print sSQL
Set rs = db.OpenRecordset(sSQL)
If rs.EOF Then
MsgBox "No Records"
Else
rs.MoveLast
rs.MoveFirst
Do
sSQL = "SELECT CustID, CustNameKey, UniqueKey"
sSQL = sSQL & " FROM InFlowUniqueCustLookup"
sSQL = sSQL & " WHERE CustID = '" & rs!CustID & "'"
sSQL = sSQL & " AND [CustNameKey] = '" & rs.Fields("Customer") & "'"
sSQL = sSQL & " AND [UniqueKey] = '" & rs.Fields("Zip") & "';"
' Debug.Print sSQL
Set rs2 = db.OpenRecordset(sSQL)
If Not rs2.BOF And Not rs2.EOF Then
rs2.MoveLast
rs2.MoveFirst
Do While Not rs2.EOF
rs.Edit
rs.Fields("Customer") = rs2.Fields("InFlowCustName")
rs.Update
rs2.MoveNext
Loop
rs2.Close
End If
End If
rs.MoveNext
Loop Until rs.EOF
End If
'Close and Cleanup
On Error Resume Next
rs.Close
rs2.Close
Set rs = Nothing
Set rs2 = Nothing
Set db = Nothing
End Sub