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

VB 6 et antérieur Discussion :

[VB6] Problème récupération de données


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut [VB6] Problème récupération de données
    Bonjour,

    J'espére que vous pourrez m'aider car je commence à m'arracher les cheveux.

    J'exécute une requête dans laquelle je sélectionne les valeurs d'un fichier .csv :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    objRecordSet.Open "SELECT * FROM " & CommonDialog1.FileTitle & "", _
    objConnection, adOpenStatic, adLockOptimistic, adCmdText
    Ensuite, j'établis la connection à la base de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Set cnx = New ADODB.Connection        
    'Définition du pilote de connexion
    cnx.Provider = "Microsoft.Jet.OLEDB.4.0"
    'Définition de la chaîne de connexion
    cnx.ConnectionString = "C:\DB1.mdb"
    'Ouverture de la base de données
    cnx.Open
    Et enfin, j'insére les valeurs obtenues dans une table Access :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Do Until objRecordSet.EOF
        TmpSqlInsertCorporateData = "INSERT INTO CORPORATE_DATA    (ENTITY_ID, CORPORATE_NAME) VALUES (" & objRecordSet.Fields.Item(0) & ", '" & objRecordSet.Fields.Item(1) & "');"
        cnx.Execute (TmpSqlInsertCorporateData)        
        objRecordSet.MoveNext
    Loop              
    cnx.Close
    Les données sont bien récupérées et bien insérées dans ma table exceptée les données du premier record!

    Pouvez-vous m'aider? Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Les données sont bien récupérées et bien insérées dans ma table exceptée les données du premier record
    Et cette ligne est bien présente dans le recordset ? (c'est la première ligne du .csv ?)

    Vérifie ici en mode debug si le premier enregistrement du recordset est bien égal à ta première ligne du .csv :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    objRecordset.MoveFirst
    Stop
    Do Until objRecordSet.EOF
        TmpSqlInsertCorporateData = "INSERT INTO CORPORATE_DATA    (ENTITY_ID, CORPORATE_NAME) VALUES (" & objRecordSet.Fields.Item(0) & ", '" & objRecordSet.Fields.Item(1) & "');"
        cnx.Execute (TmpSqlInsertCorporateData)        
        objRecordSet.MoveNext
    Loop

  3. #3
    Membre averti
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut
    Le premier record est bien dans le fichier csv mais n'est apparemment pas dans le recordSet.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Tu as peut-être un problème de formatage du .csv : ouvres-le dans le bloc-note et dis nous si tu constates quelque chose de particulier. Ce .csv est issu d'un export Excel ?

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ton fichier cvs n'as pas d'entête de colonne.?

  6. #6
    Membre averti
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut
    Voici les données qui figurent dans le bloc note :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    15;ASTRIDIM;BE;XX;N;N;N;31/dec;0;6;100.0
    4;VENDOME LAND;BE;XX;N;N;N;31/dec;0;16;100.0
    19;STILLA;NL;XX;N;N;N;31/dec;0;18;99.99
    8;CASIO GIE;BE;XX;N;N;N;31/dec;0;19;80.01
    11;MOSELLA;LU;XX;N;N;N;31/dec;;;
    16;FB MANANGEMENT;LU;XX;N;N;N;31/dec;;;
    18;CGER INVEST;LU;XX;N;N;N;31/dec;;;
    3;MADISON LEASE;BE;XX;N;N;N;31/dec;;;
    En mode debug, je vois que le recordset commence à la deuxième ligne et omet donc la ligne suivante : 15;ASTRIDIM;BE;XX;N;N;N;31/dec;0;6;100.0

  7. #7
    Membre averti
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut
    Non, pas d'entête. Je récupére les données dès la première ligne autrement dit colonne A, ligne 1.

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    on peu voir le code relatif à
    objConnection

  9. #9
    Membre averti
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut
    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & strPathtoTextFile & ";" & _
    "Extended Properties=""text;HDR=YES;FMT=Delimited"""
    En ce qui concerne le chemin (strPathtoTextFile ), il est récupéré de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    tabFileName() = Split(CommonDialog1.FileName, "\")
     
            For i = 0 To 30
                If tabFileName(i) Like "*.csv*" Then
                    Exit For
                Else
                    If i = 0 Then
                        strPathtoTextFile = strPathtoTextFile & tabFileName(i)
                    Else
                        strPathtoTextFile = strPathtoTextFile & "\" & tabFileName(i)
                    End If
                End If
            Next i

  10. #10
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    essai HDR=NO dans chaine de connexion

  11. #11
    Membre averti
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut
    Super !!!
    C'était bien ça. Un très grand merci.

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

Discussions similaires

  1. problème récupération de données en liaison série
    Par prison_break dans le forum C++Builder
    Réponses: 4
    Dernier message: 27/06/2007, 08h51
  2. [VB6] Mauvaise récupération de données
    Par valie dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/10/2006, 09h58
  3. problème récupération de données dans des fichiers .DAT
    Par indymontpellier dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/04/2006, 07h54
  4. [MySQL] Problème récupération de données avec un SELECT DISTINCT
    Par 12_darte_12 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/07/2005, 14h48
  5. [Débutant] Problème récupération de données
    Par flogreg dans le forum Servlets/JSP
    Réponses: 26
    Dernier message: 20/08/2004, 17h29

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