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 :

Création d'espion par programme


Sujet :

Access

  1. #1
    Membre régulier
    Homme Profil pro
    Manager de projet (retraité)
    Inscrit en
    Juillet 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Manager de projet (retraité)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 150
    Points : 71
    Points
    71
    Par défaut Création d'espion par programme
    Bonjour à tous,
    Une petite question simple (dans sa formulation) pour laquelle je n'ai trouvé de réponse dans aucun des forums que j'ai consultés :

    Est-il faisable de créer par code VBA des espions dans le débogueur ?

    Le motif de cette question est qu'en phase de test je souhaite suivre l'évolution de certaines variables temporaires (TempVars). A chaque sortie de l'application je dois re-créer ces espions avec leur contexte (Procédure et Module) ce qui est pénible.

    Avez-vous une idée ?
    Merci d'avance.

  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
    Bonjour.

    Oui cela fait parti des fonctionnalités de l'IDE de Access.
    Tu vas dans le code, menu affichage et tu choisi fenêtre espion.
    Note que j'ai eu quelques soucis lors de son utilisation, parfois cela faisait planter Access.
    Ceci dit c'était il y a longtemps donc peut-être que cela ne se reproduira pas.
    Perso je me sers surtout de la fenêtre des variables locales et de points d'arrêt.

    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
    Membre régulier
    Homme Profil pro
    Manager de projet (retraité)
    Inscrit en
    Juillet 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Manager de projet (retraité)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 150
    Points : 71
    Points
    71
    Par défaut
    Merci Marot, c'est toujours un plaisir que d'échanger avec toi.

    Sur ce coup je reste perplexe car tu m'expliques comment ouvrir la fenêtre Espions, ce qui n'est pas l'objet de ma demande.

    Ce qui m'intéresse c'est de pouvoir ajouter des espions à partir d'une liste que je pourrais stocker dans une table (ou autre chose) et qu'il me suffirait de lancer avec ub peu de code VBA pour garnir la dite fenêtre.
    J'aurais dû être plus précis et demander, par exemple, si Access possède une collection d'objets Espions accessible par le code.

    Je crains que non mais c'est la première fois que je me penche sur le sujet. Et toi ?

    Bonne soirée.

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    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 264
    Points : 19 432
    Points
    19 432
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Citation Envoyé par arundel Voir le message
    ...

    Le motif de cette question est qu'en phase de test je souhaite suivre l'évolution de certaines variables temporaires (TempVars). A chaque sortie de l'application je dois re-créer ces espions avec leur contexte (Procédure et Module) ce qui est pénible.

    Avez-vous une idée ?
    Merci d'avance.
    Bonjour,

    Je ne suis pas certain que ce soit faisable, mais je tente une chose avec les variables temporaires stockées dans la collection TempVars :

    On peut déjà les conserver dans une table.

    Par exemple, sur ouverture du formulaire qui lance la session, on lit le contenu de la table T_TempVars(var, valeur) dans des variables temporaires :

    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
    Private Sub Form_Open(Cancel As Integer)
        Dim rst As DAO.Recordset
     
        Set rst = CurrentDb.OpenRecordset("T_TempVars")
     
        If rst.EOF Then
            ' si la table T_TempVars est vide, on crée les variables avec des valeurs
            TempVars.Add "var1", 101
            TempVars.Add "var2", 102
        Else ' sinon
            ' on ajoute les variables contenues dans la table
            Do Until rst.EOF
                var = rst!var: valeur = rst!valeur
                TempVars.Add var, valeur
                rst.MoveNext
            Loop
        End If
     
        rst.Close
        Set rst = Nothing
     
    End Sub
    Et à la fermeture de ce formulaire de session, on enregistre les variables temporaires dans la table T_TempVars :

    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
    Private Sub Form_Close()
        Dim rst As DAO.Recordset
     
        ' supprime le contenu de la table T_TempVars
        CurrentDb.Execute "delete * from T_TempVars", dbFailOnError
     
        Set rst = CurrentDb.OpenRecordset("T_TempVars")
     
        For i = 0 To TempVars.Count - 1
     
            Set TempVar = TempVars(i)
     
            rst.AddNew
            rst!var = TempVar.Name
            rst!valeur = TempVar.Value
            rst.Update
     
        Next i
     
        rst.Close
        Set rst = Nothing
     
    End Sub
    Les variables temporaires étant effacées après fermeture de la base.

    Pour mettre à jour une variable temporaire dans le code d'un module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TempVars("var1").Value = TempVars("var1").Value + 10
    Pour connaître son contenu, dans la fenêtre d'exécution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ? TempVars("var1").value
    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

  5. #5
    Membre régulier
    Homme Profil pro
    Manager de projet (retraité)
    Inscrit en
    Juillet 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Manager de projet (retraité)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 150
    Points : 71
    Points
    71
    Par défaut
    Bonjour User,
    J'ai lu avec intérêt ta suggestion et t'en remercie.

    Comme je le mentionnais dans mon post initial, je souhaite suivre l'évolution de certaines variables temporaires de mon appli.
    De ce point de vue la déclaration des vartemp est déjà faite et je peux en suivre leur évolution en les déclarant dans la fenêtre Espions.
    Jusque là tout va bien.

    Comme la fenêtre Espions est vidée à chaque sortie de l'application il me faut la re-peupler à chaque fois, ce qui est pénible.
    Il existe probablement dans le système Access un endroit caché où ces déclarations sont stockées mais je ne l'ai pas trouvé.

    J'en arrive à la même conclusion que toi : pas de solution à mon problème.

    Merci et à +

  6. #6
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    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 878
    Points : 4 754
    Points
    4 754
    Par défaut
    même conclusion que toi : pas de solution à mon problème.
    Quid de la solution très simple d'archiver ces valeurs dans une table ? valeurs enregistrées avec tous les autres paramétres souhaités (date-heure, utilisateur ...)
    "Always look at the bright side of life." Monty Python.

  7. #7
    Membre régulier
    Homme Profil pro
    Manager de projet (retraité)
    Inscrit en
    Juillet 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Manager de projet (retraité)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 150
    Points : 71
    Points
    71
    Par défaut
    Bonjour Micniv,
    C'est une idée intéressante et simple mais qui ne permet pas un suivi synchrone des variations de valeur des vartemp comme le fait la fenêtre Espions.
    Il faut aussi capter l'instant du changement pour enregistrer au bon moment.
    Ca me parait plus compliqué que de créer un espion.
    Merci d'avoir regardé la question sur un sujet certes non vital mais qui aurait pu faciliter la vie à d'autres développeurs
    A+

  8. #8
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    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 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Je découvre ce tuto de Christophe Warin , ça pourrait être une autre piste intéressante
    https://warin.developpez.com/tutorie...s2010/journal/

    Crdlt,
    "Always look at the bright side of life." Monty Python.

  9. #9
    Membre régulier
    Homme Profil pro
    Manager de projet (retraité)
    Inscrit en
    Juillet 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Manager de projet (retraité)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 150
    Points : 71
    Points
    71
    Par défaut
    Effectivement j'ai étudié ce tuto il y a environ 15 jours et je pense mettre cette préconisation en oeuvre dès que j'aurai terminé la mise au point.
    Cependant cette solutionest orientée analyse a posteriori et, pour mon sujet actuel, est moins performante que la vue Espions.
    J'ai surfé sur les sites anglophones et trouvé quelques idées (peu) sur les "watch expressions", mais de l'ordre du bricolage à coups de Senkeys en cours d'exécution.
    Ca me confirme qu'Access ne me permettra pas d'aller plus loin.
    Bonne soirée à tous.

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    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 264
    Points : 19 432
    Points
    19 432
    Billets dans le blog
    63
    Par défaut
    Oui, on utilise les événements au niveau des tables au lieu d'utiliser ceux sur les formulaires.
    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

Discussions similaires

  1. Ouvrir le planificateur de tâches Windows par programme
    Par BBPlastique dans le forum Windows
    Réponses: 8
    Dernier message: 16/07/2004, 11h30
  2. Escamoter la barre Windows par programme
    Par Invité dans le forum Windows
    Réponses: 4
    Dernier message: 01/06/2004, 16h03
  3. [Foxpro]Connexion ODBC par programme
    Par Richard MORRISSEY dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 07/07/2003, 21h55
  4. Enregistrement du son par programme
    Par Invité dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/06/2003, 23h13
  5. Comment créer un nouveau dossier par programmation ?
    Par annecyrond dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2003, 07h59

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