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
Dim rstTr1 As Recordset
Set rstTr = CurrentDb.OpenRecordset("SELECT matable.numusers,
matable.numacte, matable.numauto From matable;")
With rstTr
If Not .BOF Then
.MoveFirst
Do Until .EOF
Set rstTr1 = CurrentDb.OpenRecordset("Select * from matable
Where numacte = clng('" & .Fields("numacte") & "');")
With rstTr1
.Move 20
Do Until .EOF
.Delete
.MoveNext
Loop
.Close: Set rstTr1 = Nothing
End With
.MoveNext
Loop
.Close: Set rstTr = Nothing
End If
End With
MsgBox "ok"
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
david
salut,
1° - ton premier recordset n'a pas besoin de toutes les infos : juste du NumActe Réduits donc avec : SELECT DISTINCT numActe FROM maTable
2° - pour supprimer, tu peux directement faire une instruction SQL : DELETE * FROM maTable WHERE numAuto not In (SELECT TOP 3 numAuto FROM maTable WHERE numActe=...)
On a donc : 1. nadis 3 jan 09:23 afficher les options
Groupes de discussion : microsoft.public.fr.vb De : "nadis" - Rechercher les messages de cet auteur Date : Tue, 3 Jan 2006 00:23:02 -0800 Local : Mar 3 jan 2006 09:23 Objet : access table vba, maximum 3 lignes Répondre | Répondre à l'auteur | Transférer | Imprimer | Message individuel | Afficher l'original | Signaler un cas d'utilisation abusive
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
c'est plus court et plus propre... A+
salut,
1° - ton premier recordset n'a pas besoin de toutes les infos : juste
du NumActe
Réduits donc avec : SELECT DISTINCT numActe FROM maTable
2° - pour supprimer, tu peux directement faire une instruction SQL :
DELETE * FROM maTable WHERE numAuto not In
(SELECT TOP 3 numAuto FROM maTable WHERE numActe=...)
On a donc :
1. nadis
3 jan 09:23 afficher les options
Groupes de discussion : microsoft.public.fr.vb
De : "nadis" <n...@discussions.microsoft.com> - Rechercher les messages
de cet auteur
Date : Tue, 3 Jan 2006 00:23:02 -0800
Local : Mar 3 jan 2006 09:23
Objet : access table vba, maximum 3 lignes
Répondre | Répondre à l'auteur | Transférer | Imprimer | Message
individuel | Afficher l'original | Signaler un cas d'utilisation
abusive
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
1° - ton premier recordset n'a pas besoin de toutes les infos : juste du NumActe Réduits donc avec : SELECT DISTINCT numActe FROM maTable
2° - pour supprimer, tu peux directement faire une instruction SQL : DELETE * FROM maTable WHERE numAuto not In (SELECT TOP 3 numAuto FROM maTable WHERE numActe=...)
On a donc : 1. nadis 3 jan 09:23 afficher les options
Groupes de discussion : microsoft.public.fr.vb De : "nadis" - Rechercher les messages de cet auteur Date : Tue, 3 Jan 2006 00:23:02 -0800 Local : Mar 3 jan 2006 09:23 Objet : access table vba, maximum 3 lignes Répondre | Répondre à l'auteur | Transférer | Imprimer | Message individuel | Afficher l'original | Signaler un cas d'utilisation abusive
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
c'est plus court et plus propre... A+
nadis
merci de ton aide!!! y a une erreur de syntaxe mais j'arrive pas a là trouver
"david" a écrit :
salut,
1° - ton premier recordset n'a pas besoin de toutes les infos : juste du NumActe Réduits donc avec : SELECT DISTINCT numActe FROM maTable
2° - pour supprimer, tu peux directement faire une instruction SQL : DELETE * FROM maTable WHERE numAuto not In (SELECT TOP 3 numAuto FROM maTable WHERE numActe=...)
On a donc : 1. nadis 3 jan 09:23 afficher les options
Groupes de discussion : microsoft.public.fr.vb De : "nadis" - Rechercher les messages de cet auteur Date : Tue, 3 Jan 2006 00:23:02 -0800 Local : Mar 3 jan 2006 09:23 Objet : access table vba, maximum 3 lignes Répondre | Répondre à l'auteur | Transférer | Imprimer | Message individuel | Afficher l'original | Signaler un cas d'utilisation abusive
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
c'est plus court et plus propre... A+
merci de ton aide!!! y a une erreur de syntaxe mais j'arrive pas a là trouver
"david" a écrit :
salut,
1° - ton premier recordset n'a pas besoin de toutes les infos : juste
du NumActe
Réduits donc avec : SELECT DISTINCT numActe FROM maTable
2° - pour supprimer, tu peux directement faire une instruction SQL :
DELETE * FROM maTable WHERE numAuto not In
(SELECT TOP 3 numAuto FROM maTable WHERE numActe=...)
On a donc :
1. nadis
3 jan 09:23 afficher les options
Groupes de discussion : microsoft.public.fr.vb
De : "nadis" <n...@discussions.microsoft.com> - Rechercher les messages
de cet auteur
Date : Tue, 3 Jan 2006 00:23:02 -0800
Local : Mar 3 jan 2006 09:23
Objet : access table vba, maximum 3 lignes
Répondre | Répondre à l'auteur | Transférer | Imprimer | Message
individuel | Afficher l'original | Signaler un cas d'utilisation
abusive
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
merci de ton aide!!! y a une erreur de syntaxe mais j'arrive pas a là trouver
"david" a écrit :
salut,
1° - ton premier recordset n'a pas besoin de toutes les infos : juste du NumActe Réduits donc avec : SELECT DISTINCT numActe FROM maTable
2° - pour supprimer, tu peux directement faire une instruction SQL : DELETE * FROM maTable WHERE numAuto not In (SELECT TOP 3 numAuto FROM maTable WHERE numActe=...)
On a donc : 1. nadis 3 jan 09:23 afficher les options
Groupes de discussion : microsoft.public.fr.vb De : "nadis" - Rechercher les messages de cet auteur Date : Tue, 3 Jan 2006 00:23:02 -0800 Local : Mar 3 jan 2006 09:23 Objet : access table vba, maximum 3 lignes Répondre | Répondre à l'auteur | Transférer | Imprimer | Message individuel | Afficher l'original | Signaler un cas d'utilisation abusive
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