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 :

pb de convertion de format lors d'un import


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 127
    Points : 61
    Points
    61
    Par défaut pb de convertion de format lors d'un import
    Bonjour a tous,

    Je vous soumets le pb que je n'arrive pas a résoudre depuis début d'apres midi.
    je dois importer environ 30 000 lignes de 51 colonnes toutes les semaines pour des raisons statistiques. J'ouvre le ficheir texte et la parcours sans pb.
    Les données collectées sont forcement toutes de type String et donc je convertis en différent type : Date avec CDATE(), Entier avec CInt(), etc.. et j'utilise aussi la fonction Var().
    Je constate la chose suivante sur les valeurs numériques :

    1) Les data contenus dans la colonnes vont de 1 à 10 donc j'ai déterminé le type de champ a entier. qud j'utilise la fonction Var() en debug.print, il m'affiche la totalité des données soit les 30 000 lignes. Par contre si j'utilise la fonction Clon() il s'arrête a 3 692 avec un type mismatch.
    2) Concernant les dates, la fonction CDATE() s'arrete aussi a 3 692 avec le debug.print sur un autre champ.

    Cet arret sur la ligne 3 692 m'intrigue bcp. Quelqu'un sait s'il y a une raison pour que ces fonction n'aille pas au dela?

    Pour mes test je ne travaille que sur une seule colonne et je mets les autres en commentaire.

    Pour ajouter a tout cela, j'ai testé mes 51 colonnes une par une en debug.print sans erreur. Qud je lance l'import dans ma table il se met en erreur à la ligne 3 692 !!!!!

    Merci d'avance pour vos réponse afin que je puisse comprendre et résoudre ce problème.

    Anax

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Il semblerait que cette fameuse ligne 3 692 a quelque chose de différent des autres lignes.

    Sans voir le fichier texte (un extrait d'une dizaine de lignes incluant la 3692) ou ton code,
    il est difficile de pouvoir te donner une réponse pertinente.

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 127
    Points : 61
    Points
    61
    Par défaut
    Bonjour et merci d'avoir pris le temps de lire.
    EN y passant une partie de la nuit j'ai trouvé la données qui pose pb mais je ne sais pas comment faire ma gestion d'erreur
    ma fameuse données qui est supposé être une date est la suite (elle se trouve dans le fichier attaché)


    Le fichier d'export qu'on me fourni est vraiment pourri... je dois contrôler toutes les données.
    Si je supprime cette donnée à la main, j'importe mon fichier de 30 000 lignes correctement
    Comment puis je faire pour dire : j'ai un pb sur cette ligne et la passer pour continuer l'import?

    Merci d'avance pour vos suggestion

    Anax
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Voici un exemple de code avec gestion d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Sub TestConv()
    Dim bErr As Boolean
    Dim arrStr(1 To 3), lgIdx As Long
    Dim strIn As String
    Dim dtDate As Date
     
    On Error GoTo GestionErr
     
    arrStr(1) = "Déc 05 2009 16:55"
    arrStr(2) = "D 05 2009 16:55"
    arrStr(3) = "Mar 12 2009 16:55"
     
    For lgIdx = 1 To 3
        bErr = False
        strIn = arrStr(lgIdx)
        dtDate = CDate(strIn)
        If bErr = False Then
           ' si pas d'erreur de conversion
           ' ...
        End If
    Next
     
    Fin:
    Exit Sub
     
    GestionErr:
    Select Case Err.Number
        Case 13 ' Incompatibilité de type
             Debug.Print "Lig:" & Format(lgIdx, "000000") & _
                         " strIn=""" & strIn & """ -> Erreur " & Err.Number & " : " & Err.Description
             bErr = True
             Resume Next
    End Select
    MsgBox "Erreur " & Err.Number & " : " & Err.Description
    Resume Fin
    End Sub
    Avant chaque conversion on met la variable bErr à Faux.
    Si une erreur d'incompatibilité de type (erreur 13) se produit bErr est mise à Vrai.
    Après la conversion, on vérifie que bErr est à Faux avant d'exploiter le résultat de la conversion.

    Le caractère ¿ (¿) est vraisemblablement un caractère de substitution résultant d'un échec de conversion de page de code.
    Ce qui est étrange c'est qu'il codé pour du HTML.

    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 127
    Points : 61
    Points
    61
    Par défaut
    Merci bcp pour ta réponse,

    apres bcp de recherche pour comprendre comment améliorer ma gestion des erreur (basé sur ton code), j'ai pu résoudre mon pb.

    Mille merci encore une fois a tous pour votre travail

    Anax

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/04/2012, 09h24
  2. [DATA] Comment fixer ses formats lors de l'import d'un fichier .csv
    Par Areis dans le forum SAS Base
    Réponses: 22
    Dernier message: 01/07/2011, 20h21
  3. Réponses: 4
    Dernier message: 09/06/2006, 09h33
  4. changement de format lors d un lien vers tableau excel
    Par Lionel b dans le forum Access
    Réponses: 2
    Dernier message: 07/04/2006, 08h41
  5. [Importation xl]Convertion en format BDD access
    Par Djekill dans le forum Access
    Réponses: 2
    Dernier message: 08/11/2005, 17h08

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