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

Requêtes et SQL. Discussion :

SQL et guillemets


Sujet :

Requêtes et SQL.

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 208
    Points
    208
    Par défaut SQL et guillemets
    Bonjour,
    J'aimerais créer cette requete dans du code VBA Access :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     insert into TAB_IMPORT_TEST SELECT   *  from TAB_IMPORT where TAB_IMPORT.Emplacement <>  "" ;
    Je n'arrive pas à l'écrire sous l'éditeur VBA : voiçi ce que j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cSQL3 = "insert into TAB_IMPORT_TEST SELECT   *  from TAB_IMPORT where TAB_IMPORT.Emplacement <> & Chr(34)"
           cSQL3 = cSQL3 & Chr(34) & ";"
    et ca ne fonctionne pas.
    si quelqu'un a une idée.
    MERCI

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Une idée :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cSQL3 = "insert into TAB_IMPORT_TEST SELECT   *  from TAB_IMPORT where TAB_IMPORT.Emplacement Is Not Null;"
    Bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 208
    Points
    208
    Par défaut
    Merci pour la bonne idée, mais ça ne résoud pas le problème des guillemets

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 088
    Points : 5 204
    Points
    5 204
    Par défaut
    Bonsoir,

    Le standard SQL pour encadrer une chaine est l'apostrophe ce qui permet d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cSQL3 = "insert into TAB_IMPORT_TEST SELECT   *  from TAB_IMPORT where TAB_IMPORT.Emplacement <> '' "
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Attention !

    Avec SQL ACCESS il faut perdre cette mauvaise habitude d'utiliser l'apostrophe. En effet cela peut occasionner des erreurs.
    En effet à part gérer du texte littéraire on a peut de chance de tomber sur des guillemets alors que l'apostrophe est présente dans les noms de personnes et des phrases, titres...

    Utiliser en priorité le guillemet.

    Ne provoque pas d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... WHERE champ='un poisson'
    Provoque une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... WHERE champ='l'élephant'
    Alors que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... WHERE champ="l'élephant"
    ne provoque pas d'erreur.

    Dans une string qui est déjà bornée par des guillemets il faut doubler celles contenues.

    Comme ceci par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dim strSQL as string
    strSQL = "... WHERE champ=""l'élephant"""
    Dans ton cas ça donnerait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQl = "insert into TAB_IMPORT_TEST SELECT   *  from TAB_IMPORT where TAB_IMPORT.Emplacement <>  """" ;"
    On peut également tomber sur le cas d'un traitement des minutes et secondes au format ' ".

    Voici une petite fonction pour traiter le contenu d'une variable suivant le séparateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function fGetSqlFormatMS(minuteSeconde As String, sep As String) As String
     
    fGetSqlFormatMS = Replace(minuteSeconde, String(1, sep), String(2, sep))
     
    End Function
    Que l'on préfère l'apostrophe ou le guillemet le problème est réglé.

    guillemet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT ... WHERE Champ = '" & fGetSqlFormatMS(mavaleur,"'") & "';"
    apostrophe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT ... WHERE Champ = """ & fGetSqlFormatMS(mavaleur,"""") & """;"
    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Le mieux serait d'utiliser une requête paramétrée. Ainsi, on évite tous les problèmes liés aux paramètres littéraux (apostrophes, dates à inverser, ...)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. problème de guillemets dans un parametre SQL
    Par Pitou5464 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 29/08/2006, 20h56
  2. [SQL] guillemet/crocher dans une requete sql
    Par pimpmyride dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/07/2006, 08h32
  3. [MySQL] sql et texte avec guillemets
    Par licorne dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 24/12/2005, 21h49
  4. pb de guillemet dans une requete SQL
    Par linouline dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/12/2005, 11h38
  5. [JSP][SQL]Probleme de guillemets avec SQL
    Par Drizzt [Drone38] dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/08/2005, 18h39

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