Acc. 2000 Export XL : contourner la limite de 255 caractères [RESOLU] - VB/VBA/VBS - Programmation
Marsh Posté le 04-08-2009 à 16:32:22
personne n'aurait une petite idée ?
bon, j'passerais bien à Access 2003 ou +, ca ferait sauter le problème, mais bon, en entreprise....
Marsh Posté le 05-08-2009 à 09:41:21
bonjour
Désolé si ma question te parait bête mais pourquoi ne pas faire
Code :
|
Ca t'éviterait d'avoir à reconstituer non?
Code :
|
Aussi je suis surpris par cette ligne
Code :
|
C'est pas plutôt
Code :
|
ca donnerait
Code :
|
a condition que tes chaînes de caractère ne fasse pas plus de 750 caractères
Marsh Posté le 05-08-2009 à 10:19:49
j'ai pas pensé à reconstituer au fur et à mesure, j'vais tester, si jamais ca pouvait marcher
par contre, pour
Code :
|
le derniere paramètre représente le nombre de caractères.
donc prendre à partir du caractère 501, et sur 250 caractères
Marsh Posté le 05-08-2009 à 11:09:08
gocho a écrit :
|
aaaaaaaa
Ben j'aurais appris un truc comme ça ^^
alors ca marche la reconstitution au fur et à mesure?
Marsh Posté le 05-08-2009 à 11:18:59
non, rien à faire, ca ne veut pas
je comprends pas du tout ce comportement ...
Marsh Posté le 05-08-2009 à 11:31:51
as-tu essayé de détaillé le comportement à coup de msgbox?
du genre
Code :
|
et
Code :
|
histoire de voir un peu étape par étape
que ce passe-t-il pour l'instant précisémment?
Car là comme ça tes 2 codes m'ont l'air très similaire et je vois aucune anomalie
Marsh Posté le 05-08-2009 à 11:37:24
je n'ai pas détaillé chaque ligne comme ca (mon doc faisant 300 lignes, 3 msgbox par ligne, euh... ^^)
mais j'ai ajouté ca avant la séparation du texte :
Code :
|
Dans le premier cas, j'obtiens : "mon texte en entier - 296 caractères" --> ok
Dans le second cas, j'obtiens : "mon texte coupé - 255 caractères" -->
Marsh Posté le 05-08-2009 à 11:51:01
Petit joueur, j'ai déjà détaillé pire que ça en utilisant access et ma base de donnée avait 9000 entrées qui m'interessaient .
Bon après je passais 5 min sur la touche enter, une fois que j'avais trouvé mon problème
Bon donc dans le premier cas la reconstitution au fur et à mesure ca marche?
Dans ce cas et d'après ton test il semble que ca viennent dès ton reccordset donc le soucis ne serait pas excel mais ton reccordset.
As-tu vériffié si un recordset support les chaines de plus de 255 caractères car si c'est pas le cas, c'est la merde ^^. cf doc petit recherche google necessaire
As tu vérifié que dans la base de données tu as bien des chaines de plus de 255 caractères, histoire que t'ai pas déclaré ton champs en varchar
Marsh Posté le 05-08-2009 à 12:06:59
oui, effectivement, les 5 mn c'est ca que je trouve chiant à la fin ^^
Non, le premier cas marche complètement, j'ai pas détaillé.
Il me retourne bien tout mon champ qui fait 296 caracteres (et donc à priori plus de 255 )
Le recordset n'est donc à priori pas en cause, vu que je le créé de la meme facon.
Et dans ma base, j'ai bien un champ de +255 caractères
Mon premier code fonctionne, pas le 2e.
Marsh Posté le 05-08-2009 à 12:23:04
gocho a écrit : oui, effectivement, les 5 mn c'est ca que je trouve chiant à la fin ^^ |
Patience et longueur de temps. Font plus que force ni que rage
gocho a écrit : |
Pas bien compris
Pourrais-tu montrer comment tu fais ton reccord set.
gocho a écrit : |
Alors là je comprends plus très bien. Si dans ta base tes champs font bien plus de 255 caractères, tu n'as pas besoin de recomposer ton reccordset
Si c'est un reccordset qui provient directement d'une requete sql, pourrais-tu vérifié la sortie
Vérifié que tu as bien 255 cractères.
Etant donné que je ne connais pas ton script, je suis obligé de faire pas mal de supposition, du coup des détails sur l'exécution c'est pratique
Marsh Posté le 05-08-2009 à 13:10:02
bon, histoire de faire simple, j'ai changé le premier post en mettant mes deux fonctions dans leur ensemble.
La premiere (transferExcelAutomation) est celle qui marche. Je récupère bien mes champs avec tous leurs caractères.
La seconde est celle qui pose problème.
Comme ca, ca devrait être plus compréhensible
edit : bourdel ! mais pourquoi le recordset n'est plus ouvert à partir de la même chose !
Je sens que je vais modifier la seconde fonction en ouvrant à partir de la table et non d'une requête, m'apercevoir que ca fonctionne et aller me pendre :-/
Marsh Posté le 05-08-2009 à 13:17:44
ptin mais pourquoi une requete ne récupère pas plus de 255 caractères....
ca marche \o/
merci _xme_
j'pense que j'aurais jamais pensé à vérifier ca, quel con lol
Ceci dit, la reconstitution dans une seule cellule ne fonctionne pas :-/
Ca me garde que la premiere partie.
Marsh Posté le 05-08-2009 à 13:41:18
Du moment que ca marche osef
bon ben tant mieux
bonne journée
Marsh Posté le 04-08-2009 à 11:47:50
Bonjour à tous,
J'ai un petit soucis (si si ^^) sous access 2000.
J'ai une application qui permet d'extraire des données avec la méthode outputTo.
Ca, ca marche niquel.
Maintenant, j'ai une demande d'évolution afin de permettre de remplir +255 caracteres sur les champs, et surtout de pouvoir l'exporter ce champ texte (donc passer d'un champ texte simple à un mémo).
J'ai cherché un peu partout, sous access 2000, c'est pas possible directement (apparemment parce que c'est calqué sur un modèle d'export d'access 95 qui ne permettait pas cela)
J'ai donc trouvé une parade sur le site de microsoft qui consiste à recomposer le mémo sur la feuille excel
Si je parcours ma table, et que j'exporte bêtement, ca marche niquel :
Maintenant, lorsque je veux comparer un champ de ma table avec un champ d'une feuille excel (sur laquelle j'exporte) pour avoir le bon descriptif à la bonne ligne,
ca ne marche plus...il ne récupère plus après 255 caractères.
Voilà le code correspondant (donc j'ai exporté toutes mes lignes avec outputTo, et ensuite je parcours la colonne Id_document pour récupérer les mémos de + 255 caracteres) :
Qqun aurait une idée sur le pourquoi ?
Message édité par gocho le 05-08-2009 à 14:06:35