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 :

[DEB] Appel de procedure Private


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Par défaut [DEB] Appel de procedure Private
    Bonjour à tous,
    Le code suivant est tiré d'un livre( VBA pour A2000 ed WROX) pour expliquer la portée des variables locales mais ma question porte sur l'appel des procédures. Il est mis dans un module

    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
    Option Explicit
     
    Public Sub Procédure1()
    Dim intVariable1 As Integer
    Dim intVariable2 As Integer
    intVariable1 = 1
    intVariable2 = 2
    Debug.Print intVariable1
    Debug.Print intVariable2
     
    End Sub
     
    Private Sub Procédure2()
    Dim intVariable1 As Integer
    intVariable1 = 100
    Debug.Print intVariable1
     
    End Sub
    Private Sub TestLocal()
    Procédure1
    Procédure2
    Procédure1
    End Sub
    Puis on tape dans la fenêtre Exécution
    pour obtenir 1 2 100 1 2

    1)Ma question ne portent pas sur la portée des variables mais sur le fait que ce code ne marche que si on remplace Private Sub TestLocal() par Public Sub TestLocal() sinon on obtient le message "Erreur de compilation Procedure Sub ou function non définie "alors qu'à la compilation aucun message d'erreur n'est apparu. Est ce qu'il y a une explication.

    2) D'autre part si on tape dans la fenêtre execution Procédure1 elle va fonctionner alors que si on tape Procédure2 on a le même message d'erreur que précédemment.De même si on remplace Private Procédure2 par Public , l'appel fonctionne.

    3)Dernière Question Si on tape , dans la fenêtre execution, Procédure1() avec les parenthèses on obtient une "erreur de compilation Attendu:=" or normalement cet appel est licite.

    Si qq'un pouvait m'éclairer d'où viennent les erreurs de compilation, je lui en serait gré
    Merci de m'avoir consacré de votre temps
    Ps j'ai testé sous access2013 vb6 excel 2010 , le résultat est le m^me

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    Bonjour

    La particularité des Private Sub (par rapport aux Public) c'est qu'ils ne peuvent être utilisés que dans le module où ils se trouvent.

    Donc première question : est-ce que tes Sub sont dans le même module ?

    Titi95

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Par défaut
    Merci pour ton intérêt .
    Oui absolument tout est dans le même module

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    Si je lance directement l'exécution de TestLocal dans le code tout fonctionne, même avec les 3 Sub en Private.
    Par contre, en lançant à partir de la fenêtre Exécution, il faut effectivement que le Sub soit en Public.

    Désolé, mais je n'ai aucune autre réponse à te donner. Je n'avais jamais rencontré ce Pb.

    Titi95

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Par défaut
    Ok c'était un peu pour savoir si le pb était seulement chez moi.
    Par contre comment fais tu l'action "Si je lance directement l'exécution de TestLocal dans le code tout fonctionne,"
    En tout les cas Merci

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    Si je lance directement l'exécution de TestLocal dans le code tout fonctionne
    Tu te positionnes dans le Sub et tu fais F5 ou tu cliques sur la flèche dans la barre d'outils. (F8 pour du pas-à pas)

    Titi95

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Par défaut
    Merci

Discussions similaires

  1. Appels de procedures stockées dans une proc stockée ?
    Par Nadaa dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 17/07/2008, 10h32
  2. [langage]& dans appel de procedure
    Par Batou dans le forum Langage
    Réponses: 15
    Dernier message: 30/06/2005, 09h20
  3. appeler une procedure d'un sous formulaire
    Par kchrel dans le forum Access
    Réponses: 11
    Dernier message: 19/10/2004, 17h42
  4. Réponses: 3
    Dernier message: 21/09/2004, 07h35
  5. Réponses: 1
    Dernier message: 04/06/2003, 11h48

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