IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Supprimer les espaces blancs d'un fichier Csv. [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut Supprimer les espaces blancs d'un fichier Csv.
    Bonjour,

    A partir d’une requête Access je crée un fichier Csv, mais dans
    certains enregistrements j’ai des espaces blancs qui se sont créés

    Exemple :
    1111,aaaa,bbbb,ccccc ESPACE BLANC ,ddddd ,
    2222,gggg,mmm ESPACE BLANC , xxxx,www,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub export    
    Set rs = CurrentDb.OpenRecordset(strSql, dbOpenDynaset)
          Set excl = fExportExcel(chemin, rs, True, 1, 1)
          excl.Application.Visible = False
        ………..
        ………..
        excl.SaveAs Path & "\" & "Dossiers\csv\aaaaaaaa" & " " & strDate & "" & ".csv"
    Pour quelles raisons j’obtiens ces espaces blancs ?

    Est-ce que l’on peut parcourir tout le fichier et supprimer
    ces espaces ? Si oui comment ?

    Merci pour votre aide.

    Salutations

  2. #2
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 962
    Par défaut
    bonjour,
    Pour quelles raisons j’obtiens ces espaces blancs ?
    c'est toi qui le crée, enlève le code qui est en rouge:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    excl.SaveAs Path & "\" & "Dossiers\csv\aaaaaaaa" & " " & strDate & "" & ".csv"

  3. #3
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 962
    Par défaut
    désolé, j'ai lu mais mal interprété, c'est dans le fichier csv qu'il y a le problème, pas le fichier lui-même ...
    normalement Access supprime automatiquement les espaces en fin de champ mais pas au début, avec Trim(Monchamp) dans la requête tu peux supprimer les espaces en début et fin du champ mais il faudrait regarder dans la table (et peut-être la requête) pourquoi il y a un espace blanc dans le champ (et lequel) et surtout , car il est préférable de corriger l'anomalie à la source.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut
    Bonjour,

    Merci pour la réponse,

    J’ai bien localisé le champ qui contient les blancs dans le csv il se nomme
    NomPatient (Voir Image)

    Comment supprimer avec Trim les blancs ?

    Ma requête se présente ainsi :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT [tbl Pat].RéfPat, Trim([Nom]) & ' ' & Trim([Prénom]) AS [Nom Prénom], [tbl Pat].Date, [tbl Pat].NomPatient,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,[tbl Pat].Observations
    FROM [tbl Villes] INNER JOIN ([tbl Pat-Stat] 
    INNER JOIN ([tbl Pat] 
    LEFT JOIN [tbl Act-Cs] 
    ON [tbl Pat].RefPat=[tbl Act-Cs].RefPat) ON [tbl Pat-Stat].RefPatStat=[tbl Pat].RefPatStat) 
    ON [tbl Villes].RefVille=[tbl Pat].RefVille
    ORDER BY [tbl Pat].NomPatient;

    J’ai essayé de corriger sans succès en faisant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Trim(rs("NomPatient")) = Trim(rs1("Nom"))
     
    Puis :
     
    Trim(rs("NomPatient")) = Trim(Replace(rs1("Nom"), Chr(160), ""))
    Par contre je me suis aperçu qu’en supprimant dans la table le Nom du patient
    Puis en le saisissant à nouveau je n’avais plus de blanc.

    Avez-vous une idée pour résoudre le problème ?

    Merci.

    Salutations
    Images attachées Images attachées  

  5. #5
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 962
    Par défaut
    bonjour,
    difficile de te suive avec tous ces champs nom différents :
    J’ai essayé de corriger sans succès en faisant ceci :
    Trim(rs("NomPatient")) = Trim(rs1("Nom"))
    Trim(rs("NomFamille")) = Trim(Replace(rs1("Nom"), Chr(160), ""))
    cela ne sert pas à grand chose, si il n'y a pas d'instruction UPDATE pour mette à jour

    J’ai bien localisé le champ qui contient les blancs dans le csv il se nomme
    NomPatient
    dans ce cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Trim([tbl Pat].NomPatient)
    Avez-vous une idée pour résoudre le problème ?
    le plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update [tbl Pat] set [NomPatient] = Trim([NomPatient]);

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut
    Re Bonjour,

    Pour les Noms c’est une erreur de ma part c’est bien le champ
    NomPatient dont il est question, peut-on corriger cela sur le site ?

    cela ne sert pas à grand chose, si il n'y a pas d'instruction UPDATE pour mette à jour
    Mon code s’inscrit dans une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Do While Not rs1.EOF
    Avec un
    rs.AddNew
    ,,,,,,,,
    ,,,,,,,,
    rs.Edit
    ,,,,,,,,
    ,,,,,,,,
    rs.Update
    rs1.MoveNext
    Loop
    La bonne nouvelle :
    Bravo maintenant ça marche.
    Cette phase a été importante pour moi car elle m’a permis de voir que
    « rs("NomPatient") = Trim(rs1("Nom")) » n’existait pas après « rs.Edit » donc pas
    de Màj de ce champ.

    Merci

    Salutations

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Supprimer les espaces blancs d'un fichier Csv.
    Par jmde dans le forum VBA Access
    Réponses: 1
    Dernier message: 13/05/2021, 15h18
  2. Réponses: 2
    Dernier message: 24/09/2020, 08h55
  3. Supprimer les espaces compris entre deux points virgules dans un fichier csv
    Par moctarim dans le forum Shell et commandes POSIX
    Réponses: 2
    Dernier message: 04/01/2013, 17h03
  4. Réponses: 2
    Dernier message: 04/05/2006, 13h10
  5. Supprimer les espaces des noms de fichier
    Par Cathy dans le forum Linux
    Réponses: 20
    Dernier message: 04/08/2005, 17h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo