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

IHM Discussion :

Zones de liste - Évènement sur clic [AC-2010]


Sujet :

IHM

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Zones de liste - Évènement sur clic
    Bonjour,

    J'ai un formulaire qui a, entre autres, 3 zones de listes différentes.
    Afin de lancer du code quand on clique sur la zone de liste, j'ai utilisé l'évènement "Sur clic" pour chacune d'entre elle, ce qui me donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Lst_liste_soum_click()
    Call maj_choix("soum")
    End Sub
     
    Private Sub Lst_liste_proj_click()
    Call maj_choix("proj")
    End Sub
     
    Private Sub Lst_liste_fact_click()
    Call maj_choix("fact")
    End Sub
    En toute logique, en cliquant sur la liste "Lst_liste_soum", on devrait lancer la macro Private Sub Lst_liste_soum_click(), et idem pour les 2 autres.

    Le souci est que cette logique ne s'applique pas. Je n'ai pas réussi à trouver la règle, mais en cliquant sur une liste de zone, la plupart du temps une autre macro est appelée. Et souvent cette même macro est appelée plusieurs fois à la suite, quelle que soit la liste sur laquelle je clique... J'ai tenté d'utiliser Après MAJ, Sur réception focus, ... rien ne marche....

    J'espère que je suis assez claire dans mes explications....

    Si quelqu'un a une idée, moi je m'arrache les cheveux!

    Merci par avance!

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    gimli_morticia bonjour et bienvenue dans notre communauté



    Nous allons trouver ton problème mais avant tout utilisons les mêmes mots, ce que tu appelles macro est en réalité une procédure événementielle.

    Le souci est que cette logique ne s'applique pas. Je n'ai pas réussi à trouver la règle, mais en cliquant sur une liste de zone, la plupart du temps une autre macro est appelée. Et souvent cette même macro est appelée plusieurs fois à la suite, quelle que soit la liste sur laquelle je clique... J'ai tenté d'utiliser Après MAJ, Sur réception focus, ... rien ne marche....
    La première chose consiste à trouver toi même tes erreurs en utilisant les outils qu'Access met à ta disposition, on appelle cela le mode debug. En positionnant des points d'arrêts dans ton programme tu vas pouvoir suivre l’exécution pas à pas de ton programme et enfin trouver la source de ton erreur. Regarde ce sujet :

    http://cafeine.developpez.com/access...el/debugprint/

    Ensuite, concernant ton problème et à moins d'un événement minuterie rien ne justifie dans ton code l'instabilité dont tu nous parles. Peut-être serait il bon de joindre ta procédure maj_choix dans ton fil de discussion afin de vérifier son comportement.

    Vérifies également les points suivants dans ton programme, tous les appels effectués vers la procédure maj_choix (un ctrl+F dans ton éditeur VBA) afin de vérifier les branchements de cette procédure (peut-être définie ailleurs que dans ces simples boîtes listes).

    Si malgré tout, tu n'arrivais pas à résoudre ton problème, post nous ta base que nous jetions un coup d’œil (édulcorée des données sensibles si besoin).

    Amicalement,

    JimBolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonsoir Jimbolion,

    Merci pour tes conseils, mais à dire vrai, je connais déjà les fonctions de débogages et m'en sers.
    En découpant mon code, j'ai trouvé 2 erreurs : une partie de mon code me change l'item de la zone de liste sélectionnée (sans que je ne lui demande :-)) et une autre partie cause le problème de sélection (apparemment) aléatoire.
    Si tu veux bien, j'aimerais que l'on puisse résoudre le premier problème, qui peut être par voie de conséquence résoudra le second...
    En ne prenant que la partie suivante, je n'ai plus le problème aléatoire, c'est-à-dire, que chaque procédure évènementielle se lance comme il faut.
    Par contre, les items sélectionnés changent.

    Explications

    Je clique sur ma liste "Lst_liste_fact", la procédure suivante se lance:

    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
    Private Sub Lst_liste_fact_Click()
     
    Call maj_choix("fact")
     
    End Sub
     
    Sub maj_choix(type_click)
     
    'recupération variables initiales
    id_liste_fact = Me.Lst_liste_fact.ListIndex
    id_liste_proj = Me.Lst_liste_proj.ListIndex
    id_liste_soum = Me.Lst_liste_soum.ListIndex
     
    '===========================================
    'changement de requetes sql
    '===========================================
     
    'requery des zones de listes
    Me.Lst_liste_soum.requery
    Me.Lst_liste_proj.requery
    Me.Lst_liste_fact.requery
     
     
    End Sub
    Le ".requery" des zones de liste me fait changer l'item selectionné. Je n'ai pas trouvé de règle à ce changement...

    Exemple :

    Je sélectionne l'item 5 de ma liste, au clic la procédure s'exécute et l'item 4 est sélectionné à la place...

    Vois-tu une explication?

    PS : pour pallier ce problème j'ai créé mon autre partie de macro avec la réaffectation de l'index initial, en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If id_liste_fact <> -1 Then Me.Lst_liste_fact.Selected(id_liste_fact) = True
    Et c'est là que mon problème d'aléatoire se pointe la face...

    Merci beaucoup de ton aide!!!

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Re-bonsoir,

    J'ai vidé ma base de données et n'ai laissé que le formulaire à erreurs avec les tables et requêtes nécessaires.
    J'ai également enlevé tout le code qui ne servait à rien pour ne laisser que les procédures appelées.
    Cela t'aidera sûrement à comprendre d'où vient les bugs...

    Merci beaucoup de ton aide!

    :( ça non plus ça ne marche pas, je ne suis pas capable de te loader la bdd. j'ai le message (j'ai essayé avec Firefox et IE)

    Nom : erreur.jpg
