Potrzebowałem aby Access sam przeliczał mi ilość rekordów w tabeli/formularzu, z racji tego, że dość często występowała potrzeba kasowania nadmiarowych rekordów napisałem taki krótki kod aby Access sam za mnie:
Private Sub Form_Open(Cancel As Integer)
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Dim X As Long
Dim db As Database
Set db = CurrentDb
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset("Rejestr Kwerend")
rs.MoveFirst
X = 1
While Not rs.EOF
rs.Edit
rs.Fields("lp") = X
rs.Update
rs.MoveNext
X = X + 1
Wend
Do pewnego momentu wszystko działa jak należy, ale po jakimś czasie pojawia się problem, że powyższa autonumeracja płata figle i zamiast dodawać kolejną liczbę np. jest wpisanych 50 rekordów dodaje nowy i zamiast 51 pozycji wyskakuje, że teraz będzie ponownie przeliczał od 26, nie kasuje wpisu nr 26 ale przesuwa go na pozycję 27. Takie wepchanie się w kolejkę. Nie bardzo wiem jak to porpawić