Supprimer les retour chariot dans Access

Résolu
matrix2002 Messages postés 11 Statut Membre -  
matrix2002 Messages postés 11 Statut Membre -
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.
Configuration: Windows 98
Firefox 2.0.0.3

1 réponse

  1. Caro
     
    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
    1. matrix2002 Messages postés 11 Statut Membre 14
       
      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