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 de procédure, avec paramètre variable


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2010
    Messages : 42
    Par défaut Appel de procédure, avec paramètre variable
    Bonjour,

    j'essaye d'appeller une procédure avec un test préalable, comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ResChoixPause = MsgBox("Tenit compte des pauses", vbYesNo)
    
    If ResChoixPause = 7 Then
    
    StrCallHeure2 = ("Call Heure2(enregistrement![Date], enregistrement![H_Depart], enregistrement![H_Arrivee], enregistrement![No_Chauffeur], enregistrement![No_Tournee], enregistrement![Pause], [TPauseCent], enregistrement![Lavage], [lavageT], [T], [TJ], [TN], [T10Suppl], [tdeparr])")
    
    Else
    
    StrCallHeure2 = "Call Heure2(enregistrement![Date], enregistrement![H_Depart], enregistrement![H_Arrivee], enregistrement![No_Chauffeur], enregistrement![No_Tournee], 0, [TPauseCent], enregistrement![Lavage], [lavageT], [T], [TJ], [TN], [T10Suppl], [tdeparr])"
    
    End If
    et ensuite

    je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.execute StrCallHeure2
    ,

    maitenant j'ai une erreur de type 13

    j'avais aussi essayé de construire une châine mais cela marchait pas.

    qqn a-t'il une idée?

    merci

    Pascal

  2. #2
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    Pago283,

    Un call s'utilise de la manière suivante

    call (arg1,arg2,...)


    soit dans ton cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Heure2(enregistrement![Date], enregistrement![H_Depart], enregistrement![H_Arrivee], enregistrement![No_Chauffeur], enregistrement![No_Tournee], enregistrement![Pause], [TPauseCent], enregistrement![Lavage], [lavageT], [T], [TJ], [TN], [T10Suppl], [tdeparr])
    Dans l'appel des variables entre [ je ne suis pas fan !

    Pour une fonction et récupérer une valeur

    RetVal = mafonction(arg1,arg2)

    JimboLion

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2010
    Messages : 42
    Par défaut
    Bonjour,

    merci pour ta réponse, en fait ceux qui commence par sont des champs provenant d'une table remplie, et dans ces fameux paramètres que je désire faire passant il y en a un qui tout dépend de la réponse que l'utilisateur me donne, doit soit utiliser le champ pour le calcul ou bien ne pas utiliser le champ et c'est pour cela que je le remplace par 0
    en fait j'essaie de construire le Call et ensuite une chaîne crée, mais je ne sais pas comment faire...

    merci

  4. #4
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    Pago283 re-bonjour,

    Pour différencier variables et valeurs issues d'une table pas de soucis tu peux t'imposer la norme que tu veux, bien qu'elle me paraisse surprenante.

    Microsoft décourage d'ailleurs ce genre de pratiques

    http://msdn.microsoft.com/fr-fr/libr...(v=vs.90).aspx

    Pour ton autre question, je ne vois pas l'intérêt de générer une chaîne dans ton code permettant de générer un appel de fonctions. J'ai utilisé de nombreux langages de programmation dans mon univers professionnel et n'ai jamais vu cette pratique. A moins d'une raison évidente ou d'une technique récente de dev (et là j'en appelle à la réflexion d'autres membres), je crois que la meilleure façon de procéder est encore d'utiliser les syntaxes natives du langage.

    Cela n'engage que moi mais le tout me semble curieux...

    JimBoLion

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2010
    Messages : 42
    Par défaut
    re Jimbolion

    de mon côté je ne suis pas un programmeur émérite, juste un touche code .

    et disons que je n'ai surement pas un niveau très élevé en programmation, mais j'essaie de trouver une façon...bien à moi....d'effectuer l'action que je désire faire, car peut-être il y en a une autre, mais je vois pas laquelle comme cela..

    en fait au final est-il possible de construire une chaîne qui puisse me servir pour appeler une procédure genre

    call string

    dans ce "string" il y aurait..

    Maprocédure (arg1,arg2,arg3,....)

    jusqu'à maintenant je n'y arrive pas

    en tout cas merci de te pencher sur ma question, c'est sympa à toi

  6. #6
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    Et si fais comme ça ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ResChoixPause = MsgBox("Tenir compte des pauses", vbYesNo)
     
    If ResChoixPause = 7 Then
       ' Cas_1
       Call Heure2(enregistrement![Date], etc...)
    Else 
       ' Cas_2
       Call Heure2(enregistrement![Date], etc...)
    End If
    ... en ayant des arguments différents dans Cas_1 et dans Cas_2, qu'est-ce qui te gènes ?
    J'ai le sentiment que ça revient à ce que tu veux faire.

    est-il possible de construire une chaîne qui puisse me servir pour appeler une procédure genre
    A ma connaissance, ça n'existe pas dans le language VB.
    Tu as toutefois la méthode Application.Run dans Access (je ne l'ai jamais utilisée), qui s'en approche.

    A+

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

Discussions similaires

  1. Procédure stockée avec paramètres variables
    Par Devlin111 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/05/2012, 13h47
  2. appel fichier batchs avec paramètres variables
    Par staticx dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 21/08/2007, 08h04
  3. appel procédure avec paramètres ds fonction
    Par cpattin dans le forum VB.NET
    Réponses: 7
    Dernier message: 14/06/2007, 22h11
  4. Réponses: 4
    Dernier message: 09/02/2006, 16h22
  5. [Débutant]Procédure avec paramètres entrée / sortie
    Par jeromejanson dans le forum Langage
    Réponses: 13
    Dernier message: 10/10/2005, 08h30

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