OVH Cloud OVH Cloud

retour à la ligne

18 réponses
Avatar
news
Bonsoir,

ds un état, j'utilise rechdom pr récupérer trois champs que je veux mettre
dans un seul champ indépendant, alors j'utilse rechdom...champs1 & "" &
champ2... il me les ramène et les met l'un à coté de l'autre, ce qui est
normal, mais moi je veux qu'il les mette chaqu'un sur une nouvelle ligne.
c'est à dire au lieu d'inclure un blanc je dois inclure un retour à la
ligne, mais je ne sais le faire.
qlq'un peu m'aider svp?
merci
ely

8 réponses

1 2
Avatar
Anor
Bonjour 3stone,


| A partir de Access 2000 :
|
| =Replace(DLookup("[Champ1] & ':' & [Champ2] & ":" &
| [Champ3]";"LaTable";"ID = 1") ; ":" ; Chr(13) & Chr(10))

oui c'est astucieux, effectivement.

Cela dit, sur ma machine à écrire, je me souviens bien de la différence entre
retour à la ligne et retour chariot, mais chr(10) , chr(13) et la combinaison des 2
donnent souvent le même résultat.

Donc as tu un exemple qui mette en évidence les différences entre
VbCr , VbLf et VbCrLf ?

--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------
Avatar
Raymond
Bonsoir.

Donc as tu un exemple qui mette en évidence les différences entre
VbCr , VbLf et VbCrLf ?


Le cr et le Lf sont de vieilles appellations que nous avons beaucoup
employées dans la période des imprimantes à boule ( 20 caractères/seconde).
le CR carriage return retour chariot positionne la boule sur le premier
caractère de la même ligne
le LF line feed saut de ligne fait sauter 1 ligne sans changer la position
de la boule.
donc pour faire un retour à ligne en fin de ligne, il fallait faire un Cr +
un LF sinon on imprimait soit sur la même ligne soit à partir de la même
position ce qui a eu des effets catastrophiques pour certaines factures de
l'époque.
Ensuite on a eu l'époque imprimante-ligne 132 positions où seul le LF était
géré car on imprimait en permanence un buffer de 132 caractères donc sans
retour à la 1ere position.
Ensuite sont venus les imprimantes-page laser où le cr et le lf ont disparu.
les premières matricielles géraient le cr+lf par obligation
Ensuite sont arrivées les jet d'encre et là il a bien fallu remettre en
service le cr et le lf.
Maintenant toutes les imprimantes ont une option cr=cr+lf lf=lf+cr ce qui
veut dire que un seul code n'importe lequel fait les deux opérations mais
par souci de compatibilité les 2 codes et les options ont toujours été
gardées par les constructeurs.
Il faut quand même retenir que beaucoup d'imprimante n'impriment plus des
lignes au sens texte mais des plages graphiques .
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Anor" a écrit dans le message de
news:
Bonjour 3stone,


| A partir de Access 2000 :
|
| =Replace(DLookup("[Champ1] & ':' & [Champ2] & ":" &
| [Champ3]";"LaTable";"ID = 1") ; ":" ; Chr(13) & Chr(10))

oui c'est astucieux, effectivement.

Cela dit, sur ma machine à écrire, je me souviens bien de la différence
entre

retour à la ligne et retour chariot, mais chr(10) , chr(13) et la
combinaison des 2

donnent souvent le même résultat.

Donc as tu un exemple qui mette en évidence les différences entre
VbCr , VbLf et VbCrLf ?

--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------




Avatar
Anor
Bonjour Raymond,

Merci pour cette réponse très instructive.
Mais dans vba, Cr renvoie aussi en début de ligne,
et Lf crée quand même un saut de ligne.

Donc s'il est pratique de ne retenir que VbCrLf,
quand on inscrit le caractère ASCII, tu préconises quoi :
chr(10), chr(13) ou chr(13)+chr(10) ?

--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------


| Bonsoir.
|
|| Donc as tu un exemple qui mette en évidence les différences entre
|| VbCr , VbLf et VbCrLf ?
|
| Le cr et le Lf sont de vieilles appellations que nous avons beaucoup
| employées dans la période des imprimantes à boule ( 20
| caractères/seconde). le CR carriage return retour chariot positionne
| la boule sur le premier caractère de la même ligne
| le LF line feed saut de ligne fait sauter 1 ligne sans changer la
| position de la boule.
| donc pour faire un retour à ligne en fin de ligne, il fallait faire
| un Cr + un LF sinon on imprimait soit sur la même ligne soit à partir
| de la même position ce qui a eu des effets catastrophiques pour
| certaines factures de l'époque.
| Ensuite on a eu l'époque imprimante-ligne 132 positions où seul le LF
| était géré car on imprimait en permanence un buffer de 132 caractères
| donc sans retour à la 1ere position.
| Ensuite sont venus les imprimantes-page laser où le cr et le lf ont
| disparu. les premières matricielles géraient le cr+lf par obligation
| Ensuite sont arrivées les jet d'encre et là il a bien fallu remettre
| en service le cr et le lf.
| Maintenant toutes les imprimantes ont une option cr=cr+lf lf=lf+cr ce
| qui veut dire que un seul code n'importe lequel fait les deux
| opérations mais par souci de compatibilité les 2 codes et les options
| ont toujours été gardées par les constructeurs.
| Il faut quand même retenir que beaucoup d'imprimante n'impriment plus
| des lignes au sens texte mais des plages graphiques .
|
Avatar
Raymond
Donc s'il est pratique de ne retenir que VbCrLf,
quand on inscrit le caractère ASCII, tu préconises quoi :
chr(10), chr(13) ou chr(13)+chr(10) ?


Je préconise toujours chr(13) & chr(10) parce que tu ne sais pas biensouvent
à quoi ça va servir, sauf s'il faut faire de la surimpression, mais je ne
pense pas que beaucoup s'amusent avec ça.
il faut bien voir le problème de l'import des fichiers dans des champs texte
et mémo. Excel ne génére pas un crlf mais un lf seul (ou le contraire) ce
qui perturbe tous les champs dans lesquels il faut faire un replace après
import. c'est donc le cas de ctrl +entrée qui ne génére qu'un seul code.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Anor" a écrit dans le message de
news:
Bonjour Raymond,

Merci pour cette réponse très instructive.
Mais dans vba, Cr renvoie aussi en début de ligne,
et Lf crée quand même un saut de ligne.

Donc s'il est pratique de ne retenir que VbCrLf,
quand on inscrit le caractère ASCII, tu préconises quoi :
chr(10), chr(13) ou chr(13)+chr(10) ?

--
à+
Arnaud



Avatar
Anor
re.


| Je préconise toujours chr(13) & chr(10) parce que tu ne sais pas
| biensouvent à quoi ça va servir, sauf s'il faut faire de la
| surimpression, mais je ne pense pas que beaucoup s'amusent avec ça.
| il faut bien voir le problème de l'import des fichiers dans des
| champs texte et mémo. Excel ne génére pas un crlf mais un lf seul (ou
| le contraire) ce qui perturbe tous les champs dans lesquels il faut
| faire un replace après import. c'est donc le cas de ctrl +entrée qui
| ne génére qu'un seul code.

ok merci
à+

--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------
Avatar
3stone
Salut Arnaud,

Je te donne tout de même *ma* réponse ;-))

Anor
3stone
| =Replace(DLookup("[Champ1] & ':' & [Champ2] & ":" &
| [Champ3]";"LaTable";"ID = 1") ; ":" ; Chr(13) & Chr(10))

oui c'est astucieux, effectivement.



La fonction "DLookup" peut être utilisée ainsi :
DLookup("[Champ1][Champ2][Champ3][ChampN]","Table","Critère"
mais, cela crée une concaténation des champs, rarement désiré.

ou alors:
DLookup("[Champ1]&","&[Champ2]&","&[Champ3]&","&[ChampN]","Table","Critère"
et on utilise un Split pour re-scinder les champs... mais utilisation de variables...


Dans le cas présent, la fonction "Replace", remplace du *texte* dans un string.
Tu connais, la fonction maison pour Access97, qui utilise "Instr" et ou l'on
remplace bien un _caractère_ par un autre _caractère_

Donc, si tu remplace le ":" dans "toto:tata" par un vbCrLf tu te retrouve avec "totovbCrLftata"

Ce n'est pas ce que l'on désire, évidemment.
Pour contourner... on utilise Chr(13) & Chr(10) car c'est la valeur du code Cr et Lf
qui doit être inclus et non la constante.
Et, que l'on doit utiliser dans cet ordre la... comme dans vbCrLf !


Cela dit, sur ma machine à écrire, je me souviens bien de la différence entre
retour à la ligne et retour chariot, mais chr(10) , chr(13) et la combinaison des 2
donnent souvent le même résultat.


On a garder (mais le monde informatique est plein de vieilleries, contrairement
à ce que l'on pense souvent) le même "fonctionnement" que les vieilles machine
à écrire... qui possèdait un levier qui permettait de "pousser" le chariot vers la
position gauche initiale (Cr) ET une petit mécanisme qui entrainait le rouleau,
qui à son tour, déplacait la feuille de papier d'une ligne (Lf)

Les premières imprimantes n'était rien d'autre que des machines à écrire "manuelle" dont on avait
"motorisé" quelques éléments (bien longtemps avant la "IBM à boule" de Raymond ;-)).
Mais elles ont garder les mêmes fonctions, dont le fameux "Cr" et "Lf"
Le Cr s'utilisait seul pour revenir "souligner" ou "barrer", tandis que le Lf s'utilisait pour faire
des "tableaux"

MS à choisi de conserver le fameux CrLf, alors que d'autres OS ont choisi Cr ou Lf
C'est de là... que vient la possibilité de modifier cela par des DIP sur les imprimantes.
Et ma Laser recoit encore toujours des CrLf avec... Windows ;-)
Encore que là, cela dépend du type, GDI (aussi appelée imprimante Windows) ou non,
mode graphique ou non ( les Laser, et même les bonnes matricielles, sont capable de
substituer une police de Word par une police en mémoire et de faire un savant panaché
de police vectorielle et de bitmap)
Rien que le pilotage d'une imprimante et toutes les variantes remplissent un gros livre...

Pour ne pas faire trop long, je ne te parle pas de ma première imprimante à UNE aiguille
(ou plutôt... à un marteau ;) et de mon premier "Ploter" (traceur) qui en plus de tracer
les dessins, écrivait en "tracant" les caractères et recevait du coup, des CR en fin de ligne...

Bon, je mets un HS dans l'objet ? ben non tiens...


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
3stone
Salut,

news
mais je n'avais pas compris les chr alors je
ne savais pas comment mettre ça.


Pour comprendre, tu mets le code au bon endroit,
tu place le curseur sur le mot inconnu et tu pousse
la touche magique... [f1]

La seule chose que tu dois faire, c'est adapter les noms des champs,
puisque tu ne les a pas donnés...

;-)


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
Anor
Bonjour 3stone,


.../...
|
| Bon, je mets un HS dans l'objet ? ben non tiens...

Bou Diou ! j'ai bien fait de poser des vacances !

Moi j'en mets un hs : mais dis donc, tu t'es appliqué à ce que je vois !

ou aurais tu fait un copier coller de l'édition électronique
de la préface du livre "JuRaSsik 232" ? ;-))

Merci pour ton intervention instructive en tout cas !
--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------
1 2