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 :

Appel procédure public


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2023
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2023
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Appel procédure public
    Bonjour ,

    Depuis une procédure privée, j'appelle une procédure public (Public Sub B_Retour_match_Click()) qui appartient au sous-formulaire SF_parties

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!SF_parties.B_Retour_match_Click
    à l'exécution j'obtiens le message "Acces ne trouve pas le formulaire ......"

    J'ai également essayé avec le nom du formulaire auquel appartient le sous-formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!F_match!SF_parties.B_Retour_match_Click

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 961
    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 961
    Points : 4 897
    Points
    4 897

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2023
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2023
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    L'indispensable indique pour l'appel vers sous-formulaire : Forms.nom_form.nom_sousform1.Form.nom_controle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms.F_match.SF_parties.B_Retour_match_Click
    j'obtiens le message "Erreur d'exécution 438 Propriété ou méthode non gérée par cet objet

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 087
    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 087
    Points : 24 736
    Points
    24 736
    Par défaut
    Bonjour,

    Il manque le mot clef Form dans ton appel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms.nom_form.nom_sousform1.Form.nom_controle
    Soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms. "nom du formulaire"."nom du sous formulaire" .Form. "Nom du controle"
    Cordialement,

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 400
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 400
    Points : 2 036
    Points
    2 036
    Par défaut
    Salut,

    D'un point de vue purement syntaxique, on peut appeler un gestionnaire d'évènement situé dans un autre formulaire.
    Mais c'est tout sauf recommandé.
    D'une part si les gestionnaires d'évènement sont privés par défaut, c'est qu'il y a une raison !
    D'autre part tu introduit une dépendance forte entre les 2 formulaires (l'un ne peut fonctionner sans l'autre).
    Et tu violes le principe d'encapsulation.

    Qu'on se comprenne:
    Un formulaire est l'instance d'une classe.
    Une classe est une boite noir avec laquelle tu ne peux interagir que via les membres publique (fonctions, propriétés).
    Ce qu'elle fait en interne, le reste du monde n'en a rien à faire (et n'a pas vocation à le savoir).

    Déporte le code de ton gestionnaire d'évènement dans une fonction publique d'un module standard, et tu n'auras plus de problèmes.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2023
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2023
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Merci pour l'aide et les explications.
    J'ai finalement recopié le code de la procédure que je souhaitais appeler ; ce n'est certainement pas optimal mais ça fonctionne.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 400
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 400
    Points : 2 036
    Points
    2 036
    Par défaut
    Le problème du code "qui fonctionne" mais qui n'est pas correcte, est qu'il introduit des dépendances sournoises.
    C'est un énorme frein à la réutilisabilité (ta fonction m'intéresse, mais elle fait un truc qui ne me convient pas).
    En conséquence, les développeurs finissent pas écrire un truc qui fait la même chose sans les inconvénients (en clair: duplication de code).
    Plus grave, au fil des évolutions, il devient de plus en plus difficile, jusqu'à devenir impossible à maintenir (et je ne parle pas des coûts).

    Donc, autant faire correcte du premier coup.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/04/2006, 14h04
  2. Réponses: 2
    Dernier message: 20/03/2006, 10h39
  3. Appeler procédure d'un autre formulaire
    Par tonysky dans le forum Access
    Réponses: 7
    Dernier message: 30/01/2006, 15h37
  4. Appeler Procédure stockée depuis ACCESS
    Par Sunny dans le forum Access
    Réponses: 2
    Dernier message: 13/09/2005, 23h07
  5. [PL/SQL] Appel procédure stockée dans trigger
    Par Félia dans le forum Oracle
    Réponses: 3
    Dernier message: 24/01/2005, 18h25

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