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

Requêtes et SQL. Discussion :

Remplacement de caractères dans une table complète [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 116
    Points : 63
    Points
    63
    Par défaut Remplacement de caractères dans une table complète
    Bonjour à tous,

    avec XP et access2007,

    je dispose d'une table issue d'une système sur lequel je n'ai pas la main.

    Cette table liste les utilisateurs et toutes les informations qui leur sont liés (nom, prénom, adresse, poste, etc).

    Le système qui me fournit le fichier csv fait l'impasse sur les caractères spécifiques à la langue française, ou presque (é, è, à, ö, etc.) et les remplace par quelque chose de plus barbare (é, â, ú, etc.).

    J'ai monté une table d'équivalence entre les caractères.

    Je voudrais maintenant savoir comment remplacer les caractères qui ne vont pas par ceux qui vont bien (par ma table d'équivalence?).

    La fonction "Remplacer" semble bien s'y préter, mais je crois que je vais devoir l'utiliser pour chaque champ (une 40aine) et pour chaque caractère connu en erreur (une 20aine) ... je ne fais même pas le calcul !

    Y aurait-il une solution pour faire tourner la fonction remplacer sur tous les champs et tous les enregistrements de ma table, et pour tous les caractères connus en erreur ? (en une fois ...)

    Merci de votre aide!

    G.

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut Bonjour,
    Tu peux t'inspirer de http://www.developpez.net/forums/d78...contenant-avg/

    Dans ton cas la public function doit convertir une chaine de caractères mais c'est le même principe

    Autre solution : convertir le fichier CSV caractère par caractère avant de l'importer dans access (ça sera probablement beaucoup plus rapide)

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    La vie est dure parfois ...

    Leving dit qu'elle débute, mais elle est loin devant moi.
    En bref mon niveau ne me permet pas de comprendre/ suivre votre échange (je ne suis qu'un sous-padawan).

    Mais j'ai quand même déchiffré que ca sent l'usine à gaz ...

    Je vais donc suivre ton conseil et le faire dans excel, ou la macro est peaufinée et parfaitement fonctionnelle.

    Merci quand même de l'attention

    (et si tu souhaites quand me faire suivre le SQL, je serais ravi de l'essayer lol)

    Bonne fin d'après midi !

    G.

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    En 2 mots il faut au minimum que tu saches créer une fonction publique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function convertit(s as string)
    s=replace(s,"@*","é")
    s=replace(s,"avant","après")
    ... (autant de lignes que de cas identifiés)
    End Function
    (il est possible d'améliorer ce code par un traitement caractère par caractère mais c'est plus compliqué)
    Ensuite il faut créer une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update MaTable set champ1=convertit(champ1), champ2=convertit(champ2)...
    Cette requête risque d'être longue d'où ma 2e suggestion mais si c'est pas souvent...

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    J'ai cherché l'origine de mon problème puis uine solution à la cause.

    Et c'est réglé:
    Discussion: "Importation d'un fichier CSV dans Office "

    G.

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

Discussions similaires

  1. Remplacer des caractères dans une table
    Par cycy50 dans le forum Modélisation
    Réponses: 11
    Dernier message: 19/10/2007, 15h02
  2. Réponses: 4
    Dernier message: 29/08/2006, 17h44
  3. remplacer un caractère dans une requete
    Par griese dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/07/2006, 17h01
  4. Comment remplacer plusieurs caractères dans une chaîne?
    Par Antigonos Ier Gonatas dans le forum Général Python
    Réponses: 5
    Dernier message: 16/06/2006, 16h04
  5. Requête pour remplacer caractères dans une table
    Par elliott1961 dans le forum Installation
    Réponses: 5
    Dernier message: 16/01/2006, 01h47

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