Hej !
Söker med ljus och lykta efter en lösning på mitt bekymmer men inte hittat något.
Jag behöver skapa en numrering av posterna i en fråga (skulle även kunna vara en tabell). Det vore inga problem om det bara skulle vara en enkel stigande numrering, det löses med en räknare.
Mitt önskemål är att numreringen ska börja om för varje nytt värde i ett av fälten.
T ex:
Kundgrupp – Kund – Num:
X — A — 1
X — B — 2
X — C — 3
Y — D — 1
Y — E — 2
Z — F — 1
Z — G — 2
Z — H — 3
Så i fältet ”Num” vill jag få in en funktion som skapar en ny numrering för varje förändring i ”Kundgrupp”
Finns det någon SQL kod som kan skapa en sådan alternativt någon annan funktion?
Mvh // Håkan
Jag tror det är enklast att göra detta med lite kod.
’ Denna funktion tvingar fram en nummerordning som börjar på 1 för varje grupp
Function KundNumUpdateTvinga()
Dim rs As Recordset, sql$, max&, gammalKundgrupp$
sql = ”SELECT Kundnum.Kundgrupp, Kundnum.Kund, Kundnum.Num FROM Kundnum”
sql = sql & ” ORDER BY Kundnum.Kundgrupp, Kundnum.Kund;”
Set rs = CurrentDb.OpenRecordset(sql)
Do Until rs.EOF
If rs!Kundgrupp <> gammalKundgrupp Then
max = 0
gammalKundgrupp = rs!Kundgrupp
End If
max = max + 1
rs.Edit
rs!num = max
rs.Update
rs.MoveNext
Loop
rs.Close
End Function
Hej! Koden ovan är ett bra förslag. Men om du bara behöver ha numreringen i en rapport (inte i tabellen) så är det enklare att lägga in ett fält i frågan som innehåller värdet ”1” för varje post, och sedan i rapporten göra en löpande summering (running sum) över gruppen (over group). Mer om löpande summering kan man läsa här: http://office.microsoft.com/sv-se/access-help/summera-i-rapporter-HA010120854.aspx