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

Access Discussion :

Tutoriel - Mettre en place un gestionnaire de rafraîchissement automatique des tables


Sujet :

Access

  1. #1
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut Tutoriel - Mettre en place un gestionnaire de rafraîchissement automatique des tables
    Bonjour,

    Un nouveau tutoriel vous est proposé.

    Ce document a pour but de vous montrer comment d'un seul coup d'oeil, les données de vos tables sont actualisées automatiquement selon une temporisation prédéfinie. Cet article est plutôt destiné aux développeurs qui souhaitent contrôler en phase de recette utilisateur notamment, la mise à jour de tables de façon automatique tout en exécutant certaines procédures au pas à pas.

    Utilisez ce fil pour y laisser vos commentaires...

    Argy

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 548
    Points
    24 548
    Par défaut
    Superbement efficace !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 9
    Points : 8
    Points
    8
    Par défaut p_strFormCaption
    on trouve p_strFormCaption dans la classe clsAutoRefresh

    et dans le code du formulaire cela s'appel p_strTitleCaption .

    pour info

    on ne peut plus utiliser kernel32 pour le sleep sous seven (64bits).

    j'ai ajouter un fonction pause (que j'ai trouvé sur un forum)

    dans la classe clsAutoRefresh.

    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
    Public Function Pause(NumberOfSeconds As Variant)
     
     
        Dim PauseTime As Variant, start As Variant
     
        PauseTime = NumberOfSeconds
        start = Timer
        Do While Timer < start + PauseTime
        DoEvents
        Loop
     
    Exit_Pause:
        Exit Function
     
     
    End Function
    Et remplacer sleep par pause dans le code du formulaire

    pour le reste cela fonctionne très bien
    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Merci pour cette précision.
    Je tâcherais de mettre à jour le Tuto avec cette judicieuse remarque.

    P.S. Evitez le Variant pour une telle fonction. On parle de millisecondes.

    Argy

  5. #5
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Bonjour membres du forum,
    bonjour argyronet,

    Je suis un passionné de la programmation qui apprends progressivement.

    D'où votre "Tutoriel - Mettre en place un gestionnaire de rafraîchissement automatique des tables" est un cours que j'aimerais apprendre et pouvoir appliquer le contenu.

    Sauf votre respect, pourriez vous m'indiquer où télécharger la table "ExcelFileData" afin de me faciliter à mieux m'exercer.

    Cordialement.

  6. #6
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Citation Envoyé par morobaboumar Voir le message
    pourriez vous m'indiquer où télécharger la table "ExcelFileData" afin de me faciliter à mieux m'exercer.
    Vous n'avez pas besoin de cette table. C'est une table de données quelconque.
    Ce tuto s'applique à n'importe quelle(s) table(s) de votre application.

    Argy

  7. #7
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Citation Envoyé par argyronet Voir le message
    Bonjour,
    Vous n'avez pas besoin de cette table. C'est une table de données quelconque.
    Ce tuto s'applique à n'importe quelle(s) table(s) de votre application.
    Argy
    Bonsoir argyronet,
    Message compris. Je me mets à la tache.
    Cordialement.

  8. #8
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Citation Envoyé par morobaboumar Voir le message
    Bonsoir argyronet,
    Message compris. Je me mets à la tache.
    Cordialement.
    Bonsoir argyronet ,

    Voila j'ai essayé d'appliquer vos modules à la table "Tbl_EVALUATION_NIVEAU_SCOLAIRE_RaffraiAuto" dont le formulaire est "Tbl_EVALUATION_NIVEAU_SCOLAIRE_RaffraiAuto".

    Nom : CaptureRaffraichissementAutoTables_Erreur_3.PNG
Affichages : 174
Taille : 16,1 Ko
    Nom : CaptureRaffraichissementAutoTables_Erreur_4.PNG
Affichages : 177
Taille : 76,8 Ko

    Voici le message d'erreur qui en résulte;

    Nom : CaptureRaffraichissementAutoTables_Erreur_1.PNG
Affichages : 177
Taille : 109,3 Ko
    Nom : CaptureRaffraichissementAutoTables_Erreur_2.PNG