Affichages : 205
Taille : 14,0 Ko

    Dommage qu'il n'y ait pas le smiley qui se tape la tête contre le mur... :mrgreen:

  5. #5
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    gimli_morticia bonjour,

    Il est là ton smiley (déjà un problème de résolu )

    Bon et plus sérieusement, peux tu faire une copie de ton projet initial et lancer une fonction de compactage et réparation sur celui-ci. Si tout se passe bien, tu crées un nouveau projet et y importe les éléments nécessaires (tables, forms, requetes...) à la résolution de ton problème. Tu zip ton fichier, et tu l'envoie directement dans notre fil de discussion (tu disposes des outils nécessaires pour cela)

    Ensuite je reprends ton message :

    Le ".requery" des zones de liste me fait changer l'item selectionné. Je n'ai pas trouvé de règle à ce changement...
    Pris d'un doute, j'ai fait un essai sur un formulaire en y plaçant des zones de liste et insérer un code sur la propriété événement <Sur Clic> qui fait appel à un procédure identique à la tienne. Je confirme et tu pourras faire l'essai que le .requery ne modifie pas l'item sélectionné et ne lance pas l'appel d’événements placés sur les autres zones de listes. N'aurais tu pas un autre événement exécuté sur les propriétés du formulaire par hasard (sur clic, sur modification...) ?

    PS : pour pallier ce problème j'ai créé mon autre partie de macro avec la réaffectation de l'index initial, en utilisant
    Il vaut mieux chercher à comprendre l'instabilité initiale et l'origine du problème plutôt que trouver des palliatifs, pratique que je réprouve au plus haut degré

    Donc je te dis @++
    Amicalement

    Jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  6. #6
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Hello!

    Bon enfin après avoir tripatouiller ma bdd dans tous les sens, il a accepté l'initiale zippée...

    Si tu peux regarder et essayer de trouver une explication...

    Voici mon erreur
    Je lance Frm_projets
    Je clique sur un item d'une des 3 lites de documents, et mon item sélectionné change...

    Merci de ton aide!


    bdd erreur.rar

    Citation Envoyé par jimbolion Voir le message
    gimli_morticia bonjour,

    Il est là ton smiley (déjà un problème de résolu )

    Bon et plus sérieusement, peux tu faire une copie de ton projet initial et lancer une fonction de compactage et réparation sur celui-ci. Si tout se passe bien, tu crées un nouveau projet et y importe les éléments nécessaires (tables, forms, requetes...) à la résolution de ton problème. Tu zip ton fichier, et tu l'envoie directement dans notre fil de discussion (tu disposes des outils nécessaires pour cela)

    Ensuite je reprends ton message :



    Pris d'un doute, j'ai fait un essai sur un formulaire en y plaçant des zones de liste et insérer un code sur la propriété événement <Sur Clic> qui fait appel à un procédure identique à la tienne. Je confirme et tu pourras faire l'essai que le .requery ne modifie pas l'item sélectionné et ne lance pas l'appel d’événements placés sur les autres zones de listes. N'aurais tu pas un autre événement exécuté sur les propriétés du formulaire par hasard (sur clic, sur modification...) ?



    Il vaut mieux chercher à comprendre l'instabilité initiale et l'origine du problème plutôt que trouver des palliatifs, pratique que je réprouve au plus haut degré

    Donc je te dis @++
    Amicalement

    Jimbolion

  7. #7
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Bonne nouvelle :-)
    J'ai continué à travailler dessus, et je me suis rendue compte que les switch d'affichage venaient des requêtes... Toutes les données n'étant pas dans toutes les tables, les liaisons n'étaient pas bonnes...
    Le pourquoi exactement je ne l'ai toujours pas compris, mais mon problème est résolu :-)

    Merci!

    Citation Envoyé par gimli_morticia Voir le message
    Hello!

    Bon enfin après avoir tripatouiller ma bdd dans tous les sens, il a accepté l'initiale zippée...

    Si tu peux regarder et essayer de trouver une explication...

    Voici mon erreur
    Je lance Frm_projets
    Je clique sur un item d'une des 3 lites de documents, et mon item sélectionné change...

    Merci de ton aide!


    bdd erreur.rar

  8. #8
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    gimli_morticia

    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/11/2011, 10h40
  2. Pas d'éxécution de l'événement sur clic d'un bouton
    Par sebac dans le forum VBA Access
    Réponses: 1
    Dernier message: 08/10/2007, 16h32
  3. Zone de liste deroulante sur excel
    Par Garfield5792 dans le forum Excel
    Réponses: 4
    Dernier message: 30/01/2007, 11h02
  4. [access 2003 + SQL] zone de liste basee sur requête
    Par guyaum dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 06/07/2006, 14h55
  5. [zone de liste] événement absence dans liste
    Par platon dans le forum Access
    Réponses: 1
    Dernier message: 07/11/2005, 09h57

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