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

Access Discussion :

Affichage des caractères spéciaux dans un formulaire ou état


Sujet :

Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 106
    Points : 135
    Points
    135
    Par défaut Affichage des caractères spéciaux dans un formulaire ou état
    Bonjour,

    Je voudrais savoir comment on peut forcer Access à interpréter des caractères spécifiques.
    Je m'explique un peu plus : je lis un fichier texte ligne par ligne et caractère par caractère. Je mets ensuite chaque ligne dans un enregistrement (en plus d'autres informations) d'une table. Comme je lis caractère par caractère, je reconstruis ma ligne en concaténant les caractères.
    Le hic, c'est que les caractères spécifiques comme la tabulation, le saut de ligne et le retour chariot apparaissent ensuite dans la table comme des petits carrés :



    Dans ma table, ce n'est pas génant, mais lorsque j'affiche les données dans un formulaire ou un état, c'est franchement dégueulasse à voir.
    Y a t'il un moyen pour forcer Access à interpréter ces caractères spéciaux (notamment les tabulations) ?

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 184
    Points : 1 363
    Points
    1 363
    Par défaut
    Si tu lis caractère par caractère, tu peux utiliser le code ascii du caractère que tu lis. Si c'est un caractère particulier, tu peux le remplacer par un autre ou ne pas l'intégrer dans ta table.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut,

    Au lieu de lire ton fichier, pourquoi n'essaye tu pas de l'importer avec l'assistant d'importation , tout disparaitra, et ensuite du peux l'automatiser avec docmd.trnasferttext

    Starec

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 106
    Points : 135
    Points
    135
    Par défaut
    Malheureusement, je ne peux pas.
    Il faut absolument que les caractères spéciaux soient présents, y compris les espaces en fin de ligne. Si j'importe le texte par la méthode transferttexte, ils vont sauter.
    Quant au code ascii, je l'utilise déjà lors de la lecture. Le problème, c'est que si tu enregistres dans une table : chr(9) & "titi", tu obtiens ces fameux petits carrés que j'ai montré.
    Ce qu'il me faudrait c'est une astuce qui me permette de reafire la manip inverse au niveau de l'affichage.
    J'ai essayé des tas de bidouille au niveau des concaténations de chaine, mais néant au niveau résultat

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 184
    Points : 1 363
    Points
    1 363
    Par défaut
    Dans le genre bidouille :
    A l'import, si tu as un tab, tu écris dans ta table un <TAB> à la place.
    A l'affichage, tu fais un replace(Texte, "<TAB>", TexteQuiVaBien), ou TexteQuiVaBien va être fait de façon à avoir au final :
    "DebutDeTexte" & Chr(X) & "FinDeTexte"
    (ou X est le code Ascii de la tabulation).

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Dans la catégorie bidouillage de chaînes, regarde du côté des fonctions que j'avais mises en place dans mon tuto sur Access & Internet.

    http://cafeine.developpez.com/access...iel/weblog/#LD

    Regarde la fonction deHTMLize() en l'adaptant je pense que tu devrais t'en sortir.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 106
    Points : 135
    Points
    135
    Par défaut
    Je vais regarder ces codes. Je vous dirais si il y aune solution.

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Cela me rappele le bon vieux temps du DOS :-) et des machines à écrire.

    Sais-tu que pour lire ton fichier tu peux utiliser un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Line Input #numFic, lf
    qui lit toute une ligne de texte en une seule fois ?

    Tu peux remplacer systématiquement les chr(9) par space$(8) mais cela risque de mettre ta présentation en l'air.

    Je te suggère de faire ceci, l'hypothèse est que chaque chr(9) correspond à 8 blancs.

    Donc chaque fois que tu récupère un chr(9) tu regarde ta position dans l'enr.

    Disons que ta position courrante est 35, donc quand tu lis le chr(9) tu devrait être à la position PS=(int(35/8)+1)*8 dans ta ligne de sortie. Il ne te reste plus qu'a ajouter space$(PS-35) pour que ton texte s'aligne.

    Évidement il faut utiliser une police fixe pour l'impression, sinon le blanc est plus petit que les autres caractères et cela ne s'aligne pas. Personnelement j'aime bien CourrierNew.

    A+

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 106
    Points : 135
    Points
    135
    Par défaut
    Citation Envoyé par marot_r
    Cela me rappele le bon vieux temps du DOS :-) et des machines à écrire.

    Sais-tu que pour lire ton fichier tu peux utiliser un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Line Input #numFic, lf
    qui lit toute une ligne de texte en une seule fois ?
    Oui, je le sais, mais comme j'essayais d'expliquer, il faut absolument que je le lise caractère par caractère, car certains fichiers comportent des caractères précis qui en changent la façon de le lire après.

    Tu peux remplacer systématiquement les chr(9) par space$(8) mais cela risque de mettre ta présentation en l'air.

    Je te suggère de faire ceci, l'hypothèse est que chaque chr(9) correspond à 8 blancs.
    Hmmm, ça, ça résoudrait mon problème de tabulation.

    Par contre, il me resterait le problème des chr(13) et chr(10), car certains affichages demandés sont la concaténation de plusieurs enregistrements. Toutefois, à l'affichage il faut - bien évidemment - garder ces sauts de ligne.
    Or, pour l'instant en concaténant, je n'ai plus les sauts de ligne mais ces carrés...

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Pour les 10, 13. Access tolère un retour chariot forcé. Dans un champ texte multiligne, tape 123[crtl][enter]456 et regarde avec un bout de VBA le code qu'il conserve. Il me semble que c'est chr(10) mais je ne suis pas sur.

    Et bien sur tu peux aussi faire un nouvel enr quand tu as un 10,13 en mettant des blancs pour l'alignement.

    A+

  11. #11
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par marot_r
    Pour les 10, 13. Access tolère un retour chariot forcé. Dans un champ texte multiligne, tape 123[crtl][enter]456 et regarde avec un bout de VBA le code qu'il conserve. Il me semble que c'est chr(10) mais je ne suis pas sur.

    Et bien sur tu peux aussi faire un nouvel enr quand tu as un 10,13 en mettant des blancs pour l'alignement.

    A+
    Hello,

    je crois que c'est VbCrLf ... à vérifier

Discussions similaires

  1. affichage des caractère spéciaux dans un JLabel
    Par pacomou dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 26/08/2009, 17h18
  2. Affichage des caractères spéciaux
    Par Mister Nono dans le forum Langage
    Réponses: 1
    Dernier message: 16/01/2007, 16h46
  3. Réponses: 15
    Dernier message: 04/01/2007, 09h47
  4. [SQL] Problème d'affichage de caractère spéciaux dans une variable chaîne
    Par Kryptonaute dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/08/2006, 09h40
  5. problème avec l'affichage des caractères spéciaux
    Par michelkey dans le forum Général Python
    Réponses: 4
    Dernier message: 19/08/2005, 09h09

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