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 :

Séquence des événements différents pour un enregistrement [AC-2010]


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Account Manager
    Inscrit en
    Décembre 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Account Manager
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 62
    Points : 62
    Points
    62
    Par défaut Séquence des événements différents pour un enregistrement
    Bonjour,

    Je rencontre un problème qui me parait très bizzare.

    Lorsque j'essaie d'ouvrir un formulaire qui contient différents sous-formulaires, pour un seul ID, la séquence d'événements est différente.
    Sur tout les ID, la séquence d'événements suit le standard, càd d'abord les événements des sous formulaires et ensuite les événements du formulaire.
    Pour l'ID en question, seuls les évéments du formulaire principal s'ouvrent laissant ses sous-formulaires sans traitement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub IDContratApporteur_Click()
        If IsNull(Me.IDContratApporteur) Then Exit Sub
        If CurrentProject.AllForms("frm_CommentaireContrat").IsLoaded Then DoCmd.Close acForm, "frm_CommentaireContrat"
        DoCmd.OpenForm "frm_DetailContrat", acNormal, , "IDContratApporteur=" & Me.IDContratApporteur, acFormReadOnly
        Exit Sub
    End Sub
    Dans l'exemple ci-dessus, le problème est que contrairement à tout les autres, lorsque je click sur un ID particulier il ouvre le formulaire "frm_DetailContrat" sans se soucier des sous-formulaires. Cela provoque une erreur car dans ce cas, l'IDContratApporteur n'est plus connu dans le code d'ouverture du formulaire principal (qui se base sur les infos de ses sous-formulaires)

    Une idée ? Je séche ...

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Bonjour,

    2 pistes :
    - stocker l'id dans une variable intermédiaire qu'on passe en paramètre
    - ajouter doevents pour empêcher le programme d'avancer tant que les traitements amont ne sont pas terminés
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre du Club
    Homme Profil pro
    Account Manager
    Inscrit en
    Décembre 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Account Manager
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 62
    Points : 62
    Points
    62
    Par défaut Oui ... mais
    Bonjour et merci pour votre réponse.

    1ere piste : Le fait de passer l'identifiant en paramètre et le récupérer de l'autre côté en "openargs" en la stockant dans une variable ne résoud pas le problème dans la mesure où les sous formulaires ne seront pas alimentés donc inexploitables.

    2e piste : dans ce cas le formulaire principal ne sera pas exploitable car il ne passe pas par les sous-formulaires avant le traitement du formulaire appelé.

    Pourquoi tout les ID appelés fonctionnent parfaitement et exécutent automatiquement les événements des sous formulaires et ensuite du formulaire alors que celui-ci n'exécute que les événements liés au formulaire ???

  4. #4
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Je suis d'accord avec la solution de Nico84 + vérifier tous les liens champs-père vs champs-fils

  5. #5
    Membre du Club
    Homme Profil pro
    Account Manager
    Inscrit en
    Décembre 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Account Manager
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 62
    Points : 62
    Points
    62
    Par défaut Doevents ...
    A quel moment et suivant quelle syntaxe je peux utiliser le doevents ?

    Merci pour votre aide.

  6. #6
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Ca se place n'importe où dans le code vba
    Cela garantit que le code "ne prend pas d'avance" : cela termine tout ce qui est commencé avant d'aller plus loin
    Il faut donc le placer avant d'exécuter un truc qui a besoin d'une info amont : ouverture et chargement d'une form, exécution d'une requete...
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  7. #7
    Membre du Club
    Homme Profil pro
    Account Manager
    Inscrit en
    Décembre 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Account Manager
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 62
    Points : 62
    Points
    62
    Par défaut Mystère ...
    Après avoir remué le code dans tout les sens, je me suis rendu compte qu'un enregistrement dans un sous-formulaire alimenté par query avec notion père/fils n'était pas correct, après correction de celui-ci tout fonctionne à présent parfaitement.

    Je n'arrive pas à m'expliquer comment il se fait qu'un enregistrement corrompu dans un sous formulaire change le mode de debuggage step by step et m'empêche de voir où se situe le problème. En bref, la résolution a été un coup de poker et je n'aime vraiment pas le fait de ne pas avoir réussi à cibler cela.

    Je ne vois toujours pas comment j'aurais pu faire surtout que j'ai executé tout les query de tout les sous-formulaires en passant le paramètre correspondant à l'enregistrement qui fait défaut et tout fonctionnait parfaitement.

    Si vous avez une idée, je suis preneur.

    Quoi qu'il en soit, je vous remercie beaucoup pour votre aide et vos conseils, et je vous souhaites un très bon week-end

  8. #8
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Access automatise un tas de trucs et ça nous arrange bien mais il faut faire attention que la situation ne nous échappe pas

    Quand j'exécute pas à pas je suis sidéré de voir à quel point les procédures événementielles ne s'exécutent pas dans l'ordre que j'aurais souhaité et souvent plusieurs fois chacune
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

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

Discussions similaires

  1. [WS 2003] Créer des dossiers différents pour des utilisateurs différents
    Par beegees dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 22/10/2009, 15h57
  2. Réponses: 2
    Dernier message: 14/04/2009, 10h27
  3. Réponses: 3
    Dernier message: 06/03/2009, 21h24
  4. Réponses: 6
    Dernier message: 25/03/2008, 16h13
  5. Réponses: 2
    Dernier message: 08/05/2006, 21h08

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