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 :

Inserer le double quote dans une chaine de requete


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut Inserer le double quote dans une chaine de requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                'Definition de la fonction SQL de mise a jour
                Dim RequeteSQL_FCT As String
                'Requete de MAJ de l'exploitant'
                RequeteSQL_FCT = "UPDATE Exploitants SET Exploitants.Nom = " & Nom_FCT & ", Exploitants.Prenom = " & Prenom_FCT & ", Exploitants.EVV = " & EVV_FCT & ", Exploitants.DateNaissance = " & DateNaissance_FCT & ", Exploitants.Adresse = " & Adresse_FCT & ", Exploitants.CodePostal = " & CodePostal_FCT & ", Exploitants.Commune = " & Commune_FCT & ", Exploitants.Telephone = " & Telephone_FCT & ", Exploitants.Fax = " & Fax_FCT & ", Exploitants.Courriel = " & Courriel_FCT & ", Exploitants.DossierHorsPlan = " & DossierHorsPlan_FCT & ", Exploitants.Commentaires = " & Commentaires_FCT & " WHERE (((Exploitants.CodeExploitant)=" & CodeExploitant_FCT & "));"
                'Execution de la requete
                MsgBox (RequeteSQL_FCT)
                'MajExploitant = DoCmd.RunSQL (RequeteSQL_FCT)


    Bonjour a tous.
    je cherche a mettre le signe " dans ma requete entre les valeurs de variable et et les nom car ma requete deconne aleatoirement et je pense que cela vient de l'absence de ces doubels quote.
    je pense que c'est avec un \ mais je n'arrive pas a trouver la bonne equation;

    pouvez vous me donner le saint grale qu'est la solution svp???????

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 351
    Points
    34 351
    Par défaut
    salut,
    si tu luttes pour la requete, mets déjà les quote de type texte dans la partie fixe, ensuite, tu peux faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replace(champ,"'","''")
    au final, ca donnerait ca (sauf type de champs mal interprété) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'Definition de la fonction SQL de mise a jour
                Dim RequeteSQL_FCT As String
                'Requete de MAJ de l'exploitant'
                RequeteSQL_FCT = "UPDATE Exploitants SET Exploitants.Nom = '" & Replace(Nom_FCT,"'","''") & "', Exploitants.Prenom = '" & Replace(Prenom_FCT,"'","''") & "', Exploitants.EVV = '" & replace(EVV_FCT,"'","''") & "', Exploitants.DateNaissance = #" & DateNaissance_FCT & "#, Exploitants.Adresse = '" & Replace(Adresse_FCT,"'","''") & "', Exploitants.CodePostal = " & CodePostal_FCT & ", Exploitants.Commune = '" & Replace(Commune_FCT,"'","''") & "', Exploitants.Telephone = " & Telephone_FCT & ", Exploitants.Fax = " & Fax_FCT & ", Exploitants.Courriel = '" & Courriel_FCT & "', Exploitants.DossierHorsPlan = '" & replace(DossierHorsPlan_FCT,"'","''") & "', Exploitants.Commentaires = '" & Replace(Commentaires_FCT,"'","''") & "' WHERE (((Exploitants.CodeExploitant)=" & CodeExploitant_FCT & "));"
                'Execution de la requete
                MsgBox (RequeteSQL_FCT)
                'MajExploitant = DoCmd.RunSQL (RequeteSQL_FCT)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Ok merci.

    tous mes champs sont de type texte....

    donc je vais tester pour voirsi ca marche.

    merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    j'arrive pas a faire marcher la technique...

    on peux pas forcer access a mettre les " avant et apres les variables sans toucher a mon code?

  5. #5
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 351
    Points
    34 351
    Par défaut
    ben il faut voir dejà tes variables, d'où elles sortent ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    de formulaires.
    mais je les recupere en passage de paramètre dans une fonctions.
    depuis cette fonction, je lance cette requete.

    toutes les variables sont de types texte lorsque je les recupere pour des raisons de facilité.
    a la limite, ya 3 valeurs numérique que je pourrais recuperer comme num et non comme texte...

    dans la table, les champs sont de ce type

    CodeExploitants = Num
    DateNaissance = Date/heure
    DossierHorsPlan = Oui/Non
    Commentaires = memo
    Le reste est en string…

  7. #7
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 351
    Points
    34 351
    Par défaut
    le true/false se transforme en -1/0 dans la requte...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    ca passe en valeur numérique effectivement.
    mais le probleme vient bien de la syntaxe de mon code avec les " et '

  9. #9
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 351
    Points
    34 351
    Par défaut
    tu peux nous faire un debug.print à la place du msgbox et nous dire ce que ca t'affiche, on ira plus vite que de tatonner stp

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    cela m'affiche la requete avec les bonne valeur a la place des noms de fonctions mais sans les "

    et comme je met des espaces dans mes champs, la requete plante...

    ma requete actuelle est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     RequeteSQL_FCT = "UPDATE Exploitants SET Exploitants.Nom = " & Nom_FCT & ", Exploitants.Prenom = " & Prenom_FCT & ", Exploitants.EVV = " & EVV_FCT & ", Exploitants.DateNaissance = " & DateNaissance_FCT & ", Exploitants.Adresse = " & Adresse_FCT & ", Exploitants.CodePostal = " & CodePostal_FCT & ", Exploitants.Commune = " & Commune_FCT & ", Exploitants.Telephone = " & Telephone_FCT & ", Exploitants.Fax = " & Fax_FCT & ", Exploitants.Courriel = " & Courriel_FCT & ", Exploitants.DossierHorsPlan = " & DossierHorsPlan_FCT & ", Exploitants.Commentaires = " & Commentaires_FCT & " WHERE (((Exploitants.CodeExploitant)=" & CodeExploitant_FCT & "));"

    il ne me manque plus que savoir comment mettre dans ma requete le signe " pour que cela marche....

  11. #11
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 351
    Points
    34 351
    Par défaut
    euh, le résultat du debug.print stp
    la requete en vba on l'a déjà eu dans les précédents post >_<"

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    voila...

    ma nouvelle requete est:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     RequeteSQL_FCT = "UPDATE Exploitants SET Exploitants.Nom = ?" & Nom_FCT & "?, Exploitants.Prenom = ?" & Prenom_FCT & "?, Exploitants.EVV = ?" & EVV_FCT & "?, Exploitants.DateNaissance = ?" & DateNaissance_FCT & "?, Exploitants.Adresse = ?" & Adresse_FCT & "?, Exploitants.CodePostal = ?" & CodePostal_FCT & "?, Exploitants.Commune = ?" & Commune_FCT & "?, Exploitants.Telephone = " & Telephone_FCT & ", Exploitants.Fax = " & Fax_FCT & ", Exploitants.Courriel = ?" & Courriel_FCT & "?, Exploitants.DossierHorsPlan = " & DossierHorsPlan_FCT & ", Exploitants.Commentaires = ?" & Commentaires_FCT & "? WHERE (((Exploitants.CodeExploitant)=" & CodeExploitant_FCT & "))"
     
     
                RequeteSQL_FCT = Replace(RequeteSQL_FCT, "?", "''")
    Images attachées Images attachées  

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    je precise que cela plante car il me dit que nom nom mn'est pas correct edans la syntaxe car un opérateur est absent ...

  14. #14
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 351
    Points
    34 351
    Par défaut
    je dois mal m'exprimer en afit

    que s'affiche-t-il dans la fenetre d'execution de ce code stp ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Definition de la fonction SQL de mise a jour
                Dim RequeteSQL_FCT As String
                'Requete de MAJ de l'exploitant'
                RequeteSQL_FCT = "UPDATE Exploitants SET Exploitants.Nom = '" & Replace(Nom_FCT,"'","''") & "', Exploitants.Prenom = '" & Replace(Prenom_FCT,"'","''") & "', Exploitants.EVV = '" & replace(EVV_FCT,"'","''") & "', Exploitants.DateNaissance = #" & DateNaissance_FCT & "#, Exploitants.Adresse = '" & Replace(Adresse_FCT,"'","''") & "', Exploitants.CodePostal = " & CodePostal_FCT & ", Exploitants.Commune = '" & Replace(Commune_FCT,"'","''") & "', Exploitants.Telephone = " & Telephone_FCT & ", Exploitants.Fax = " & Fax_FCT & ", Exploitants.Courriel = '" & Courriel_FCT & "', Exploitants.DossierHorsPlan = '" & replace(DossierHorsPlan_FCT,"'","''") & "', Exploitants.Commentaires = '" & Replace(Commentaires_FCT,"'","''") & "' WHERE (((Exploitants.CodeExploitant)=" & 
    CodeExploitant_FCT & "));"
                'Execution de la requete
                Debug.Print RequeteSQL_FCT
                'MajExploitant = DoCmd.RunSQL (RequeteSQL_FCT
    les valeurs mises dans un champs de type texte sont de simples quote, des fois que ca soit aussi d'ici que débute le pb

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Probleme résolu en utilisant cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     RequeteSQL_FCT = "UPDATE Exploitants SET Exploitants.Nom = ?" & Nom_FCT & "?, Exploitants.Prenom = ?" & Prenom_FCT & "?, Exploitants.EVV = ?" & EVV_FCT & "?, Exploitants.DateNaissance = ?" & DateNaissance_FCT & "?, Exploitants.Adresse = ?" & Adresse_FCT & "?, Exploitants.CodePostal = ?" & CodePostal_FCT & "?, Exploitants.Commune = ?" & Commune_FCT & "?, Exploitants.Telephone = " & Telephone_FCT & ", Exploitants.Fax = " & Fax_FCT & ", Exploitants.Courriel = ?" & Courriel_FCT & "?, Exploitants.DossierHorsPlan = " & DossierHorsPlan_FCT & ", Exploitants.Commentaires = ?" & Commentaires_FCT & "? WHERE Exploitants.CodeExploitant=" & CodeExploitant_FCT & ""
    et en remplacant les ? par des ' de cette sorte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RequeteSQL_FCT = Replace(RequeteSQL_FCT, "?", "'")
    Merci Beaucoup de m'avoir accordé de ton temps
    Tu ne peux pas savoir a quel point tu m'aide

    Merci merci merci merci.....



    Du coup je vais meme enlever le replace et remplacer les ? par des '.

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

Discussions similaires

  1. [Généralités] insertion double quote dans une chaine
    Par cool dans le forum WinDev
    Réponses: 6
    Dernier message: 27/12/2013, 13h14
  2. Réponses: 2
    Dernier message: 30/12/2010, 17h02
  3. [MySQL] Double quote dans une chaine
    Par Beniti dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/02/2009, 14h57
  4. [Système] Supprimer double quotes d'une chaine
    Par chienlou dans le forum Langage
    Réponses: 15
    Dernier message: 24/05/2006, 14h29
  5. [VB]probleme double quote dans une ressource de type string
    Par JulienCEA dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/02/2006, 12h38

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