Supprimer retour chariot dans un champs Acces

Résolu
matrix2002 Messages postés 11 Statut Membre -  
 Chris -
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

4 réponses

  1. matrix2002 Messages postés 11 Statut Membre 14
     
    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
  2. Didyman
     
    Me.txtAddr1 = Replace(Trim(Nz(xRSet!fmstreet, "")), Chr(13) & Chr(10), ", ")
    2
    1. Chris
       
      Merci mec!
      0
  3. UsulArrakis Messages postés 7683 Statut Contributeur 3 196
     
    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
  4. Sois
     
    Super !
    MERCI !

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

    Encore merci.
    0