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

VBA Access Discussion :

Erreur sur appel procédure d'un formulaire via un autre formulaire


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut Erreur sur appel procédure d'un formulaire via un autre formulaire
    Bonjour,

    Je travaille sur access 2003.
    Je teste l'appel de la procédure publique d'un formulaire via un autre formulaire.

    J'ai donc écrit le code suivant où :

    - A : est le formulaire sur lequel je veux déclencher ma Sub ;
    - B : est le formulaire à partir duquel je veux déclencher ma Sub ;
    - New : est ma procédure publique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub BtCreer_Click()
        DoCmd.OpenForm "A", acNormal, "", "", , acNormal
        Forms![A].New
        DoCmd.Close acForm, "B"
    End Sub
    Mais là, étrange, étrange, il me dit :

    Cette opération n'est pas autorisée si l'objet est fermé.
    Sauf que je l'ouvre préalablement et qu'il s'ouvre en effet correctement.
    Comprend pas
    A moins que l'objet en question ne soit pas mon formulaire A.
    Mais dans ce cas, de quoi s'agit-il ?
    Mystère et boule de gomme !

    Quelqu'un aurait-il une idée ?

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Cela me semble correct, tu n'est même pas obligé de déclarer ta procédure comme publique dans le code du formulaire "A", normalement.

    Sauf que "New" est un mot-clé. Modifie l'appelation de ta procédure pour commencer. Et si cela ne suffit, essaie d'ajouter un DoEvents.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DoCmd.OpenForm "A", acNormal, "", "", , acNormal
    DoEvents '<== à rajouter
    Forms![A].MaProcedureNew
    DoCmd.Close acForm, "B"
    Cela "bloque" l'exécution du code jusqu'à ce que les instructions précédentes soient entièrement exécutées.

    Cela fonctionne mieux ?

    Domi2

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut
    Merveilleux !

    J'ai modifié le nom de ma procédure publique et c'était bien le problème.
    Je saurais dorénavant qu'il faut éviter les "New".

    Et j'ai bétonné avec le DoEvents, pour faire bonne mesure.

    Merci beaucoup.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/04/2015, 17h25
  2. Mise à jour formulaire via un autre formulaire
    Par Alien_psy dans le forum IHM
    Réponses: 3
    Dernier message: 09/02/2013, 16h52
  3. Réponses: 10
    Dernier message: 24/03/2011, 14h33
  4. Réponses: 0
    Dernier message: 12/05/2008, 19h40
  5. Réponses: 4
    Dernier message: 14/06/2004, 16h18

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