|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 23 ![]() |
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 ! |
|
|
00
|
|
|
#2 | ||
|
Invité de passage
![]() Inscription : juin 2006 Messages : 23 ![]() |
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 :
Merci! |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 23 ![]() |
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. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 23 ![]() |
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:
|
|
|
00
|
|
|
#5 |
![]() ![]() |
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...
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 23 ![]() |
Salut bbil,
Oui j'ai essaye, ca fonctionne pas non plus. J'ai aussi essaye les fonctions CStr() et CCur(), sans succes... |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : mai 2005 Messages : 3 419 ![]() |
pour passer d'access à excel nul besoin de csv
faire données données externes nouvelle requête
__________________
Elle est pas belle la vie ? |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 23 ![]() |
Bonjour Random,
C'est une base Lotus Notes (pas access) dont je ne peux seulement passer par un CSV... Va falloir mieux pour meriter le statut de "Expert"... |
|
|
00
|
|
|
#9 |
![]() ![]() Alain GerardConsultant informatique Inscription : mai 2005 Messages : 3 675 ![]() |
Va falloir nous donner de meilleures infos si tu veux des réponses correctes.
Depuis le début tu nous distille les renseignements au compte gouttes. Si tu nous montrais, au moins, le contenu de ta base (ou du CSV) et ce que tu veux en obtenir, on pourrais, peut-être, t'aider.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres! Pensez aussi à voter pour les réponses qui vous ont aidés. ------------ Je dois beaucoup de mes connaissances à mes erreurs! |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 23 ![]() |
Ok tu as peut-etre raison, je vais essayer d'etre plus precis. Mais definir un probleme que l'on a du mal a cerner est toujours complexe...
Je reformule mon probleme le plus simplement possible. Je laisse tomber le probleme des tirets et me concentre sur le second probleme. J'utilise une connexion ODBC (dont j'ai mis le code au-dessus) pour recuperer des donnees d'un fichier CSV (separe par des virgules). J'ai une colonne qui contient les valeurs suivantes (dans le fichier CSV): Amount 1207710000 42100000 27360000 13980000 17910000 106360000 150000 200000 400000 102460000 0 3000000000 1000000000 4360000 300000000 25000000000 1000000 1450000 Lorsque je recupere ses valeurs pour les mettre dans une colonne sous Excel, je ne vois que les valeurs < 2 147 483 647 (donc de type Long) et pas superieur a cette valeur (j'ai un blanc a la place), En utilisant le deboggueur (watch sur un recordSet.Field()), je vois que la macro recupere les valeurs de type Long et affiche nulle pour les valeurs de type currency (> 2 147 483 647) provenant du CSV. Il faudrait que je puisse specifier a l'avance le type de la colonne, c'est a dire Currency pour avoir toutes les valeurs (Long et Currency). Je ne peux pas mettre l'ensemble du CSV parce que d'abord il est enorme mais aussi c'est des donnees confidentielles que je ne peux pas mettre en ligne... Voila... J'espere avoir ete clair... |
|
|
00
|
|
|
#11 | ||
|
Invité de passage
![]() Inscription : juin 2006 Messages : 23 ![]() |
Bonjour,
Comme j'ai vraiment vraiment besoin d'aide sur ce coup-la , j'ai fait une ptite macro simplissime comportant mon probleme. J'ai mis un fichier TXT en piece jointe a mettre dans C:\TEMP.Voici le code de la macro: Code :
La macro "attaque" le fichier texte et affiche une colonne comportant les nombres de ce fichier. Elle n'affiche pas les nombres > 2 147 483 647. c'est mon probleme... |
||
|
|
00
|
|
|
#12 |
|
Membre chevronné
![]() Inscription : janvier 2005 Messages : 618 ![]() |
Salut,
Je ne sais pas si tu as remarqué mais cela se passe à ce niveau : Code :
Sheets(1).Cells(RowIndex, 1) = rs.Fields(0) Le problème est que lorsque tu dépasses le seuil que tu as indiqué rs.Fields(0) prend la valeur Null ... Je ne sais pas si cela peut donner des pister de résolution + Théo
__________________
Forums VB : lire la notice La touche existe pour être utilisée Pensez au tag Pour ceux n'ayant pas l'aide installée : - Aide MSDN pour VB6 - Aide MSDN pour VBA Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà. |
|
|
00
|
|
|
#13 | |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 23 ![]() |
Salut Theocourant,
Je comprend pas: l'"erreur" que tu as corrige permet de resoudre le probleme ? J'ai essaye mais ca ne fonctionne pas... Sinon j'avais deja remarque pour la valeure null: Citation:
HELP! |
|
|
|
00
|
|
|
#14 | |
|
Membre chevronné
![]() Inscription : janvier 2005 Messages : 618 ![]() |
Citation:
Sinon je ne suis pas assez connaisseur pour comprendre plus loin le problème : je ne vais pas pouvoir t'aider plus désolé. Bonne continuation Théo
__________________
Forums VB : lire la notice La touche existe pour être utilisée Pensez au tag Pour ceux n'ayant pas l'aide installée : - Aide MSDN pour VB6 - Aide MSDN pour VBA Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà. |
|
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 23 ![]() |
Ok merci quand meme Theocourant!
A+. |
|
|
00
|
|
|
#16 | ||
|
Invité de passage
![]() Inscription : juin 2006 Messages : 23 ![]() |
J'ai finalement detourne le probleme en traitant le fichier CSV comme un fichier texte tout simple, en le lisant ligne par ligne (methode ReadLine) et en recuperant chaque champ separe par une virgule avec la fonction "Split":
Code :
Voili voilou... Merci pour ceux qui ont tente de m'aider! |
||
|
|
00
|
|
|
#17 |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
J'ai remplacé ton Délestage par résolu car si j'avais vu ta question, c'est la solution que je t'aurais conseillée et qui me semble la meilleure (mais j'étais pas là
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com