ACCESS => enlever des espaces dans un champs

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. 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
    1. 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