Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/12/2011, 18h07   #1
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 35
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 35
Points : 31
Points : 31
Par défaut [AC-2007] recordset ne retournant que la derniere ligne pour un varchar contenant des vbcrlf

Bonjour

Je stocke du contenu de fichier texte dans un varchar(max) sur un 2008 R2 lié en ODBC
Pas de soucis pour stocker :
je fais un insert avec comme valeur : Join(MonArray, vbCrLf)
- MonArray est une variable tableau texte contenant les lignes de mon fichier texte -

Sous SQL server 2008 R2, le texte est correctement stocké
Si je fais un copier coller depuis l'interface graphique du serveur directement dans le bloc note
Je retrouve bien mon fichier texte identique

Par contre, si j'essaye de recuperer ce texte avec un recordset (DAO ou ADO) dans mon VBA Access,
il ne me retrourne que la derniere ligne !
En fait, il renvoi un bout de l'avant derniere ligne + la derniere ligne
il me retourne un string de 163 caractères
(J'attends environ 7000 caracteres)

Connaissez vous la raison de ce comportement ?
Y a t il un moyen simple de procéder sans changer mes definitions de table ?

Merchi !

Antoine qui sèche la...
kan630 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 18h34   #2
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 35
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 35
Points : 31
Points : 31
En faisant des tests, le type de données ne change rien
varchar(8000), varchar(max), text

Ce qui change, c'est le SQL de ma requete...

En fait, c'est le DISTINCT....

Code :
set rst = codeDB.openrecordset("SELECT Contenu FROM MaTable" , dbopenforwardonly, dbreadonly)
=> C'est OK, len(rst(0)) = 6500

Code :
set rst = codeDB.openrecordset("SELECT DISTINCT Contenu FROM MaTable"   , dbopenforwardonly, dbreadonly)
=> C'est KO, len(rst(0)) = 163


J'aurais pu m'en douter...
kan630 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h21.


 
 
 
 
Partenaires

Hébergement Web