Det er en af relationsdatabasens principper at poster er en mængde - dermed skal sortering angives explicit - vha. feltindhold. Ofte er det også tilfældet - nummerering er funktionalitet af værdien i ethvert, med tal sammenligneligt, unikt, felt.
udtrykket DCount("id","TestTable","id <= " & [id])) er herfra:
http://www.vb123.com/toolshed/07_access/countercolumn.htmDet er nok den sikreste måde - men, fordi alle poster gennemløbes for hver eneste post, kan jeg ikke lade være med at vise princippet i (lazy initialization) caching - IKKE TESTET
Public numposObj As Collection
Function numpos(tableN,idFld$)
If numposObj Is Nothing Then
Set numposObj = New Collection
With CurrentDb.OpenRecordset(tableN, dbOpenSnapshot): While Not .EOF
numposObj.Add .AbsolutePosition, CStr(!id)
.MoveNext: Wend: End With: End If
numpos = numposObj(idFld) + 1
End Function
Og så skal huske at indkapsle i noget clearing: set numposOb=nothing - ellers læses der måske pludselig i en gammel cache