ACCESS => enlever des espaces dans un champs

nathalie -  
michelhoude Messages postés 47 Statut Membre -
Bonjour,

J'ai un petit soucis qui à mon avis n'est pas bien méchan c'est pour ca que je fais appel à vos lumières !

J'ai une table clients dans laquel j'ai un champs nom et dans ce champs nom, je me retrouve avec des "Nom Prenom".

je souhaiterai supprimer les 2 espaces entre le nom et le prénom et le remplacer par un seul espace. Y'a t'il possibilité de le faire par une requete simple au lieu que je me fasse les 600 lignes une à une ?????

merci pour votre aide !
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  1. michelhoude Messages postés 47 Statut Membre 11
     
    Bonjour

    Créer un module et écrivez le code suivant
    c'est une fonction

    Function enleve_blanc(mot As String)
    Dim x, s, compte_blanc As Integer
    Dim ch As String
    compte_blanc = 0

    For x = 1 To Len(mot)
    If Mid(mot, x, 1) = " " Then s = x
    compte_blanc = compte_blanc + 1
    Next x

    MsgBox (compte_blanc)
    If compte_blanc = 1 Then
    enleve_blanc = mot
    Exit Function
    End If

    ch = ""

    For x = 1 To Len(mot)
    If x <> s Then ch = ch + Mid(mot, x, 1)
    Next x

    enleve_blanc = ch

    End Function

    créer la requête suivante

    UPDATE CLIENTS SET NOM=enleve_blanc(NOM)

    Attention EXECUTER LA REQUÊTE UNE SEULE FOIS CAR À CHAQUE APPEL DE LA FONCTION, UNE ESPACE
    BLANC EST EFFACÉE

    DANS LA FONCTION, J'AI MIS UN COMPTEUR compte_blanc POUR ÉVITER DE TOUT EFFACER LES BLANCS, MAIS JE NE SUIS PAS CERTAIN SI ÇA FONCTIONNE. POUR PLUS DE SÉCURITÉ, FAITES UNE COPIE DE LA TABLE

    Cordialement
    Michel Houde
    0
  2. michelhoude Messages postés 47 Statut Membre 11
     
    Bonjour, c'est encore moi, voici le code de la fonction corrigé.

    Il y avait une erreur dans le message précédent

    Le compteur (compte_blanc) vous assure que il y aura toujours un espace entre le prénom et le nom quelque soit le nombre de fois que vous exécuterez la requête

    Function enleve_blanc(mot As String)
    Dim x, s, compte_blanc As Integer
    Dim ch As String
    compte_blanc = 0

    For x = 1 To Len(mot)
    If Mid(mot, x, 1) = " " Then
    s = x
    compte_blanc = compte_blanc + 1
    End If
    Next x

    If compte_blanc = 1 Then
    enleve_blanc = mot
    Exit Function
    End If

    ch = ""

    For x = 1 To Len(mot)
    If x <> s Then ch = ch + Mid(mot, x, 1)
    Next x

    enleve_blanc = ch

    End Function

    Cordialement
    Michel Houde
    0