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 :

[VBA][débutant]passage de paramètre à une fonction d'un module


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Par défaut [VBA][débutant]passage de paramètre à une fonction d'un module
    Bonjour,


    est-il possible de mettre en paramètre une variable à une fonction se trouvant dans un module.
    j'ai essayé et à l'événement clique
    de mon bouton ça m'affiche une erreur.

    J'ai essayé de mettre la variable en global mais rien ne marche.
    Avez-vous une astuce?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Salut

    est-il possible de mettre en paramètre une variable à une fonction se trouvant dans un module
    Oui.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Par défaut
    Je reformule ma question

    j'ai créé un bouton qppelant une fonction à chaque clique
    ce qui donne:

    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
    24
    25
    26
    27
    28
    Sub createBut(entDonnéeX, entDonnéeY, name, typebut)
    Dim o As Integer
     
        Set ctlBut = CreateControl("frm_tableau", acCommandButton)
        ctlBut.name = name
     
        ctlBut.Width = 1500
        ctlBut.Height = 300
        ctlBut.Top = entDonnéeX
        'ctlBut.Left = 5000
        ctlBut.Left = entDonnéeY
        ctlBut.Caption = typebut
        ctlBut.FontBold = True
     
     
     
     
        If typebut = "VALIDER" Then
             'boutton d'enregistrement sur click
               ctlBut.OnClick = "=enregistrerDatas(nb)"
       Else
     
            'bouton de retour sur click
                ctlBut.OnClick = "=BackForm()"
       End If
     
     
    End Sub

    et la fonction
    enregistrerDatas()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Public Function enregistrerDatas(nb As Integer)
     
           'parcourir les textbox et les enregistrer
           MsgBox nb
     
     
     
        End Function
    lorsque j'entre en dur une valeur, la fonction se passe correctement.
    Par contre lorsque je mets comme paramètre la variable integer "nb" (qui a été déclarée au préalable en global) ça me met en erreur:

    l'expression sur clic d'entrée comme paramètre d ela propriété type événement est à l'origine de l'erreur.L'objet ne contient pas dobjet d'automatisation de l'objet nb

    Je n'arriv pa à résoudre ce pb

    Merci d'avance

  4. #4
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Et quel est le lien entre les 2 fonctions ??
    Ni l'une ni l'autre ne fait appel à l'autre...
    Donc forcément : rien ne se passe sauf une erreur.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Par défaut
    merci pour ta réponse et ta rapidité kikof!

    Je n'arrive pas à voir ce que je devrais fair pr solutionner le problème.
    Par ailleurs, comment se fait-il qu'en mettant en dur une valeur
    ctlBut.OnClick = "=enregistrerDatas(13)" par exemple
    cela m'affiche correctement le chiffre 13 alrs qu'en passant par une variable nb=2 ça m'affiche une erreur?

    Merci

  6. #6
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ctlBut.OnClick = "=enregistrerDatas(13)"
    Voilà ce qui manquait dans ton code ci-dessus

    Explications :
    Avec la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ctlBut.OnClick = "=enregistrerDatas(13)"
    Tu passes en paramètre 13. Ce qui est juste.
    13 sera affecté à la variable nb de la fonction enregistrerDatas et sera utilisée à l'intérieur de celle-ci (dans ton exemple avec la msgbox)

    D'après ce que je comprends :
    alrs qu'en passant par une variable nb=2 ça m'affiche une erreur
    Tu effectues ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ctlBut.OnClick = "=enregistrerDatas(nb=2)"
    Tu ne peux pas faire une affectation ici.
    Voici les exemples de ce que tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim maVariable As Integer
    maVariable = 15
    ctlBut.OnClick = "=enregistrerDatas(maVariable)"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ctlBut.OnClick = "=enregistrerDatas(15)"

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/08/2007, 16h07
  2. passage de paramètre à une fonction passée en paramètre
    Par bambou dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/08/2007, 10h39
  3. Passage de paramètre à une fonction dans un G_CALLBACK
    Par Dimitri_87 dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 15/09/2006, 11h04
  4. [PL/SQL] : Passage de paramètres à une fonction
    Par dcollart dans le forum Oracle
    Réponses: 5
    Dernier message: 13/07/2006, 10h17
  5. [VBA-E]passage de parametre à une fonction
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/02/2006, 17h51

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