OVH Cloud OVH Cloud

Access et VBA

1 réponse
Avatar
nadis
Bonjour a tous,

dans une table access "matable" j'ai les champs suivants numusers=numérique,
numacte= numérique et NumAuto= numéro auto ...

je souhaité garder que les 3 premiers enregistrements, en fonction de
numacte j'utilise ce bout de code, mais cela ne marche pas merci de votre
aide.



Private Sub Commande5_Click()
Dim rstTr As Recordset

Set rstTr = CurrentDb.OpenRecordset("SELECT DISTINCT numacte From
matable;")
Do Until rstTr.EOF
doCmd.runSQL "DELETE * FROM maTable WHERE numAuto Not In
(SELECT TOP 3 numAuto FROM maTable WHERE numActe=" +
cstr(rstTr.Fields("numActe"))
rstTr.MoveNext
Loop
rstTr.Close: Set rstTr = Nothing
End Sub

table initiale: TABLE
FINI
numauto numusers numacte numauto numusers numacte
1 1 1 1 1
1
2 1 2 2 1
2
3 1 2 3 1
2
4 1 2 4 1
2
5 1 2 6 1
10
6 1 10 7 2
0
7 2 0 8 2
0
8 2 0 9 2
0
9 2 0
10 2 0

MERCI DE VOTRE AIDE

1 réponse

Avatar
david
salut,

le résultat obtenu me semble être cohérent avec ta demande !
Puisque tu as ça :
table initiale:
TABLE FINI
numauto numusers numacte numauto numusers numacte
1 1 1 1
1 1
2 1 2 2
1 2
3 1 2 3
1 2
4 1 2 4
1 2
5 1 2 6
1 10
6 1 10 7
2 0
7 2 0 8
2 0
8 2 0 9
2 0
9 2 0
10 2 0

Pour chaque numActe, tu gardes bien les 3 premières valeurs (ou moins
s'il n'y en a pas 3) classées par numAuto, puisqu'aucun ordre de tri
n'est précisé, il sagit de l'ordre de création.
où est le problème ?
David, A+