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 Discussion :

CSV trait d'union posant probleme


Sujet :

VBA

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Par défaut CSV trait d'union posant probleme
    Bonjour,

    Y'a que moi pour avoir des pbs comme ca...

    J'ai un fichier CSV construit a partir d'une BDD que je recupere (ODBC) et affiche sous Excel. Celui-ci contient des champs contenant simplement "-" (trait d'union).

    Certaine colonnes sous Excel sont a vide ou contient simplement "0" (zero) apres la recuperation des donnees. En utilisant le deboggueur, je me rend compte que lors de la premiere ligne du CSV lu par mon RecordSet, le programme reconnait "-" comme un objet de type "Long". Il n'affiche pas les prochais champs de type texte puisque l'objet est fixe de type "Long".

    C'est comprehensible ???

    Comment faire pr specifier le type d'un champ dans mon CSV avant de le parcourir avec mon RecordSet ???

    Si quelqu'un a la solu (je doute mais bon ca vaut le coup d'essayer), merci de me donner un coup de main !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Par défaut ODBC Donnees erronees
    Bonjour,

    Je recupere des informations d'un fichier texte en utilisant une connexion ODBC pour les mettre dans des colonnes sous Excel.

    Deux colonnes sont mal renseignees: une devrait contenir des donnees de Type Currency (> 2 147 483 647) et contient uniquement des donnees de Type Long, une autre devrait contenir du String et contient... des zeros (Long).

    Voici mon code:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    'Open the connexion to the text file
    cnx.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=p:;" _
                           "Extensions=asc,csv,tab,txt;Persist Security Info=False;IMEX=1;"
    cnx.Open
     
    'Do and send the request
    requete = "Select * from [Export.txt]"
     
    rs.Open requete, cnx
     
    rowIndex = rowStart
    While Not (rs.EOF)
     
      'Sorting criterias
      If Not IsNull(rs.Fields(12)) Then
        If CLng(rs.Fields(12)) < CLng(Sheet1.Cells(2, 7).value) Then
          GoTo NotSelected
        End If
     
        If CLng(rs.Fields(12)) > CLng(Sheet1.Cells(3, 7).value) Then
          GoTo NotSelected
        End If
      Else
        If Sheet1.Cells(2, 7).value <> "" Then
          GoTo NotSelected
        End If
      End If
     
      Sheet1.Cells(rowIndex, 2).value = rs.Fields(0).value
      Sheet1.Cells(rowIndex, 3).value = rs.Fields(1).value
      Sheet1.Cells(rowIndex, 4).value = rs.Fields(2).value
      Sheet1.Cells(rowIndex, 5).value = rs.Fields(3).value
      Sheet1.Cells(rowIndex, 6).value = rs.Fields(21).value
      Sheet1.Cells(rowIndex, 7).value = rs.Fields(17).value
      Sheet1.Cells(rowIndex, 8).value = rs.Fields(18).value
      Sheet1.Cells(rowIndex, 9).value = rs.Fields(19).value
      Sheet1.Cells(rowIndex, 10).value = rs.Fields(20).value
      Sheet1.Cells(rowIndex, 11).value = rs.Fields(6).value
      Sheet1.Cells(rowIndex, 12).value = rs.Fields(23).value
      Sheet1.Cells(rowIndex, 13).value = rs.Fields(8).value
      Sheet1.Cells(rowIndex, 14).value = rs.Fields(9).value
      Sheet1.Cells(rowIndex, 15).value = rs.Fields(11).value
      Sheet1.Cells(rowIndex, 16).value = rs.Fields(7).value
      Sheet1.Cells(rowIndex, 17).value = rs.Fields(12).value
      Sheet1.Cells(rowIndex, 18).value = rs.Fields(13).value
      Sheet1.Cells(rowIndex, 19).value = rs.Fields(14).value
      Sheet1.Cells(rowIndex, 20).value = rs.Fields(15).value
      Sheet1.Cells(rowIndex, 21).value = rs.Fields(16).value
      Sheet1.Cells(rowIndex, 22).value = rs.Fields(10).value
      Sheet1.Cells(rowIndex, 25).value = rs.Fields(22).value
     
      rowIndex = rowIndex + 1
     
    NotSelected:
      rs.MoveNext
     
    Wend
     
    'Closing the connexion
    rs.Close
    J'ai vraiment vraiment besoin d'un coup de main, je bloque depuis trop longtemps!

    Merci!

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Par défaut
    Ah oui pardon, je voulais rajouter que la premiere ligne du fichier texte pour les colonnes qui me posent probleme contient 1207710000 pour la colonne de type Currency et - (trait d'union uniquement) pour la colonne de type String.

    Merci d'avance.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Par défaut
    Pas de reponse pour ce post ?
    Je trouve toujours pas...




    Nan, en fait je voulais faire l'effet d'une manif mais c'est celui-la que je voulais mettre:



    Mais je merite peut etre celui-la:


  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
    as-tu essayé de mettre la colonne au bon format ( texte..) avant de lancer ta procédure? ...si c'est ok il ne restera ensuite qu'a voir comment etablir automatiquement ce format...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Par défaut
    Salut bbil,

    Oui j'ai essaye, ca fonctionne pas non plus.
    J'ai aussi essaye les fonctions CStr() et CCur(), sans succes...

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

Discussions similaires

  1. Afficher un trait d'union dans un popupmenu
    Par MiJack dans le forum Débuter
    Réponses: 2
    Dernier message: 24/12/2008, 10h11
  2. Erreur 400 à cause d'un trait d'union
    Par Shara dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/06/2008, 17h09
  3. indexation fulltext des mots avec un trait d'union
    Par andraz dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/03/2007, 16h46
  4. Dll posant problemes a la compilation
    Par titor dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 06/05/2006, 18h48

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