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 :

Export de table a date précise [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 111
    Par défaut Export de table a date précise
    Bonjour

    Je souhaiterai exporter plusieurs tables Access a une date donnée.
    En fait, je voudrais faire une sorte d'export annuel a chaque fin d'année et purger les tables existantes (ça je pense savoir faire...enfin en principe).
    Mon soucis est plutôt de programmer cette action pour que dès la première ouverture a partir du 1er janvier de chaque année, les tables soient exportées (peu importe le format).
    Je voudrais rendre cette action automatique mais qu'une fois qu'elle est réalisée, elle ne se reproduise pas avant l'année suivante.
    J'ai cherché dans les FAQ et les post mais je n'ai pas trouvé quoi que ce soit qui déclenche une action a un moment donné (et une seule fois)
    Pouvez vous m'aider?

    Merci

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    En premier lieu il faut stocker la date de la dernière exportation des tables.
    Par exemple dans une table tblAppAdmin(Param, ValeurTxt).
    Les deux champs sont de type texte.

    La date sera sauvée sous la forme d'un couple Nom-du-paramètre/Valeur-du-paramètre.
    Nom : DateDernierExport
    Valeur : date au format texte YYYY-MM-DD (cela facilite la conversion texte->Date)
    Créer un nouvel enregistrement dans la table en entrant DateDernierExport dans le champ Param et 2010-01-02 dans ValeurTxt.


    Dans un module de code, tu mets ces deux fonctions :
    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
    Function ExportAnnuel()
    Dim strSQL As String
     
    If DoitFaireExportAnnuel() = False Then Exit Function
     
    ' réaliser les exportations
     
    '...
     
    ' sauvegarder la date date du jour
    strSQL = "UPDATE tblAppAdmin SET ValeurTxt=" & Format(Date, "'yyyy-mm-dd'") & _
             " WHERE ((Param)='DateDernierExport')"
    DoCmd.SetWarnings False
    DoCmd.RunSQL strSQL
    DoCmd.SetWarnings True
    End Function
    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
    Function DoitFaireExportAnnuel() As Boolean
    Dim dtDernierExport As Date, strDtDernierExport As String
    Dim dtAujourdhui As Date
     
    ' Lire la date de dernière exportation
    strDtDernierExport = Nz(DLookup("ValeurTxt", "tblAppAdmin", "Param='DateDernierExport'"), "")
    If Len(strDtDernierExport) = 0 Then
       MsgBox "Paramètre 'DateDernierExport' manquant dans la table 'tblAppAdmin'", , _
              "Contrôle date de dernière exportation impossible"
       Exit Function
    End If
    ' la convertir en date
    dtDernierExport = CDate(strDtDernierExport)
    ' date du jour
    dtAujourdhui = Date
     
    If Year(dtAujourdhui) > Year(dtDernierExport) Then
       DoitFaireExportAnnuel = True
    Else
       DoitFaireExportAnnuel = False
    End If
    End Function
    ExportAnnuel() est la fonction principale. Elle appelle DoitFaireExportAnnuel() pour vérifier s'il faut réaliser les exportations ou pas.

    Il ne reste plus qu'à faire en sorte que la fonction ExportAnnuel() soit appelée à chaque ouverture de la base de données.

    Cela peut se faire avec la macro Autoexec. Elle a la particularité d'être exécutée à l'ouverture de la base.
    C'est simplement une macro que l'on crée, puis que l'on sauve sous le nom Autoexec.
    Dans la première ligne de cette macro Autoexec, on sélection l'action ExécuterCode, et on lui fournit comme argument ExportAnnuel().

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 111
    Par défaut
    Alors là !!
    Un grand merci !!!
    ÇA me tire une sacré épine du pied car je ne voyais pas trop comment prendre le probleme !!

    Je test tout ca et je mets un retour au besoin

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 111
    Par défaut
    Apres vérification ca marche parfaitement.

    Merci encore !!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/02/2014, 10h06
  2. [access][oracle]exporter une table
    Par thief dans le forum JDBC
    Réponses: 10
    Dernier message: 14/07/2005, 13h34
  3. [Paradox] Automatiser l'export de table en CSV
    Par Laurent Dardenne dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/02/2005, 15h16
  4. exporter une table sans le nom de colonnes ?
    Par vuldos dans le forum Access
    Réponses: 13
    Dernier message: 11/10/2004, 19h56
  5. Renvoyer une date précise
    Par kilyn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/10/2004, 10h11

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