Supprimer retour chariot dans un champs Acces

Résolu/Fermé
matrix2002 Messages postés 11 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 10 octobre 2007 - 11 mai 2007 à 12:55
 Chris - 27 févr. 2009 à 17:21
Salut,

J'ai un petit soucis.

Je cherche à supprimer les RETOUR CHARIOT dans un champs texte sous ACCESS windows 98 pour pouvoir exporter ce champs sour .CSV.
Ce fichier par la suite est envoyé à un serveur qui traite les lligne de champs pour intégrer les modifications dans une base.
Le traitement de ce fichier se faisant automatiquement, dès que j'ai un champ avec un retour chariot, il m'envoi une erreur et plante tout !!!


SVP à l'aide j'en perd mon latin et je ne trouve pas de solutions.

D'avance merci
A voir également:

4 réponses

matrix2002 Messages postés 11 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 10 octobre 2007 14
24 mai 2007 à 17:40
J'ai chercher et trouver la solution que je publie ici :
On ouvre la base access 97 pour creer un nouveau module dans lequel on colle le code suivant :



Public Function ReplaceT(ByVal Expression As String, _
ByVal Find As String, _
ByVal Replace As String, _
Optional ByVal Start As Long = 1, _
Optional ByVal Count As Long = -1, _
Optional ByVal Compare As Integer = vbTextCompare) _
As String

Dim P As Long ' position 1er caractère à tester
Dim L As Long ' longueur de expression
Dim f As Long ' longueur de la chaîne à remplacer
Dim r As Long ' longueur chaîne de remplacement

' argument "Start" : élimination du début de chaîne
Let L = Len(Expression)
If Start > L Then
' parceque "Right$" n'accepte pas 1 taille négative
Let Expression = vbNullString
ElseIf Start > 1 Then
' troncature d'"Expression"
Let Expression = Right$(Expression, L - Start + 1)
End If

ReplaceT = Expression ' valeur retour par défaut

' argument "Find" : si chaîne vide, on retourne "Expression".
If Find = vbNullString Then Exit Function
Let f = Len(Find)

Let r = Len(Replace) ' Taille de la chaîne de remplacement
Let P = 1 ' on commence à la première position
If Count <> 0 Then
Do
' La taille d'"Expression" peut varier lors de chaque
' remplacement (si "Find" et "Replace" sont de longueurs
' différentes), c'est pourquoi l'instruction suivante
' est située DANS la boucle.
Let L = Len(Expression)
' position de la sous-chaîne à remplacer...
Let P = InStr(P, Expression, Find, Compare)
' ... si elle y figure bien
If P > 0 Then
Let Expression = Left$(Expression, P - 1) + _
Replace + _
Right$(Expression, (L - P - f + 1))
' décalage 1er caractère à comparer (position trouvée
' + taille de la chaîne de remplacement)
Let P = P + r
' Un remplacement de moins à effectuer (si "Count">0)
' on continue indéfiniment si "Count" < 0
Let Count = Count - 1
End If
' Si le compteur atteint zéro (cas où on voulait un nombre
' défini de substitutions), où s'il n'y a plus de
' remplacements possibles, on sort.
Loop Until (P <= 0) Or (Count = 0)
End If
ReplaceT = Expression ' retour..
End Function



Une fois ce code collé, il suffit d'utiliser RemplaceT dans une requete de mise à jour par exemple :
UPDATE Table SET Table.description = ReplaceT([description],Chr(10),"<br>");

Il est important de l e faire pour les caractères chr(10) et chr(13)

Voila à bientot
4
Me.txtAddr1 = Replace(Trim(Nz(xRSet!fmstreet, "")), Chr(13) & Chr(10), ", ")
2
Merci mec!
0
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 3 182
11 mai 2007 à 13:14
salut
pas le temps de tester mais normalement ça devrait marcher :
ouvrir ta table / sélectionner ta colonne / menu Edition / Remplacer :
mettre ^p dans le 1er champ
et ce que tu veux dans le 2ème champ (si tu veux un espace : tu appuies une fois sur la barre espace)
1
Super !
MERCI !

Je confirme ça marche, testé et approuvé le 05/06/2008 !

Encore merci.
0