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 :

call & variable


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 144
    Points : 64
    Points
    64
    Par défaut call & variable
    Bonjour

    Comment associer à la fonction CALL une variable.

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Points : 383
    Points
    383
    Par défaut
    bonjour,
    Perso je ne comprends pas ta question... que veux-tu réellement faire ?
    Pour moi, CALL n'est pas une fonction, mais une instruction... Me trompe-je ?

    Michel

  3. #3
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Citation Envoyé par Orion34080 Voir le message
    bonjour,
    Me trompe-je ?
    Michel
    Que Nenni, point de tromperie il n'y a !

    Il n'est pas possible d'associer l'INSTRUCTION call à une variable car la procédure appelée doit être statique

    Donc, ceci ne fonctionnera pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub bonjour()
    Dim proc As String
    proc = "Micro"
    Call proc
    End Sub
     
    Sub Micro()
    MsgBox "hello World"
    End Sub
    Mais, en revanche, ceci fonctionnera.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub bonjour()
    Dim proc As String
    proc = "Micro"
    Application.Run proc
    End Sub
     
    Sub Micro()
    MsgBox "hello World"
    End Sub
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Points : 383
    Points
    383
    Par défaut
    Bonjour Godzestla
    Si tu repasses par là, m'ôterais-tu d'un doute ?

    etC'est pareil ou c'est différent ? Et si différent cela est, en quoi l'est-ce ?

    Merci
    Michel

  5. #5
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Re,

    selon moi, qui n'utilise quasi jamais, call, c'est pareil sans l'être.

    Si la procédure à appeler est une procédure interne à ton code (SUB), je pense que les lignes suivantes sont équivalentes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub essai()
    message
    Call message
    Application.Run "message"
    End Sub
     
    Sub message()
    MsgBox "bonjour"
    End Sub

    Mais d'après l'aide en ligne, call permet également de transférer le contrôle à une DLL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ' Call a Microsoft Windows DLL procedure. The Declare statement must be 
    ' Private in a Class Module, but not in a standard Module.
    Private Declare Sub MessageBeep Lib "User" (ByVal N As Integer)
    Sub CallMyDll()
        Call MessageBeep(0)    ' Call Windows DLL procedure.
        MessageBeep 0    ' Call again without Call keyword.
    End Sub
    Tu remarqueras que dans l'exemple donné, l'appel est présenté avec et sans call.

    Alors, tu as raison, cela semble bien équivalent.

    A voir selon les désirs de lisibilité.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Points : 383
    Points
    383
    Par défaut
    Merci l'ami.
    Nous arrivons finalement aux mêmes conclusions : dans la grosse majorité des cas cela semble bien être une question de "lisibilité".
    Michel
    Perso je n'utilise jamais call non plus !

  7. #7
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 52
    Points : 48
    Points
    48
    Par défaut
    Autour de nous sur le web, on a pu dire que l'instruction call sert à

    (i) la lisibilité
    (ii) un transfert de code aisé (en VB.NET par exemple)
    (iii) ignorer les valeurs renvoyées par les fonctions mais sans gain temps/mémoire parce qu'une variable est toujours allouée pour renvoyer la valeur d'une fonction, même appelée avec call
    (iv) rajouter 7 caractères par appel à ton code (call + espace + deux parenthèses) - sic -

    Vous avez donc raison..

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/12/2009, 14h34
  2. [PDO] Undefined variable + Call to a member function query() on a non-object + MVC
    Par blopjerem dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/10/2009, 20h35
  3. utilisation variable avec Call
    Par DD339 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 06/08/2009, 15h14
  4. CALL et nom de variable
    Par korbine dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2009, 09h51
  5. [XHTML] Problème de variable &
    Par navis84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/08/2008, 09h55

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