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 :

[A-07] Question passage arguments Sub


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de AlainL
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 178
    Par défaut [A-07] Question passage arguments Sub
    Bonjour

    Un question concernant le passage d'arguments entre Sub :

    J'ai une Sub (privée) qui doit être appelée par 5 autres Sub activées par des événements. Elle comporte une requete de mise à jour (enfin comprise grâce à Kiki.Gaby - merci encore !).

    code de la Sub appelante:
    Code de la Sub appelée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub MySub(MonChamp)
    Dim db As Database
    Dim sql As String
    DoCmd.SetWarnings False ' pour ne pas avoir de message lors mise à jour
    sql = "UPDATE [SER] SET [SER].SER_COMNum = [Forms]![CLI]![COM]![COM_Num] WHERE [SER].SER_ID = MonChamp"
    DoCmd.RunSQL sql
    DoCmd.SetWarnings True
    End Sub
    Egalement essayé avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub MySub(ByVal MonChamp)
    Et en codant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "UPDATE [SER] SET [SER].SER_COMNum = [Forms]![CLI]![COM]![COM_Num] WHERE [SER].SER_ID =" &  MonChamp
    Ayant mis des MsgBox après "sql = ..." pour vérifier que le contenu soit bien ce que je voulais, j'obtiens bien dans le message que MonChamp soit le contenu désiré dans le deuxième code. Le premier ne remplaçant pas "MonChamp" par sa valeur.

    J'ai donc simplement copié 5 fois les lignes dans les Sub appelantes. Cela fonctionne très bien... mais c'est carrément agricole.

    Je préfererais passer un argument à une seule Sub appelée par les 5 autres. J'aurais tendance à penser que l'erreur vient de la manière d'écrire ce "MonChamp" (Syntaxe ?).

    Ai essayé entre crochet, pas plus de résultat.

    L'un de vous voit-il où est l'erreur ?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Ton champ contient quoi comme type de données?


    L'appel correct serait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub MySub(MonChamp As String)
    Jette un oeil ici

    Dans ton SQL, si c'est un String que tu passes, il faut des ' ou " en plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "UPDATE [SER] SET [SER].SER_COMNum = [Forms]![CLI]![COM]![COM_Num] WHERE [SER].SER_ID ='" &  MonChamp & "'"
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre confirmé Avatar de AlainL
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 178
    Par défaut
    Arggghhh ! C'était effectivement cela, manque de guillemets.

    Merci beaucoup Heureux-Oli

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

Discussions similaires

  1. Passage argument Formulaire->Etat
    Par dagan dans le forum VBA Access
    Réponses: 10
    Dernier message: 12/12/2007, 13h34
  2. Access passage arguments
    Par benejepo dans le forum IHM
    Réponses: 12
    Dernier message: 10/09/2007, 09h51
  3. Question passage .NET 1.x vers 2.0
    Par pierre.ricci dans le forum Framework .NET
    Réponses: 4
    Dernier message: 21/08/2007, 16h38
  4. Réponses: 2
    Dernier message: 03/05/2007, 13h17
  5. Probleme passage argument thread
    Par Leguerinos dans le forum POSIX
    Réponses: 3
    Dernier message: 15/02/2007, 15h29

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