[ACCESS 2007] INSERT INTO caractère spéciaux

Résolu
Bonjour,

j'aimerais savoir la syntaxe pour inserer des caractères spéciaux (#, ', " <,>, etc.)
En effet ma zone de texte dans laquelle je veux inserer sa valeur dans une table est truffé de balises, car son format est texte enrichi(html)

J'ai essayé d'avoir recour à plusieur solutions, mais aucune d'elles ne fonctionne :

Insert into....values('" & monChamps & "')
Insert into ... values(""" & monChamps & """)
Insert into ... values('' & monChamps & '')

les erreur sont divers :
trop peu de paramètre, opérateur absent, etc ...

Il y a t-il une solutions ???? merci de m'aider
Configuration: Windows 2000
Internet Explorer 6.0

9 réponses

  1. J'espère avec un "è" pas j'espaire !!!! :-D
    Bref... Tout ça pour dire qu'en faite j'ai trouver la réponse
    Je récapitule pour ceux qui auront besoin d'aide :

    Sur Access 2007 lorsque vous vous inserer les valeurs d'un zone de texte au format enrichi dans une table, champs mémo evidement il faut :

    Valeur1 = Remplace(me.ZoneTexte,"'","''")
    Currentdb.execute"INSERT INTO MaTable1 (MonChamps1) VALUES ('" & Valeur1 & "')


    Voilà merci à tous pour votre aide
    1. Modérateur
      Tu l'as trouvée où ta fonction 'remplace' ?

      Elle n'existe pas en standard dans VBA.
  2. Non bien vu, je me suis trompée c'est vrai que de programmer en anglais avec de faux amis, cela crée des étourderies .
    C'est la fonction Replace et non Remplace
    1. Modérateur
      Salut,

      t'es en VBA ?

      Parce que tu peux construire ta requête avec chr(34) comme séparateur de chaine...

      toto = chr(34) & monchamp & chr(34)
      req = "insert into .... values(" & toto & ")"
      1. Oui je suis vba, mais cela empecherais un bug au niveau de l'insertion de caractère spéciaux dans la table
        1. Modérateur
          T'as testé ?
      2. Non cela ne marche pas, Erreur de syntaxe, opérateur absent, je crois que c'est impossible...
        1. Modérateur
          Tu peux mettre tes lignes de code ?

          J'ai toujours utilisé chr(34) pour les doubles-quotes dans ces cas-là et je n'ai jamais eu de souci...
      3. Euh double quotes c'est deux apostrophes ....?

        Mon code :
        message = Char(34) & me.message & Char(34)

        Currentdb.execute"update message set objet_message='" & me.objet & "', nom_message='" & me.message & "', message='' & message & '' where id_message = ' & me.liste_message.colmun(0) & '


        Si je fais un début print

        message = <div> align=center><font face="Time New Roman"> etc .....
        1. Modérateur
          c'est les guillemets de la touche 3...

          me.liste_message.colmun(0) ou column ?

          le mieux que tu aies à faire, c'est de préparer ta chaine de requête et ensuite de l'afficher avec un msgbox, comme ça tu verras la tête qu'elle a, parce que là, tu t'emmêles les pinceaux avec les simple quotes et les doubles quotes...

          strsql = "UPDATE message SET objet..."
          strsql = strsql + " la suite..."
          msgbox strsql

          currendb.execute (strsql)

      4. j'ai oublier de preciser l'erreur :

        erreur d'execution '3075':
        Erreuir de syntaxe(opérateur absent)
        1. bonjour
          pour inserer des caractéres specaux dan la base il faut que tu met la fonction addslashes devant ton parametre
          exemple:
          tu as une variable $nom1 que tu va l'ajouter dans la table
          $nom2=addslashes($nom1);
          et tu insert $nom dans la base
          remarque:
          pour enlever les antislashes utiliser la fonction stripslashes
          j'espaire vous avoir aider
          1. Modérateur
            Pas trop, ici, on est en VBA, pas en PHP !