Public changeType As String
Private Sub Form_Load()
Call updateRankOrder
End Sub
Public Sub updateRankOrder()
Dim rs As DAO.Recordset
Dim bk As String
Dim strSQL As String
strSQL = "SELECT * FROM tblEquipment WHERE [Funded] = No ORDER BY [Bin_Assigned], [Board_Rank]"
Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
Do While Not rs.EOF
rs.Edit
rs.Fields("Board_Rank") = rs.AbsolutePosition + 1
rs.Update
rs.MoveNext
Loop
End Sub
Private Sub Board_Rank_BeforeUpdate(Cancel As Integer)
If Int(Me.Board_Rank) <> Me.Board_Rank Then
MsgBox "Provide an integer"
Cancel = True
Me.Undo
End If
If Me.Board_Rank.OldValue = Me.Board_Rank.Value Then
changeType = "None"
ElseIf Me.Board_Rank.OldValue > Me.Board_Rank.Value Then
changeType = "Down"
Else
changeType = "Up"
End If
End Sub
Private Sub Board_Rank_LostFocus()
If Not changeType = "None" Then
If changeType = "Down" Then
Me.Board_Rank = Me.Board_Rank - 0.5
ElseIf changeType = "Up" Then
Me.Board_Rank = Me.Board_Rank + 0.5
End If
Me.Dirty = False
Call updateRankOrder
Me.Requery
End If
End Sub