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

Macros Access Discussion :

Question sur l'existence d'une macro


Sujet :

Macros Access

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Septembre 2014
    Messages : 59
    Points : 33
    Points
    33
    Par défaut Question sur l'existence d'une macro
    Bonjour!

    J'aimerais savoir si une macro ACCESS existe qui enregistrerait un état dans un dossier quelconque automatiquement à tous les jours (disons à minuit) ?

    Merci!

    Catherine

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    L'idée serait de mettre dans la macro une condition portant sur l'heure en utilisant la fonction Time() ou Date(), ensuite de mettre la macro sur l'événement "onTimer" d'un formulaire et de régler l'intervalle minuterie, pour exécuter la macro tous les x temps.

    La macro pourrait, par exemple, exporter l'état au format pdf...

    Bonne continuation

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Je suis débutante en VB Access, peux-tu me dire s'il existe des exemple quelque part ?

    Merci!

    Catherine

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Voici un exemple en pièce jointe.

    Le code sur minuterie est réglé sur la minute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_Timer()
     
       If Abs(DateDiff("s", Time(), #11:00:00 PM#)) < 60 Then
          DoCmd.OpenReport "EtatExport", acViewPreview
          DoCmd.OutputTo acOutputReport, , "PDF", CurrentProject.Path & "\export.pdf"
          DoCmd.Close acReport, "EtatExport"
       End If
     
    End Sub
    Il exporte l'état "EtatExport" au environ de 23:00 dans le dossier de la base de donnée, le test s'effectue toutes les minutes, c'est pourquoi le formulaire "frmTimer", doit être masqué et rester toujours ouvert...

    Cdlt,
    Fichiers attachés Fichiers attachés
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    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 challe1976, catherineh et l'Ami User

    En complément d'info, il est possible d'utiliser le planificateur de tache de windows et lancer en ligne de commande la macro qui exécutera le code à l'heure souhaitée.


  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Salut vodiem,

    Content de voir que tu es toujours actif sur le forum

    a+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Merci pour ton exemple, il fonctionne très bien.

    Est-ce que la base de données doit toujours demeuré ouverte ? C'est une application Access connectée à Oracle.

    Peut-on changer de nom au .PDF à chaque jour ?


    Merci de ta grande gentillesse !!

    Catherine

    Citation Envoyé par User Voir le message
    Bonjour,

    Voici un exemple en pièce jointe.

    Le code sur minuterie est réglé sur la minute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_Timer()
     
       If Abs(DateDiff("s", Time(), #11:00:00 PM#)) < 60 Then
          DoCmd.OpenReport "EtatExport", acViewPreview
          DoCmd.OutputTo acOutputReport, , "PDF", CurrentProject.Path & "\export.pdf"
          DoCmd.Close acReport, "EtatExport"
       End If
     
    End Sub
    Il exporte l'état "EtatExport" au environ de 23:00 dans le dossier de la base de donnée, le test s'effectue toutes les minutes, c'est pourquoi le formulaire "frmTimer", doit être masqué et rester toujours ouvert...

    Cdlt,

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    bonjour,

    il faut lancer le formulaire au démarrage et mettre sa propriété visible à false...

    ensuite au niveau de la commande outputto, il faut remplacer "export.PDF" par le nom que tu souhaites.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Si je veux la date du jour, que dois-je écrire

    Option Compare Database

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_Timer()
     
       If Abs(DateDiff("s", Time(), #12:00:00 AM#)) < 60 Then
          DoCmd.OpenReport "Statut en cours NAM", acViewPreview
          DoCmd.OutputTo acOutputReport, , "PDF", CurrentProject.Path & "\statut.pdf"
          DoCmd.Close acReport, "EtatExport"
       End If
     
    End Sub

    Citation Envoyé par User Voir le message
    bonjour,

    il faut lancer le formulaire au démarrage et mettre sa propriété visible à false...

    ensuite au niveau de la commande outputto, il faut remplacer "export.PDF" par le nom que tu souhaites.

    Cdlt,

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Pourquoi la date du jour ? L'exemple que j'ai posté c'est pour exécuter l'export tous les jours à 23 heures.

    Pouvez-vous préciser ?

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    J'aimerais qu'elle s'appelle ce soir statut20150318, demain statut20150319, etc...

    est-ce possible ?

  12. #12
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Oui tout à fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_Timer()
     
       If Abs(DateDiff("s", Time(), #12:00:00 AM#)) < 60 Then
          DoCmd.OpenReport "Statut en cours NAM", acViewPreview
          DoCmd.OutputTo acOutputReport, , "PDF", CurrentProject.Path & "\statut" & Format(Date(),"yyyymmdd") & ".pdf"
          DoCmd.Close acReport, "EtatExport"
       End If
     
    End Sub
    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    J'ai mis la procédure dans mon formulaire contenant mon menu général.

    Lorsqu'il s'exécute à l'heure convenu, il exporte bien mon fichier, par contre, après, je n'ai plus accès à mon formulaire menu général, il fait toujours des rafraichissements (voir l'image en pièce jointe).

    Pouvez-vous m'aider ?

    Merci!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
     
     
    Private Sub Form_Timer()
     
       If Abs(DateDiff("s", Time(), #12:00:00 PM#)) < 60 Then
          DoCmd.OpenReport "Statut en cours NAM", acViewPreview
          DoCmd.OutputTo acOutputReport, , "PDF", CurrentProject.Path & "\statut" & Format(Date, "yyyymmdd") & ".pdf"
          DoCmd.Close acReport, "EtatExport"
       End If
     
    End Sub
    Images attachées Images attachées  

  14. #14
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Dans ce cas,

    Si tu ne fais cet export qu'une fois par jour, tu fermes le formulaire après l'export et tu ne le ré-ouvre que le lendemain au moment de charger la base à nouveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_Timer()
     
       If Abs(DateDiff("s", Time(), #12:00:00 PM#)) < 60 Then
          DoCmd.OpenReport "Statut en cours NAM", acViewPreview
          DoCmd.OutputTo acOutputReport, , "PDF", CurrentProject.Path & "\statut" & Format(Date, "yyyymmdd") & ".pdf"
          DoCmd.Close acReport, "EtatExport"
          DoCmd.Close acform, Me.Name
       End If
     
    End Sub
    a+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Oui, mais c'est une base de données, avec d'autres items dans le formulaire du menu principal qui peuvent être utilisé durant la journée.

    Il n'y a pas un option pour enlever rafraichissement ? Cela me permettrait d'avoir accès au menu.

    Est-ce que la procédure peut fonctionner à minuit si la base de données est fermée ? car on ne serait pas obligé de laisser la base de données ouverte.

  16. #16
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Avec une affreuse variable publique que tu initialises à false à l'ouverture du formulaire et que tu mets à true à la fin de l'export:

    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
    Option Compare Database
     
    Dim varExport As Boolean
     
    Private Sub Form_Open(Cancel As Integer)
    varExport = False
    End Sub
     
     
    Private Sub Form_Timer()
     
       If (Abs(DateDiff("s", Time(), #12:00:00 PM#)) < 60) and (varExport=false) Then
          DoCmd.OpenReport "Statut en cours NAM", acViewPreview
          DoCmd.OutputTo acOutputReport, , "PDF", CurrentProject.Path & "\statut" & Format(Date, "yyyymmdd") & ".pdf"
          DoCmd.Close acReport, "EtatExport"
          varExport=true
       End If
     
    End Sub
    Concernant l'exécution de la procédure une fois la base fermée, je t'invite à consulter le message de vodiem

    a+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  17. #17
    Nouveau membre du Club
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Septembre 2014
    Messages : 59
    Points : 33
    Points
    33
    Par défaut
    Bonjour

    J'aimerais changer le chemin CurrentProject.Path par K:\41410\_STATUT_EN_COURS_NAM
    Par contre, j'ai essayé, et mon fichier ne n'est pas transféré.

    Avez-vous un idée quel est le problème ?

    Merci!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Private Sub Form_Timer()
     
       If Abs(DateDiff("s", Time(), #8:15:00 AM#)) < 60 Then
          DoCmd.OpenReport "Statut en cours NAM", acViewPreview
          DoCmd.OutputTo acOutputReport, , "PDF", "K:\41410\_STATUT_EN_COURS_NAM" & "\statut.pdf"
          DoCmd.Close acReport, "EtatExport"
       End If
     
    End Sub

Discussions similaires

  1. question sur l'utilité d'une macro
    Par skeleton18 dans le forum C++
    Réponses: 9
    Dernier message: 10/06/2011, 13h34
  2. Question sur la rapidité d'une macro
    Par johannj dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/06/2009, 16h29
  3. Question sur la création d'une table
    Par air dans le forum Oracle
    Réponses: 4
    Dernier message: 23/10/2005, 12h46
  4. Réponses: 5
    Dernier message: 13/10/2005, 12h46
  5. question sur la creation d'une base
    Par vbcasimir dans le forum Débuter
    Réponses: 4
    Dernier message: 27/05/2005, 11h17

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