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

VBA Access Discussion :

Archivage d'enregistrements d'une année donnée


Sujet :

VBA Access

  1. #1
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut Archivage d'enregistrements d'une année donnée
    Bonjour,
    Je voudrais archiver les enregistrements d'une table dans une table archive d'une année entrée par un utilisateur.
    J'arrive à supprimer les enregistrements de l'année en question mais l'archivage se fait sur toutes les années.
    Est ce que vous pourriez me dire quelle méthode utiliser parce que je ne vois pas comment faire ?
    Juste une méthode sera suffisante, je peux chercher c'est pas un problème.

    Voici mon code :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Sub Annuelle()
     
    'on veut créer une macro qui archive tous les ans les enregistrements
     
    Dim a%, année%
     
    'l'utilisateur entre l'année qu'il veut archiver
     
    a% = InputBox("De quelle année sont les données que vous souhaitez exporter ?", "Choix de l'année", "écrire ici")
     
    'on récupère l'année en cours
     
    année% = Year(Now)
     
    'on vérifie si l'année entrée est bien possible
     
        If ((a% < 1970) Or (a% > année%)) Then
     
            MsgBox ("Ce n'est pas possible !!!")
     
        'l'utilisateur ne peut pas archiver tant que l'année en cours n'est pas finie
     
        ElseIf (a% = année%) Then
     
            MsgBox ("L'année " & année% & " n'est pas encore finie!!!")
     
        Else
     
        'on copie la table dans Access
     
            DoCmd.CopyObject "", "ARRET_Archive_" & a%, acTable, "ARRET2"
     
        'on veut supprimer les enregistrements de l'année entrée par l'utilisateur
     
            'on définit la base de données
     
            Dim db As DAO.Database
     
            Set db = OpenDatabase("S:\DI.VE.QS\DIVE_EX_QDS\access\arret_mensuel.mdb")
     
            'on exécute la requète SQL
     
            db.Execute "DELETE FROM ARRET2 WHERE Année = " & a% & ";"
     
            Debug.Print "Records affected = " & db.RecordsAffected
     
            'on ferme la base de données
     
            db.Close
     
        End If
     
    End Sub
    Merci beaucoup...
    ~ Lola ~

  2. #2
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,
    ...l'archivage se fait sur toutes les années.
    Pour ne "sauvegarder" que l'année choisie, il faut que tu crée une requête qui ne sélectionnera que l'année choisi par l'utilisateur.
    Ici tu trouveras un début de réponse:

    http://www.developpez.net/forums/sho...ight=archivage

    Par la même occasion, pense à faire des recherches sur les anciens posts..
    Fonction "Recherche" située dans le bandeau en haut de page.

    Bonne continuation...
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  3. #3
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     DoCmd.RunSQL "SELECT ARRET2.* INTO [ARRET_Archive_" & annee & "] FROM [ARRET2] WHERE (((ARRET2.Annee)=" & annee & "));"

  4. #4
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut Recheche
    Merci de m'avoir répondu, je regarde ça et j'essaye...
    ~ Lola ~

  5. #5
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut Ca marche
    Merci beaucoup de m'avoir aidée, maintenant ca marche...
    ~ Lola ~

  6. #6
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut Le code
    Voilà le code, ca peut aider si des personnes ont le même problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'on copie les enregistrements de l'année dans une table archive
     
    DoCmd.RunSQL "SELECT * INTO [ARRET_Archive_" & a% & "] FROM ARRET2 WHERE Année = " & a% & ";"
    Merci encore à tous ceux qui m'ont aidée...
    ~ Lola ~

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

Discussions similaires

  1. [Toutes versions] Obtenir une liste des jours fériés pour une année donnée
    Par metallica2 dans le forum Contribuez
    Réponses: 1
    Dernier message: 20/02/2014, 12h29
  2. [MySQL] Supprimer enregistrement a une date donnée
    Par chris52 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/05/2012, 11h53
  3. afficher les enregistrment d'une année donnée
    Par kroma23 dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/01/2009, 16h29
  4. Récupérer enregistrement sur une année antérieure
    Par Alain CARDINI dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 13/05/2008, 22h21
  5. Réponses: 2
    Dernier message: 18/10/2005, 08h05

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