Autoincrementation a chaque changement de valeur d'un champ
Résolu
rman13
Messages postés
37
Statut
Membre
-
rman13 Messages postés 37 Statut Membre -
rman13 Messages postés 37 Statut Membre -
Bonjour,
bonne année a tous les forumers,
quelqu'un aurait-il une idée comment rajouter un champ autoincrémenté en VBA à chaque changement de code placement?
ci après un petit bout de ma table:
Placement champ_auto
A3
A3
A3
A3
A3
B2
A3
A9
A3
H1
H1
H1
A1
A3
A3
A7
V2
H1
A2
A9
B3
B1
V2
H1
V1
A3
H1
D1
D1
D1
D1
D1
A3
A3
B2
A2
M2
A3
V1
A1
M1
I2
ce que j'aimerais avoir c'est qu'à chaque changement de code placement le nombre incrémenté va revenir à 1 et s'il trouve un code qui existait déjà dans les lignes précédentes il va rajouter la valeur de champ_auto correspondant à la dernière code par 1 et ainsi de suite.
Bien sûr ma table contient 9000 lignes d'où la nécessité d'adopter de VBA
Merci a vous
en attendant votre réponse impatiemment
bonne année a tous les forumers,
quelqu'un aurait-il une idée comment rajouter un champ autoincrémenté en VBA à chaque changement de code placement?
ci après un petit bout de ma table:
Placement champ_auto
A3
A3
A3
A3
A3
B2
A3
A9
A3
H1
H1
H1
A1
A3
A3
A7
V2
H1
A2
A9
B3
B1
V2
H1
V1
A3
H1
D1
D1
D1
D1
D1
A3
A3
B2
A2
M2
A3
V1
A1
M1
I2
ce que j'aimerais avoir c'est qu'à chaque changement de code placement le nombre incrémenté va revenir à 1 et s'il trouve un code qui existait déjà dans les lignes précédentes il va rajouter la valeur de champ_auto correspondant à la dernière code par 1 et ainsi de suite.
Bien sûr ma table contient 9000 lignes d'où la nécessité d'adopter de VBA
Merci a vous
en attendant votre réponse impatiemment
A voir également:
- Autoincrementation a chaque changement de valeur d'un champ
- Changer de dns - Guide
- Changement d'heure - Guide
- Changement d'écriture facebook - Guide
- Changement clavier azerty - Guide
- Changement carte graphique - Guide
1 réponse
bonjour,
je te suggère de remplir champ_auto dans ton exemple, ce sera plus clair.
tu veux peut-être simplement dans ton champ_auto avoir un compteur des occurrences de la valeur en Placement?
ta table contient-t-elle une autre colonne qui peut servir de critère de tri?
ou bien faut-il obligatoirement se baser uniquement sur l'ordre d’apparition dans la table.
je te suggère de remplir champ_auto dans ton exemple, ce sera plus clair.
tu veux peut-être simplement dans ton champ_auto avoir un compteur des occurrences de la valeur en Placement?
ta table contient-t-elle une autre colonne qui peut servir de critère de tri?
ou bien faut-il obligatoirement se baser uniquement sur l'ordre d’apparition dans la table.
Merci pour ta réponse. Ce que je veux avoir c'est comme ce qui est écrit en bas.En effet, il faut uniquement se baser sur l'ordre d'apparition dans la table.
Placement champ_auto
A3 1
A3 2
A3 3
A3 4
A3 5
B2 1
A3 6
A9 1
A3 7
H1
H1
H1
A1
A3
A3
A7
V2
H1
A2
A9
B3
B1
V2
H1
V1
A3
H1
D1
D1
D1
D1
D1
A3
A3
B2
A2
M2
A3
V1
A1
M1
I2
Bien à toi
Sub BImp()
maTable = "pays"
monChampEnum = "placement"
nom = "NAME"
Dim i As Long
Dim v As Variant
Dim rs As Recordset
On Error Resume Next
DoCmd.RunSQL "ALTER TABLE [" & maTable & "] DROP COLUMN increm"
DoCmd.RunSQL "ALTER TABLE [" & maTable & "] ADD COLUMN increm INTEGER"
On Error GoTo 0
Set rs = CurrentDb.OpenRecordset("SELECT * FROM [" & maTable & "] where Enservice=-1 ORDER BY [" & monChampEnum & "], [" & nom & "] ")
i = 1
If Not rs.EOF Then v = rs.Fields(monChampEnum)
While Not rs.EOF
If rs.Fields(monChampEnum) <> v Then
v = rs.Fields(monChampEnum)
i = 1
End If
rs.Edit
rs![increm] = i
rs.Update
i = i + 1
rs.MoveNext
Wend
End Sub
PS: Je ne me souvient plus d'où j'ai trouver le code principal