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 :

Probleme lors de l'utilisation d'un call


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Points : 19
    Points
    19
    Par défaut Probleme lors de l'utilisation d'un call
    bonsoir , je vous envoie ce message car je suis bloqué par quelque chose de bizarre, j'ai crée un sub avec paramètres de cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Traitement(NomPays As String, Champ As Variant)
    et je veux appeler ma fonction donc j'ecris cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test0()
    Call Traitement(france, Longeur)
    End Sub
    on me met une erreur "type d'argument BYref incompatible"

    alors je précise que dans lorsque je veux ecrire Call Traitement( France,Longeur) il réécris tout seul Call Traitement(france, Longeur)

    or le nom de pays dans ma table commence toujours par une majuscule donc serait a cause d'un probleme de casse ?

    ou peu etre dois je ecrire "France" vu que mon c'est un string ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Vu que tu as : NomPays As String

    Il faut écrire : "France"

    Ensuite pourquoi Champ as Variant ?

    Si tu veux mettre le nom d'un champ, il te faut une donnée de type String.

    Philippe

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    alors j'ai corrigé en écrivant cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Traitement("France", "Longeur")
    le probleme maintenant c'est que ca buggue dans ma methode, on me dis "trop peu de parametres, attendu :1"

    c'est au niveau de cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set source = oDb.OpenRecordset("SELECT [ChampTest] FROM [PARAM] WHERE NameC='NomPays'", dbOpenDynaset)
    pour memoire ma table PARAM se presente comme ca :
    - champ NomPays de type string
    - un champ Longeur de type numerique
    je veux recupere la longueur pour le NomPays= France

    ps : tu as raison je sais pas pas pourquoi j'ai mis variant ! j'ai corrigé en string

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    petite précision je dis nimporte quoi ! mes deux champs dans ma table PARA sont NameC et Longeur ( qui est dans ma methode le "ChampTest" ie dont je veux recuperer sa valeur)

    en gros ma table est comme ca

    NameC Longeur
    France 3
    Espagne 4

    voila est en fait lorsque dans ma methode Traitement je mets en parametres
    "France" et "Longeur" que je mets bien comme entre guillements ca genere une erreur lors de ma requete pour recuperer la valeur de Longeur pour NameC= France

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set source = oDb.OpenRecordset("SELECT [ChampTest] FROM [PARAM] WHERE NameC='NomPays'", dbOpenDynaset)
    voila j'espere que c'est plus clair ! comme erreur j'ai toujours "trop peu de parametre.1 attendu"

    merci pour votre aide !

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour

    Comme déjà expliqué dans un autre post, vous confondez les notions de variables, de champs et de valeurs. Consultez les tutoriels sur les bases du langage VBA faute de quoi vous ne pourrez résoudre vos problèmes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT [ChampTest] FROM [PARAM] WHERE NameC='" & NomPays & "'"

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    je suis désolé c'est pour le boulot et du coup j'ai du apprendre beaucoup de choses sur le tas ! je vais suivre tes conseils et revoir tout les bases pour pouvoir mieux m'exprimer lorsque j'aurais des questions !

    MERCI BEAUCOUP en tout cas

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/06/2009, 15h42
  2. Réponses: 9
    Dernier message: 18/08/2008, 17h19
  3. Réponses: 5
    Dernier message: 11/04/2008, 12h53
  4. Probleme lors de l'utilisation statspack
    Par magboom dans le forum Administration
    Réponses: 6
    Dernier message: 14/08/2007, 17h14
  5. Réponses: 12
    Dernier message: 03/09/2006, 18h26

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