IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Macro Suppression historique a partir de l'année en cours [AC-2003]


Sujet :

IHM

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 92
    Points : 90
    Points
    90
    Par défaut Macro Suppression historique a partir de l'année en cours
    Bonjour,
    Je voudrais savoir s'il était possible de supprimer les enregistrement d'une table en fonction de l'année en cours. Par exemple aujourd'hui supprimer tous les enregistrements vieux de deux an c'est a dire de 2010 et donc l'année prochaine la macro supprimera tous les enregistrement de 2011.
    J'ai essayé avec une requete suppression en passant par un code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenQuery "RQ_Sup_Histo"
    mais avec une condition [Quel année ?] donc je suis a chaque fois obligée de préciser l'année.
    Avec la nouvelle macro je voudrais par exemple supprimer aujourd'hui tous les enregistrements datant de deux ans c'est a dire de 2010 et donc l'année prochaine la macro supprimera tous les enregistrement de 2011.
    Merci a vous pour votre aide ...

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Si tu veux que ce soit totalement automatique mettre dans la requettte dans la colonne de ta date la condition suivante :

    <=DateAd("aaaa";-2;Date())

    Cela va sélectionner tous les enregistrements vieux de plus de 2 ans par rapport à la date courante.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut makila64 et marot_r

    grillé par marot_r ^^ mais:
    NomChampDate? pas date()? ;P

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.runsql "DELETE * FROM maTable WHERE monChampDate<dateadd("yyyy",-2,date())"

  4. #4
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 92
    Points : 90
    Points
    90
    Par défaut
    Merci à vous deux je vais essayer de combiner vos réponse.
    J'ai voulu tester un nouveau code le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub Commande59_Click()
    If Val(Me.Annee) >= (Year(Date) - 1) Then
       MsgBox "Impossible de supprimer les années supérieure ou égale à " & Year(Date) - 1 & "  de la base", vbCritical
       Exit Sub
    End If
    Wan = Me.Annee
    If MsgBox("Confirmer la suppression des Datas historique de  l'année " & Wan, vbQuestion + vbYesNo) = vbYes Then
        DoCmd.OpenQuery "RQ_Sup_Histo", acViewNormal, acEdit
     
        MsgBox "Données supprimées", vbInformation
    End If
    End Sub
     
    Private Sub Form_Current()
    Me.Annee = Year(Date) - 2
    End Sub
    Sauf que la requete supprime tous les enregistrement et non pas les enregistrement de l'année saisie dans le Me.Annee

  5. #5
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 92
    Points : 90
    Points
    90
    Par défaut
    Merci a vous pour votre aide en faite il fallai juste ajouter dans la requete dans le champs annee ceci :
    [Forms]![Fr_Menu]![Annee]
    Thks.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/08/2006, 15h54
  2. [VBA-E] Suppression de lignes à partir d'un point particulier
    Par coxi77 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/07/2006, 13h22
  3. Historique des ventes sur 3 années
    Par boux2 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 19/07/2006, 09h18
  4. suppression enregistrement a partir d une liste
    Par fsautejeau dans le forum Access
    Réponses: 9
    Dernier message: 05/07/2006, 15h28
  5. Réponses: 4
    Dernier message: 26/01/2006, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo