Hi I have used something simple on the form when I start up and is based on the number of records being displayed. You can easily modify it to form a module etc. In my code I also resize the form depending on the number of records I want to display. It then sets to top of the form the actual records and then moves the record selector to last row but you could not have it in if you want.
RunCommand acCmdRecordsGoToLast 'goto last record to set it up
'resize form to show last few records
Select Case Me.RecordsetClone.RecordCount
Case 0 To 5: 'up to 5 records to show
DoCmd.MoveSize , , 18500, 8500
Case 6 To 10: ' between 6 and 10 records to show
DoCmd.MoveSize , , 18500, 8500
Case 11 To 50:
DoCmd.MoveSize , 1000, 18500, 11000
Me.SelTop = Me.RecordsetClone.RecordCount - medium_top
RunCommand acCmdRecordsGoToLast
Case 51 To 80:
DoCmd.MoveSize , 1000, 18500, 11000
Me.SelTop = Me.RecordsetClone.RecordCount - Large_top
RunCommand acCmdRecordsGoToLast
Case Is > 80:
DoCmd.MoveSize , 1000, 18500, 11000
Me.SelTop = Me.RecordsetClone.RecordCount - extra_large_top
RunCommand acCmdRecordsGoToLast
Case Else
DoCmd.MoveSize , 500, 18500, 13500
Me.SelTop = Me.RecordsetClone.RecordCount - medium_top
RunCommand acCmdRecordsGoToLast
End Select