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 :

Instruction Iff en VBA


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 97
    Par défaut Instruction Iff en VBA
    Bonjour,

    Je souhaite transcrire une requête SQL en VBA à des fins d'automatisation et j'ai donc le code suivant :

    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
     
    Public Sub REPONSE(ByVal noetude As String, strsql As String)
     
    Dim strtable As String
    Dim strcriteria As String
     
    strtable = "CARACATT, ETUDES, QUESTIONS, MODALITES"
    strcriteria = "CARACATT.no_etude in (" & noetude & ")"
    strcriteria = strcriteria & " And CARACATT.no_etude=ETUDES.no_etude And CARACATT.reponse=MODALITES.modalite AND CARACATT.question=MODALITES.question and ETUDES.no_etude=MODALITES.no_etude and QUESTIONS.question=MODALITES.question and QUESTIONS.no_etude=MODALITES.no_etude"
    strcriteria = strcriteria & " And (CARACATT.question)='INTENTION DE RECONSOMMATION'"
    strsql = "SELECT ETUDES.type_produit, CARACATT.no_produit, CARACATT.question, CARACATT.reponse, IIf([modalite_max]=5 And ([reponse]='1' Or [reponse]='2'),'1',IIf([modalite_max]=5 And ([reponse]='4' Or [reponse]='5'),'2',IIf([modalite_max]=4 And ([reponse]='1' Or [reponse]='2'),'1',IIf([modalite_max]=4 And ([reponse]='3' Or [reponse]='4'),'2',IIf(([modalite_max]=2 Or [modalite_max]=3) And [codage]=NON And [reponse]='2','2',IIf(([modalite_max]=2 Or [modalite_max]=3) And [codage]='NON' And [reponse]='1','1',IIf(([modalite_max]=2 Or [modalite_max]=3) And [codage]='OUI' And [reponse]='2','2',IIf(([modalite_max]=2 Or [modalite_max]=3) And [codage]='OUI' And [reponse]='1','1',IIf(([modalite_max]=3 Or [modalite_max]=5) And ([codage]='JE NE SAIS PAS' Or [codage]='JE NE SAIS SI JE L'ACHETERAIS OU NON') And [reponse]='3','3'))))))))) AS REPONSE_CARACATT, QUESTIONS.modalite_max, MODALITES.codage INTO REPONSE"
    strsql = strsql + " FROM " & strtable
    strsql = strsql + " WHERE ((" & strcriteria & "))"
    strsql = strsql & " GROUP BY ETUDES.type_produit, CARACATT.no_produit, CARACATT.question, CARACATT.reponse, QUESTIONS.modalite_max, MODALITES.codage;"
     
    End Sub
    Mon problème est que ACCESS me met un message d'erreur "ERREUR DE SYNTAXE : OPERATEUR ABSENT"...

    J'ai retourné la requête dans tous les sens mais je vois pas : je fais donc appel à un oeil extérieur pour trouver mon erreur !

    Quelqu'un voit où sa plante ???

    Merci de vos réponses...

  2. #2
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Faudrait rajouter un Pour voir à quoi ressemble la requête.
    [Access] Les bases du débogage => ici

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 97
    Par défaut Re
    Merci de votre réponse...

    L'erreur est provoqué au niveau des IIf, et on me précise qu'il manque un opérateur! Ne serait-ce pas un probléme au niveau des ' ' ???

  4. #4
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Comme ça, c'est pas très digeste.
    Le debug.print permettrait de voir ce qui réellement envoyé.
    [Access] Les bases du débogage => ici

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 97
    Par défaut Re
    où est ce que je dois mettre cette instruction ???

  6. #6
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 27
    Par défaut
    Bonjour.

    Il peut y avoir un probleme au niveau du nombre de parenthese fermante.

    Peut etre copier la formule dans excel pour visualiser a quelle parenthese ouvrante correspond la parenthes fermante.

    Cdlt.
    Jeannot2.

  7. #7
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    non Jeannot2 le nombre ouvert=nombre fermé et la requete est trop grande pour excel.

    l'erreur est là en rouge, gras, souligné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT ETUDES.type_produit, CARACATT.no_produit, CARACATT.question, CARACATT.reponse,
    IIf([modalite_max]=5 And ([reponse]='1' Or [reponse]='2'),'1',IIf([modalite_max]=5 And ([reponse]='4' Or [reponse]='5'),'2',IIf([modalite_max]=4 And ([reponse]='1' Or [reponse]='2'),'1',IIf([modalite_max]=4 
    And ([reponse]='3' Or [reponse]='4'),'2',IIf(([modalite_max]=2 Or [modalite_max]=3) And [codage]=NON And [reponse]='2','2',IIf(([modalite_max]=2 Or [modalite_max]=3) And [codage]='NON' And [reponse]='1','1',IIf(([modalite_max]=2 Or [modalite_max]=3) And [codage]='OUI' And [reponse]='2','2',IIf(([modalite_max]=2 Or [modalite_max]=3) 
    And [codage]='OUI' And [reponse]='1','1',IIf(([modalite_max]=3 Or [modalite_max]=5) And ([codage]='JE NE SAIS PAS' 
    Or [codage]='JE NE SAIS SI JE L'ACHETERAIS OU NON') 
    And [reponse]='3','3'))))))))) AS REPONSE_CARACATT, QUESTIONS.modalite_max, MODALITES.codage INTO REPONSE FROM CARACATT, ETUDES, QUESTIONS, MODALITES WHERE ((CARACATT.no_etude in () And CARACATT.no_etude=ETUDES.no_etude
     And CARACATT.reponse=MODALITES.modalite AND CARACATT.question=MODALITES.question and ETUDES.no_etude=MODALITES.no_etude and QUESTIONS.question=MODALITES.question and QUESTIONS.no_etude=MODALITES.no_etude And (CARACATT.question)='INTENTION DE RECONSOMMATION')) GROUP BY ETUDES.type_produit, CARACATT.no_produit, CARACATT.question, CARACATT.reponse, QUESTIONS.modalite_max, MODALITES.codage;
    il te faut un dédoublement de guillemet!

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 97
    Par défaut Re
    Bonjour,

    Et bien celle-là je n'y avait en aucun cas pensée...

    Comment faire alors pour tenir compte de l'apostrophe ???

    En tout cas MERCI BEAUCOUP de votre aide, je vais enfin pouvoir terminer mon projet, aprés 3 mois de labeur...

    Encore merci

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

Discussions similaires

  1. instruction conf.edit vba
    Par harjer dans le forum VBA Access
    Réponses: 16
    Dernier message: 15/06/2007, 08h32
  2. [VBA-E] une instruction Windows(fichierxls).Activate incomprise
    Par boutts dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/05/2006, 16h05
  3. [VBA-A]Problème avec instruction SendKeys
    Par m_haj dans le forum VBA Access
    Réponses: 4
    Dernier message: 27/04/2006, 13h00
  4. probleme code vba ne s'execute pas apres instruction sql
    Par arnogef dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 29/12/2005, 12h34
  5. Aide débutant instruction VBA tableau Excell
    Par damien33 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/09/2005, 10h31

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