Supprimer les retour chariot dans Access

Résolu/Fermé
matrix2002 Messages postés 11 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 10 octobre 2007 - 7 mai 2007 à 22:57
matrix2002 Messages postés 11 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 10 octobre 2007 - 16 juil. 2007 à 16:37
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:

1 réponse

Bonjour,
je cherche moi aussi à supprimer les retour chariots dans une table Access dont mon champ est un mémo.
Aurais-tu trouvé la solution?
0
matrix2002 Messages postés 11 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 10 octobre 2007 14
16 juil. 2007 à 16:37
Salut Caro

J'ai reussi a trouver la réponse à mon probleme;
Voici la solution que j'ai

Suppression caractère 10 :

UPDATE TaTable SET TaTable.TonChamps = ReplaceT([TonChamps],Chr(10),"<br>");

Suppression retour chariot :

UPDATE TaTable SET TaTable.TonChamps = ReplaceT([TonChamps],Chr(13),"<br>");

Si tu utilises win98Se access 97 il te faut creer un Module que tu peux nommer Module1 par exemple.
Ce module va te servir à définir le terme ReplaceT qui n'est pas défini dans Access 97.

Voici le code :
Option Compare Database
Option Explicit

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 saisie ce code tu compile et sous access97 tu a défini le terme ReplaceT.

J'espère avoir répondu à ta demande.

Bon courage.
0