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 :

Sql et Texte enrichi


Sujet :

VBA Access

  1. #1
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 31
    Par défaut Sql et Texte enrichi
    Bonjour,

    Je ne trouve pas de réponse à mon pb et pourtant je pense qu'il n'est pas hyper compliqué.

    Je souhaite sauvegarder par update (sql) un texte enrichi.
    En texte brut je mettais """ xxx """ mais en texte enrichi cela plante.
    Quel sont le ou les codes pour protéger tout un ensemble de balises Html ?

    Merci



    petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        sql = "UPDATE Chiffrage SET désignation_chiff = """ & Me.w_texte & """ WHERE ref_chiff = " & Me.w_ligne & ""
        CurrentDb.Execute (sql)
        sql = "UPDATE Work_Chiffrage SET param_désignation = """ & Me.w_texte & """ WHERE param_code = '" & Me.w_code & "'"
        CurrentDb.Execute (sql)
    la variable Me.w_texte est le texte enrichi.

    qui prend la forme de ceci par exemple :
    <div><font style="BACKGROUND-COLOR:#00FFFF">eeeeeeeeffffffff &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font
    color=red><strong>&nbsp;&nbsp;fffffffffffffffff &nbsp;&nbsp;</strong></font><font
    color=white style="BACKGROUND-COLOR:#008000">&nbsp;&nbsp;&nbsp;&nbsp;fffffffffffffff</font></div>

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 146
    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 146
    Par défaut
    Bonjour,
    C'est normal que ça plante. Tu as des double-cotes qui se baladent dans ton code Html. Il faut utiliser des simple-cote comme séparateur de chaine SQL.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        sql = "UPDATE Chiffrage SET désignation_chiff ='" & Me.w_texte & "' WHERE ref_chiff = " & Me.w_ligne & ""
    Dans le cas ou tu utilises également des simples-cote dans ton code Html il faut penser à les doubler. Note que tu peux également faire ça avec des double-cotes.

    Exemple :
    Simple et double
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        sql = "UPDATE Chiffrage SET désignation_chiff ='" & replace(Me.w_texte,""","""") & "' WHERE ref_chiff = " & Me.w_ligne & ""
    Simple et simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        sql = "UPDATE Chiffrage SET désignation_chiff ='" & replace(Me.w_texte,"'","''") & "' WHERE ref_chiff = " & Me.w_ligne & ""
    Double et double
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        sql = "UPDATE Chiffrage SET désignation_chiff =""" & replace(Me.w_texte,""","""") & """ WHERE ref_chiff = " & Me.w_ligne & ""
    Bref de quoi tester.

    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

  3. #3
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 31
    Par défaut
    merci bien, je vais tester tout de suite.

  4. #4
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 31
    Par défaut
    Citation Envoyé par orokham Voir le message
    merci bien, je vais tester tout de suite.
    Le compilateur ACCESS 2010 refuse toutes tes solutions ... zut et zut

    Une tite question ! Si on arrive à passer le Html par Sql c'est bien mais on perd le "texte" original de la mise en forme ? Donc cette mise en forme au rappel du texte n'est plus bonne ?

  5. #5
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    As-tu utilisé la fonction Replace(..) à la fois sur Me.w_texte et sur Me.w_code ?
    Les deux sont susceptibles de contenir des guillemets.

    A+

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 146
    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 146
    Par défaut
    Le html est un langage, il ne contient pas de mise en forme mais que des balises.

    Si le compilateur refuse c'est qu'il y a un problème de double-cote. Par contre si c'est SQL qui refuse à l'exécution c'est qu'il y a un problème de double ou simple cote.
    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

  7. #7
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 31
    Par défaut
    Merci à tous pour vos réponses.

    Quand je parlais de perte de mise en forme, je cite un exemple :
    - cette mise en forme : <font style="BACKGROUND-COLOR:#00FFFF">
    - Admettons qu'en sql j'y arrive (ce qui n'est pas le cas) et que cela devienne avec un replace (xxx,""","$") :

    - <font style=$BACKGROUND-COLOR:#00FFFF$> ==> je pense que cette balise n'est plus 'comprise' par le Html ...
    Mais quand Microsoft à ajouté cette fonctionnalité de texte enrichi, cela me semble impossible qu'ils n'aient pas pensé à pouvoir 'véhiculer' ces données avec aisance dans access.

    J'ai aussi remarqué que le texte enrichi n'est pas traduit dans les listbox. Si on enrichi du texte il se promène avec toutes ses balises dans les menus !!! pff pas beau du tout.


    Concernant Sql et les "" ou """ ou '" .. c'est le compilateur qui refuse toutes les combinaisons. Dire que j'ai acheté Access 2010 pour ces fonctionnalités la

  8. #8
    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 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    salut,

    peut-on voir le contenu sql de la requete actuellement utilisée stp ?

    selon le niveau d'erreur, tu peux envisager :
    - de transformer temporairement tes quotes (simples ou doubles) par d'autres caractères
    - de découper ton remplacement en plusieurs étapes
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 146
    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 146
    Par défaut
    Bonjour,

    D'une part tu confond texte enrichi et html.

    Le texte enrichi c'est du RTF (Rich Text Format) alors que le Html c'est de l'Hypertext Markup Langage. ça n'a rien à voir. ACCESS sait afficher la mise en forme RTF mais n'imterprète pas l'Html, pour cela il te faut un ACTIVE X, comme celui d'IE.

    Que tu stockes les fables de la fontaine, de l'html du rtf ou même du code C pour ACCESS c'est pareil, ça reste du texte. Donc je ne vois pas pourquoi tu cherches à contourner un problème de syntaxe qui est de ton seul fait (en remplaçant des " par des $... et lorque tu va rencontrer des $ tu vas les remplacer par quoi ?!)

    Commence par respecter la règle VBA, 'tout caractère spécial doit être doublé" Il y a d'ailleurs un tuto sur le débogage des requêtes en VBA.

    Comme tu le vois le problème ne vient ni de Microsoft ni d'ACCESS 2010 et encore moins de SQL, c'est simplement un problème de connaissance.

    Tu n'a plus qu'à poster ton code.

    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

  10. #10
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 31
    Par défaut
    Je met l'image complète de la petite application que je fait et vous verrez l'erreur.





    http://i46.servimg.com/u/f46/13/66/36/55/ex0111.jpg

    http://i46.servimg.com/u/f46/13/66/36/55/ex0210.jpg

    Dans cette partie de code je cherche seulement à "passer" mon texte enrichi dans une table en sql. (Sans perdre le texte enrichi car actuellement je l'enlève avec plaintext)

  11. #11
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    J'ai essayé comme ci-dessous et ça fonctionne.

    Hypothèses :
    Chiffrage.désignation_chiff est alphanumérique
    Chiffrage.ref_chiff est numérique
    Work_Chiffrage.param_désignation est alphanumérique
    Work_Chiffrage.param_code est alphanumérique

    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
    Dim sql As String
    Dim sw_texte As String, sw_ligne As String, sw_code As String
     
        sw_texte = Replace(Nz(Me.w_texte, ""), "'", "''")
        sw_ligne = Str(Nz(Me.w_ligne, 0))
        sw_code = Replace(Nz(Me.w_code, ""), "'", "''")
     
        sql = "UPDATE Chiffrage SET désignation_chiff = '" & sw_texte & "' WHERE ref_chiff = " & sw_ligne
        ' Pour déboguer on peut mettre un Debug.Print
        ' Debug.Print sql
        CurrentDb.Execute sql
     
        sql = "UPDATE Work_Chiffrage SET param_désignation = '" & sw_texte & "' WHERE param_code = '" & sw_code & "'"
        ' Pour déboguer on peut mettre un Debug.Print
        ' Debug.Print sql
        CurrentDb.Execute sql
    A+

  12. #12
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 31
    Par défaut
    1 mot .. LedZeppII = GEANT.

    Merciiiii.

    Sans vouloir tirer trop sur la corde, tout les codes apparaissent maintenant dans la listbox.
    Y a t il un moyen de mettre une textbox en texte enrichi aussi ?

    Merci merci

  13. #13
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    Le format texte enrichi n'existe que pour les zones de texte.
    Propriété «Format du texte» dans l'onglet «Données» de la feuille de propriétés de la zone de texte.

    Pour une zone de liste, il faut convertir en texte brut.
    Par exemple :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Chiffrage.ref_chiff, PlainText([Chiffrage].[désignation_chiff]) AS des_chiff FROM Chiffrage
    A+

  14. #14
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 31
    Par défaut
    Merci .. Super !!
    Et bonne journée à tous.

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

Discussions similaires

  1. [AC-2003] Champ texte enrichi vers base sql server 2008
    Par Piou2fois dans le forum Projets ADP
    Réponses: 9
    Dernier message: 06/02/2012, 09h44
  2. [MySQL] sql et texte avec guillemets
    Par licorne dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 24/12/2005, 22h49
  3. SQL champ texte UNIQUE insensible à la casse
    Par Mike@Nestor dans le forum Langage SQL
    Réponses: 8
    Dernier message: 17/10/2005, 09h31
  4. [VB.NET] Comment envoyer du texte enrichi(couleurs,style...)
    Par fdiedler dans le forum Windows Forms
    Réponses: 14
    Dernier message: 17/03/2005, 15h49
  5. Editeur de texte enrichi
    Par Bidouille dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/11/2004, 03h25

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