Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2012, 13h53   #1
Nouveau Membre du Club
 
Inscription : janvier 2009
Messages : 130
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 130
Points : 29
Points : 29
Par défaut call & variable

Bonjour

Comment associer à la fonction CALL une variable.

Merci
fisio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 14h11   #2
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 263
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

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

Informations forums :
Inscription : février 2008
Messages : 263
Points : 309
Points : 309
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
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 13h18   #3
Expert Confirmé
 
Avatar de Godzestla
 
Homme
Chercheur de bonheur
Inscription : août 2007
Messages : 2 257
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : août 2007
Messages : 2 257
Points : 2 980
Points : 2 980
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 :
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 :
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.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 16h22   #4
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 263
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

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

Informations forums :
Inscription : février 2008
Messages : 263
Points : 309
Points : 309
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
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 16h42   #5
Expert Confirmé
 
Avatar de Godzestla
 
Homme
Chercheur de bonheur
Inscription : août 2007
Messages : 2 257
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : août 2007
Messages : 2 257
Points : 2 980
Points : 2 980
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 :
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 :
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.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 16h56   #6
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 263
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

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

Informations forums :
Inscription : février 2008
Messages : 263
Points : 309
Points : 309
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 !
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 11h15   #7
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 40
Points : 27
Points : 27
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..
rstck est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h44.


 
 
 
 
Partenaires

Hébergement Web