Ok, here you go, Problem was, there wasn't an .Edit command when you were trying to Update the Scores. Now I ran this and it seemed to run OK. You "STILL NEED TO" add the Desc command for those fields that you want sorted in Descending order. I'd leave the code as is (tests all six fields for ties, instead of just the three). One other thing to check is that you have identical Field Types and Formats between the two tables for the six fields.. HTH PaulF
Public Function ReturnScore()
DoCmd.SetWarnings False
DoCmd.RunSQL ("Delete * From tblTempSortingAndScoring;"

DoCmd.RunSQL ("INSERT INTO tblTempSortingAndScoring SELECT" _
& " tblSortingAndScoring.* FROM tblSortingAndScoring;"

DoCmd.SetWarnings True
Dim db As DAO.DATABASE, rst As DAO.Recordset
Dim intValue As Variant, intLastCount As Integer
Set db = CurrentDb
Set rst = db.OpenRecordset("Select * From tblTempSortingAndScoring Order By ACDCalls;"

With rst
.MoveFirst
intValue = rst!ACDCalls
intLastCount = 1
Do While Not .EOF
.Edit
If rst!ACDCalls = intValue Then
rst!SCOREACDCalls = intLastCount
Else
rst!SCOREACDCalls = rst.AbsolutePosition + 1
intValue = rst!ACDCalls
intLastCount = rst.AbsolutePosition + 1
End If
.Update
.MoveNext
Loop
End With
Set rst = db.OpenRecordset("Select * From tblTempSortingAndScoring Order By RONA;"

With rst
.MoveFirst
intValue = rst!RONA
intLastCount = 1
Do While Not .EOF
.Edit
If rst!RONA = intValue Then
rst!SCORERONA = intLastCount
Else
rst!SCORERONA = rst.AbsolutePosition + 1
intValue = rst!RONA
intLastCount = rst.AbsolutePosition + 1
End If
.Update
.MoveNext
Loop
End With
Set rst = db.OpenRecordset("Select * From tblTempSortingAndScoring Order By AvgACDTimeMin;"

With rst
.MoveFirst
intValue = rst!AvgACDTimeMin
intLastCount = 1
Do While Not .EOF
.Edit
If rst!AvgACDTimeMin = intValue Then
rst!SCOREAvgACDTimeMin = intLastCount
Else
rst!SCOREAvgACDTimeMin = rst.AbsolutePosition + 1
intValue = rst!AvgACDTimeMin
intLastCount = rst.AbsolutePosition + 1
End If
.Update
.MoveNext
Loop
End With
Set rst = db.OpenRecordset("Select * From tblTempSortingAndScoring Order By AvgACWTimeSec;"

With rst
.MoveFirst
intValue = rst!AvgACWTimeSec
intLastCount = 1
Do While Not .EOF
.Edit
If rst!AvgACWTimeSec = intValue Then
rst!SCOREAvgACWTimeSec = intLastCount
Else
rst!SCOREAvgACWTimeSec = rst.AbsolutePosition + 1
intValue = rst!AvgACWTimeSec
intLastCount = rst.AbsolutePosition + 1
End If
.Update
.MoveNext
Loop
End With
Set rst = db.OpenRecordset("Select * From tblTempSortingAndScoring Order By PercentAvail;"

With rst
.MoveFirst
intValue = rst!PercentAvail
intLastCount = 1
Do While Not .EOF
.Edit
If rst!PercentAvail = intValue Then
rst!SCOREPercentAvail = intLastCount
Else
rst!SCOREPercentAvail = rst.AbsolutePosition + 1
intValue = rst!PercentAvail
intLastCount = rst.AbsolutePosition + 1
End If
.Update
.MoveNext
Loop
End With
Set rst = db.OpenRecordset("Select * From tblTempSortingAndScoring Order By ACDCallsPerAvailHour;"

With rst
.MoveFirst
intValue = rst!ACDCallsPerAvailHour
intLastCount = 1
Do While Not .EOF
.Edit
If rst!ACDCallsPerAvailHour = intValue Then
rst!SCOREACDCallsPerAvailHour = intLastCount
Else
rst!SCOREACDCallsPerAvailHour = rst.AbsolutePosition + 1
intValue = rst!ACDCallsPerAvailHour
intLastCount = rst.AbsolutePosition + 1
End If
.Update
.MoveNext
Loop
End With
Set rst = db.OpenRecordset("Select * From tblTempSortingAndScoring;"

With rst
.MoveFirst
Do While Not .EOF
.Edit
rst!TOTALSCORE = rst!SCOREACDCallsPerAvailHour + _
rst!SCOREPercentAvail + rst!SCOREAvgACWTimeSec + _
rst!SCOREAvgACDTimeMin + rst!SCORERONA + rst!SCOREACDCalls
.Update
.MoveNext
Loop
End With
End Function