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 :

écriture d'une requête SQL en VBA, pb lié à '


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Par défaut écriture d'une requête SQL en VBA, pb lié à '
    Bonjour,

    Je suis désolée de demander cela sur le forum, mais je suis en stage et mon maitre de stage est en congés et je suis bloquée !
    J'ai du créer une base Access au cours de celui-ci or je ne suis pas développeur, donc "je ne sais pas écrire" en ce qui concerne le code, et bien que je cherche beaucoup, je bloque parfois...
    Et là c'est le cas.

    Access n'accepte pas le str écrit de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Rang_Contact_AfterUpdate()
     
    Dim bd As Database, jeu As Recordset, str As String
    Set bd = CurrentDb
     
    str = "SELECT Contacts.NOM_CONTACT FROM Contacts " & _
    "WHERE (((Contacts.NO_CONTACT) = '" Me.Rang_Contact & "') AND ((Contacts.COD_CLI)='" & Me.Code_Client & "'));"
     
    Set jeu = bd.OpenRecordset(str)
     
    Me.Choix_Contact = jeu!Nom_Contact
     
    Me.Requery
    Faut il que j'utilise des Chr(34) pour remplacer les guillemets ? J'ai essayé mais sans succès... Je sens que c'est un tout petit truc qui bloque c'est frustrant !
    Est ce que quelqu'un pourrait m'aider svp ?!

    Par ailleurs j'ai un autre problème dans ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Choix_Contact = jeu!Nom_Contact
    Access n'accepte pas que j'écrive NOM_CONTACT en majuscule alors que c'est ainsi que le champ est nommé dans la table (Contacts). Est ce un problème ? Si oui, comment faire pour écrire de la sorte ? j'ai essayé copier/collé, réécrire plusiurs fois entièrement le nom, mettre des crochets, ça n'y change rien, cela change automatiquement NOM_CONTACT en Nom_Contact.

    C'est bizarre... auriez vous une explication ?

    Merci d'avance de votre aide !

  2. #2
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    il faut doubler les quotes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Replace(ExprVar, "'", "''")
    Sinon la casse du nom des champs n'est pas significative.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Par défaut
    Salut,

    Merci pour l'info, j'avais essayé avec Replace, j'ai réessayé, mais je dois mal l'utiliser, voilà ce que cela me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    str = "SELECT Contacts.NOM_CONTACT FROM Contacts "
    "WHERE (((Contacts.NO_CONTACT) = Replace(Me.Rang_Contact, "'", "''")) AND ((Contacts.COD_CLI) = Replace(Me.Code_Client, "'", "''");"
    Mais cela ne passe toujours pas, je ne comprends pas ce qui cloche, j'ai essayé comme cela aussi, mais c'est encore à coté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    str = "SELECT Contacts.NOM_CONTACT FROM Contacts "
    "WHERE (((Contacts.NO_CONTACT) = '" & Replace(Me.Rang_Contact, "'", "''")) & "' AND ((Contacts.COD_CLI) = '" & Replace(Me.Code_Client, "'", "''") & "';
    pourrais tu me dire ce que j'écris mal, stp ?

    Merci beaucoup

  4. #4
    Membre Expert
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Par défaut
    Tu trouveras dans ma signature un tutoriel de déboggage de requêtes SQL écrites en VBA, dont tu reconnaitras l'auteur ...

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

    No_Contact est de type texte ou numérique ?
    Si c'est du numérique enlève les '.

    Starec

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Par défaut
    ok,
    j'vais regarder ça
    merci

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Par défaut
    Merci Starec !!!

    C'est ça, NO_CONTACT est un champ numérique !
    Ahhhh j'en reviens pas je me suis déjà fait avoir sur exactement le même truc ! Comme quoi le proverbe a raison :

    " il faut apprendre et oublier 7 fois avant de savoir pour de bon..."

    Allez plus que 5 fois !! je tiens le bon bout !

    Merci à tous !
    Marie

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

Discussions similaires

  1. Problème avec une requète SQL en vba
    Par mephistomauvis dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/12/2008, 19h41
  2. D'une requête SQL au VBA
    Par Fabrice7627 dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 22/02/2008, 17h40
  3. Réponses: 6
    Dernier message: 15/02/2007, 13h46
  4. Récupérer la valeur des champs calculés dans une requète SQL dans vba
    Par FrédéricCM dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 28/06/2006, 16h29
  5. Conversion d'une requête SQL en VBA
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 26/10/2004, 17h33

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