OK sorry to come back to this one again but I have made it work in Excel but can't even begin to think of the code for Access. Here is the Excel code which should explain what I am trying to do. It is a huge loop that goes through every single record until it reaches the end (bascially column A has the old priority and column B has the new priority (but left blank if no change):
Sub UP()
Dim p As Integer
Dim newp As Integer
Dim news As Integer
Dim count As Integer
With Sheets("Sheet1")
count = .Cells(1, 6)
For n = 2 To count + 1
p = .Cells(n, 1)
newp = .Cells(n, 2)
If newp < 1 Then
news = p - 1
For l = 2 To count + 1
If .Cells(l, 2) = news Then
news = news + 1
l = 2
End If
Next l
.Cells(n, 2) = news
End If
Next n
End With
End Sub