Affichages : 175
Taille : 99,9 Ko


    Corgialement.

  9. #9
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Le nom du formulaire n'a aucune importance ici.

    Je pense que vous n'avez pas ajouté le module de classe comme spécifié dans le tuto...

    /!\ Avant d’exécuter du code,il faut compiler afin de voir s'il n'y a pas d'erreur.

    Argy

  10. #10
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Citation Envoyé par argyronet Voir le message
    Le nom du formulaire n'a aucune importance ici.
    Je pense que vous n'avez pas ajouté le module de classe comme spécifié dans le tuto...
    /!\ Avant d’exécuter du code,il faut compiler afin de voir s'il n'y a pas d'erreur.
    Argy
    Bien sure j'ai ajouté "clsAutoRefresh":
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    Option Compare Database
    Option Explicit
     
    '**********************************************************************
    ' Module            : clsAutoRefresh
    ' Type              : Module de classe
    ' DateTime          : 10/10/2009
    ' Author            : Jean-Philippe AMBROSINO
    ' Purpose           : Classe dédiée au rafraîchissement automatique des données
    '**********************************************************************
     
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
     
    Private m_intTimerInterval                             As Integer
    Private m_strFormCaption                              As String
     
    ' Propriété de valeur du Timer
    Public Property Get p_intTimerInterval() As Integer
        p_intTimerInterval = m_intTimerInterval
    End Property
     
    Public Property Let p_intTimerInterval(ByVal ip_intTimerInterval As Integer)
        m_intTimerInterval = ip_intTimerInterval
    End Property
     
    ' Propriété de la légende du formulaire
    Public Property Get p_strFormCaption() As String
        p_strFormCaption = m_strFormCaption
    End Property
     
    Public Property Let p_strFormCaption(ByVal sp_strFormCaption As String)
        m_strFormCaption = sp_strFormCaption
    End Property
     
    ' Événement DoubleClick du formulaire (Zone grisée)
    Public Sub FormDblClick(ByRef TargetForm As Form, Cancel As Integer)
        If p_intTimerInterval Then
            p_intTimerInterval = 0
            TargetForm.Caption = p_strFormCaption & " (Rafraîchissement stoppé : Pressez un double-clic pour le relancer...)"
        Else
            p_intTimerInterval = 1000
        End If
        TargetForm.TimerInterval = p_intTimerInterval
    End Sub
     
    ' Événement Load du formulaire
    Public Sub FormOnLoad(ByRef TargetForm As Form)
        p_strFormCaption = TargetForm.Caption
        TargetForm.TimerInterval = 1000
    End Sub
     
    ' Événement Timer du formulaire
    Public Sub FormOnTimer(ByRef TargetForm As Form, Optional ByVal ResetTime As Integer = 16)
    Dim D                                                  As Integer
    Static S                                               As Integer
     
        If S = ResetTime Then
            S = 0: D = 0
            TargetForm.Caption = "Rafraîchissement imminent...."
            Sleep 1000
            DoEvents
            TargetForm.Requery
        End If
     
        S = S + 1
        D = ResetTime - S
        DoEvents
        TargetForm.Caption = p_strFormCaption & " : Rafraîchissement des données dans " & D & " seconde" & IIf(D <= 1, "", "s")
    End Sub
    Ensuite le module du formulaire
    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
    Option Compare Database
    Option Explicit
     
    '**********************************************************************
    ' Module            : TBL_ExcelFileData (DataSheetForm)
    ' Type              : Document VBA
    ' DateTime          : 09/10/2009
    ' Author            : Jean-Philippe AMBROSINO
    ' Purpose           : Formulaire contenant les importations temporaires Excel
    '**********************************************************************
    Private mc_AutoRefresh As clsAutoRefresh
     
    Private Sub Form_Close()
        Set mc_AutoRefresh = Nothing
    End Sub
     
    Private Sub Form_DblClick(Cancel As Integer)
        mc_AutoRefresh.FormDblClick Me, Cancel
    End Sub
     
    Private Sub Form_Load()
        Set mc_AutoRefresh = New clsAutoRefresh
        With mc_AutoRefresh
            .p_strTitleCaption = Me.Caption
            .p_intTimerInterval = 1000
            Me.TimerInterval = .p_intTimerInterval
        End With
    End Sub
     
    Private Sub Form_Timer()
        mc_AutoRefresh.FormOnTimer Me
    End Sub
    Puis compilé:Nom : CaptureRaffraichissementAutoTables_Erreur_5.PNG
Affichages : 179
Taille : 56,9 Ko

    Le message d'erreur survient à partir de cette ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .p_strTitleCaption = Me.Caption
    Cordialement.

  11. #11
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Humm... C'est dans un module de classe qu'il faut l'insérer.
    Si vous l'avez mis dans un module, "classique", ça ne peut pas marcher.

    Et si vous compilez et qu'il y a une erreur de compilation, c'est que celle que vous soulevez vient de là.

    Argy
    Images attachées Images attachées  

  12. #12
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut
    Bonjour argyronet,
    Je vous envoie une copie de mon application pour constat.
    Je vous rappel que j'utilise Access 2013.

    Nom : CaptureRaffraichissementAutoTables_ModuleDeClasse_6.PNG
Affichages : 153
Taille : 4,6 Ko

    Cordialement.
    Fichiers attachés Fichiers attachés

  13. #13
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 912
    Points : 4 811
    Points
    4 811
    Par défaut
    Avec un peu de lecture on pouvait trouver dans le message #2 de Micki dans ce fil :
    on trouve p_strFormCaption dans la classe clsAutoRefresh

    et dans le code du formulaire cela s'appelle p_strTitleCaption .
    donc rectifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Form_Load()
        Set mc_AutoRefresh = New clsAutoRefresh
        With mc_AutoRefresh
            '.p_strTitleCaption = Me.Caption  ' boulette
            .p_strFormCaption = Me.Caption  ' OK
            .p_intTimerInterval = 1000
            Me.TimerInterval = .p_intTimerInterval
        End With
    End Sub
    cordialement

  14. #14
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut Ligne de code parfait
    Bonsoir micniv,
    Le code corrigé est parfait. Ça marche.

    NB; il faudrait rappeler à argyronet de songer à rectifier cette erreur de frappe
    on trouve p_strFormCaption dans la classe clsAutoRefresh
    et dans le code du formulaire cela s'appel p_strTitleCaption .
    dans son tutoriel.

    infiniment.
    Cordialement.

  15. #15
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Bien vu.
    Merci...
    J'ai modifié dans le tuto.

    Argy

Discussions similaires

  1. Rafraîchissement Automatique des données
    Par Tofidou dans le forum QlikView
    Réponses: 3
    Dernier message: 14/05/2013, 08h51
  2. Réponses: 5
    Dernier message: 20/06/2011, 18h26
  3. Mettre en place un gestionnaire de workflow et un gestionnaire de mail
    Par mahdi26_ca dans le forum Approche théorique du décisionnel
    Réponses: 2
    Dernier message: 23/02/2011, 09h11
  4. Réponses: 6
    Dernier message: 28/08/2008, 15h59

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