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 :

Balises HTML et champs Access [AC-2013]


Sujet :

VBA Access

  1. #1
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 970
    Points : 1 162
    Points
    1 162
    Par défaut Balises HTML et champs Access
    Bonjour,

    J'ai un champ texte enrichi dans un formulaire qui peut par exemple prendre la valeur:

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div>Bonjour <font color=red>&lt;Titre&gt; &lt;Nom&gt;</font>, &nbsp;</div>
     
    <div>&nbsp;</div>
     
    <div>Veuillez noter ci-après l'email de notre commercial XXX:</div>
     
    <div>&nbsp;</div>
     
    <div>&nbsp;</div>

    ...Ce qui nous donne en texte enrichi:

    Bonjour <Titre> <Nom>,

    Veuillez noter ci-après l'email de notre commercial DSL:
    Nom : Capture.PNG
Affichages : 652
Taille : 11,1 Ko

    Je voudrais insérer par double-clic la valeur du champ dans le sous-formulaire "Champs" encadré par un"<" et ">" à l'endroit où se trouve le curseur dans le corps de l'email.
    Je récupère bien cette position avec la commande SelStart mais elle ne tient pas compte des balises HTML qui existent dans ce champ.

    Evidemment, l'insertion ne se fait pas au point désiré.

    J'ai la solution au bout de mes doigts, je le sens, et c'est très frustrant.

    Avez-vous une idée?

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 368
    Points : 23 840
    Points
    23 840
    Par défaut
    Bonjour.

    Si Access ne te donne pas l'info, la méthode que j'essaierai serait de calculer un équivalent position pour chacun des caractères.
    Donc par code tu parcours la chaîne HTML caractère par caractère et tu calcules la position "réelle" de chacune des lettres.
    Ça donne un truc du genre.


    Où tout ce qui constitue une balise HTML (ex : <Div>)est "ignoré" et tout ce qui est "caractère en HTML" est compté pour un ex : &lt;.

    Donc ensuite tu récupères la position "réelle" et tu t'en sert pour retrouver la position HTML.
    Évidement dès que tu modifies la chaîne HTML tu es pris à recalculer toutes tes positions (ou du moins celles qui suivent la modf).

    A+

  3. #3
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 970
    Points : 1 162
    Points
    1 162
    Par défaut Balises HTML et champs Access
    Merci marot_r de ta réponse rapide,


    Quand tu dis:
    Où tout ce qui constitue une balise HTML (ex : <Div>)est "ignoré" et tout ce qui est "caractère en HTML" est compté pour un ex : &lt;.
    Je vois l'idée, mais je n'arrive pas à la conceptualiser: çà voudrait dire qu'il faudrait que je connaisse toutes les balises pour les intercepter? (ce qui est loin d'être le cas )

    Donc ensuite tu récupères la position "réelle" et tu t'en sert pour retrouver la position HTML.
    Décidément je coince sur le concept: tu pourrais me donner un exemple stp?

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 368
    Points : 23 840
    Points
    23 840
    Par défaut
    Bonjour.

    Les balises HTML commencent par < et finissent par > ou </ et > (ex : <div> … </div>) donc il est assez facile de les repérer sans en connaître le contenu.
    Pour les caractères spéciaux en HTML (ex : le &lt;) il n'y en a que quelques uns qui t'intéressent (du moins si tu ne travailles qu'en français) et les codes sont disponibles sur le Net.

    L'idée est d'avoir un truc du genre :



    Caratère Pos. HTML Pos écran
    < 1 0
    d 2 0
    i 3 0
    v 4 0
    > 5 0
    B 6 1
    o 7 2
    n 8 3
    j 9 4
    o 10 5
    u 11 6
    r 12 7
    13 8
    < 14 9
    f 15 9
    o 16 9
    n 17 9
    t 18 9
    19 9
    c 20 9
    o 21 9
    l 22 9
    o 23 9
    r 24 9
    = 25 9
    r 26 9
    e 27 9
    d 28 9
    > 29 9
    & 30 10
    l 31 10
    t 32 10
    ; 33 10
    T 34 11
    i 35 12
    t 36 13
    r 37 14
    e 38 15

    A+

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 368
    Points : 23 840
    Points
    23 840
    Par défaut
    Je pense que je me suis trompé en comptant les positions écran à la main mais l'idée est là.

    A+

  6. #6
    Membre émérite Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 500
    Points : 2 296
    Points
    2 296
    Par défaut
    Bonjour,
    Tu devrais utiliser le Wisiwig de Patrick Toulon !
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div>Bonjour <font color=red><div id='Titre'></div> <div id='Nom'></div></font>, &nbsp;</div>
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    webrowser1.Document.getElementById("Titre").value="Mr"

  7. #7
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 970
    Points : 1 162
    Points
    1 162
    Par défaut Balises HTML et champs Access
    Bonjour marot_r et Thumb down,

    Je vous remercie de vos réponses.

    @marot_r

    Je pense que je me suis trompé en comptant les positions écran à la main mais l'idée est là.
    J'ai compris l'idée !

    @Thumb down

    IE.Document.getElementById("Titre")="Mr"
    Est-ce que cela veut dire qu'il faut inclure une référence browser?

    Je m'explique:
    Cette appli doit tourner sur un runtime. ( d'où ma question sur la référence)
    Elle s'appuie sur l'existant, c'est à dire une saisie des commerciaux sur un fichier EXCEL.

    Puis le paramétrage et l'envoi d'un emailing à partir d'une interface access.

    Une image valant mieux qu'un discours: quelques copies d'écran:

    Modèle email:
    Nom : Capture2.PNG
Affichages : 618
Taille : 109,7 Ko

    Interface de paramétrage de l'emailing:
    Nom : Capture.png
Affichages : 604
Taille : 110,5 Ko

  8. #8
    Membre émérite Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 500
    Points : 2 296
    Points
    2 296
    Par défaut
    En fait je ne connais pas les contrôles de texte enrichit !

    Mais si ça ce trouve il est possible de communiquer avec le ID des balises !
    Si tu nommes par un ID tes div alors il est possible avec un contrôle gèrent le HTML de modifier la valeur !

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 368
    Points : 23 840
    Points
    23 840
    Par défaut
    Bonjour.

    Attention, les textes enrichis utilisent des balises qui ressemble à du HTML mais ce n'est pas du HTML pur plutôt une version simplifiée donc il est possible que ce qui est vrai pour le HTML ne puisse pas s'appliquer.

    A+

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

Discussions similaires

  1. [Derby] Balises html dans champ texte
    Par magweb dans le forum Autres SGBD
    Réponses: 0
    Dernier message: 06/03/2012, 09h57
  2. Réponses: 1
    Dernier message: 09/09/2009, 16h13
  3. Champ TEXTAREA déformé en inserant un texte contenant des tags (Balises) HTML
    Par brain001 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 01/10/2008, 14h12
  4. modifier un champs particulier dans un balise html
    Par ricault dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/06/2007, 15h25
  5. Insérer des Balises HTML dans un champ mémo
    Par Heureux-oli dans le forum IHM
    Réponses: 18
    Dernier message: 21/03/2007, 21h05

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