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

IHM Discussion :

Extraction données entre deux points-virgules (;) [AC-2013]


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 69
    Points : 35
    Points
    35
    Par défaut Extraction données entre deux points-virgules (;)
    Bonjour

    Je suis à la recherche de conseil pour extraire d'un fichier csv un nombre décimal compris entre 2 points virgules.

    Au diable la commande "DoCmd.TransferText acImportDelim" complétement instable : perte de date, de données etc......

    J'ouvre mon fichier csv comme un fichier Excel, je récupère une ligne de donnée : Compteur 1;73684,8;MJ:Elec

    et j'en extrait le titre : Compteur 1 , ok cela marche sans problème - code : VarCellule = Left(Me.Extract01, InStr(1, Me.Extract01, ";") - 1)

    Je veux extraire la valeur 73684,8 et là je n'arrive qu'à extraire la partie entiére : 73684 , la partie décimale a disparu

    code : ValeurTab = Split(Me.Extract01, ";")
    VarCellule1 = ValeurTab(1)

    Que me conseillez vous pour réussir à extraire cette valeur décimale ?

    Par avance merci pour votre aide

    Cordialement

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

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour,
    j'utilise Access depuis plus de 20 ans et je peux t'affirmer que la commande Docmd.transferText fonctionne sans problème, ayant été amené à faire une multitude d'importations de données issues de diverses plateformes. La plupart des problèmes rencontrés venaient de données non conformes au format attendu.
    Cette commande permet de définir le type de données pour chaque champ importé. Elle permet également de définir le format date (AMJ,MJA, JMA...) pour autant qu'elles soient toutes de même format.
    Pour ce qui concerne les données numériques avec décimales, le format le plus utilisé est le format Monétaire (du moins, pour ce qui concerne les montants jusqu'à 4 décimales).
    Avant d'accuser la commande de tes pertes de données, as-tu pensé à vérifier que le séparateur de décimales (vraisemblablement le point) de tes paramètres régionaux dans Windows correspond au séparateur de décimales de tes données (la virgule) ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    Bonjour

    Pour l'instant je me permets d'accuser cette commande car pourquoi elle saute des importations ? par exemple j'ai importé des données de 01/09 au 15/10; les données du 29/09 au 3/10 n'ont pas été importées ?
    Je relance la commande elle va m'importer 2 jours parfois 1 jour parfois 2 jours !! Il manque aussi des données par importation, si cela n'est pas de l'instabilité !!

    Le paramétrage de mon PC est figée par ma société, il y a encore quelques mois les importations semblaient fonctionner correctement.

    Ceci étant, je ne mets pas en doute tes propos voire ils m'apportent une idée, ces dernières semaines j'ai eu énormément de mise à jour automatiques, est ce que celles ci auraient pu modifier des paramètres de base ? Je regarde cela sachant que j'ai pas beaucoup de droit d’accès sur mon PC société.

    Merci Tee_grandbois pour ton éclairage

    Cordialement

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 265
    Points
    34 265
    Par défaut
    Bonjour,

    les donnees qui ne seraient pas importees figurent en principe dans une table d'erreur, avec une information.

    Autre point, la table dans laquelle tu importes existe-t-elle deja ou est elle cree a la volee ?

    Si tua s des identifiants de type alkphanumeriques et si les premiers enregistrements sont de types numeriques uniquement, tu vas avoir un refus d'importer des donnees textuelles.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    Bonjour

    J'ai regardé dans mes paramètres régionaux le symbole décimal est la virgule, le séparateur de liste est le point virgule.

    En ce qui concerne la table d’importation, au départ je l'ai défini à la volée, comme cela ne fonctionnait pas j'ai défini une table précise mais cela n'a rien changé au fait que les importations étaient aléatoires.

    Le format des données est toujours le même : Compteur 1;73684,8;MJ:Elec (Nom du compteur; mesure; unité;type énergie)

    En ouvrant le fichier csv. comme un fichier excel j'arrive à extraire le nom du compteur, j'ai réussi aussi à extraire la mesure mais sans la décimale; de plus lorsque j'ai voulu enregistrer cette valeur numérique dans une table j'ai eu un message d'incompatibilité.

    Si j'arriverais à extraire cette mesure entre les 2 points virgule et la convertir en valeur numérique décimale, cela serait génial.

    Par avance merci pour votre aide

    Cordialement

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    Rebonjour

    J'ai oublié ! , pour répondre à la question de Jean-Philippe André effectivement j'ai des tables d'erreurs dans lesquelles sont notées :

    Champ Erreur Ligne
    Conso Échec lors de la conversion de type 1
    Conso Échec lors de la conversion de type 3

    Il y a bien un aléa avec cette mesure; dans le paramétrage d'importation ce champ "Conso" est considéré en texte court, je vais faire un nouvel essai de paramétrage d'importation en mettant ce champ en réel standard.

    Cordialement

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    bonjour à tous

    J'ai refait la procédure d'importation avec mon champ conso, paramétré en réel simple, et cela fonctionne à nouveau !
    J'ai refait ce matin une importation, aucun problème.

    Je ne sais pas pourquoi la semaine dernière cela n'a plus fonctionné, j’espère que ce processus restera stable.

    Pour ma culture personnelle j'aurais tout même aimé savoir comment extraire une donnée entre 2 points virgules.

    En tous cas merci à tous pour vos idées et commentaires

    Cordialement

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

Discussions similaires

  1. Changement Des données entre deux bases
    Par Chakib dans le forum Access
    Réponses: 4
    Dernier message: 28/01/2006, 10h59
  2. transfert de données entre deux tables
    Par student007 dans le forum Access
    Réponses: 4
    Dernier message: 23/12/2005, 13h04
  3. Réponses: 5
    Dernier message: 30/11/2005, 16h41
  4. Passage de données entre deux pages
    Par spica92 dans le forum ASP
    Réponses: 2
    Dernier message: 08/09/2005, 14h38
  5. [ADO.Net][VB.NET] Comment copier des données entre deux BDD différentes ?
    Par maddog2032 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 06/06/2005, 11h01

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