Connection avec excel, taille des champs

Signaler
Messages postés
3
Date d'inscription
lundi 19 août 2002
Statut
Membre
Dernière intervention
19 août 2002
-
Messages postés
3
Date d'inscription
lundi 19 août 2002
Statut
Membre
Dernière intervention
19 août 2002
-
Bonjour,

Je dois mettre a jour une BDD oracle a partir d'infos contenu dans un doc Excel.
J'ai créé une connection ODBC avec mon fichier xls, puis j'utilise le data environnement pour lire les champs.
Lorsque j'execute mon prog, la taille des champs se defini en fonction du premier enregistrement lu CAD:
je lis le champ DESCRIPTION a la premiere ligne. si celui ci fait moins de 255 caracteres, sur toutes les lignes suivantes ce champ DESCRIPTION sera tronqué a 255 caracteres, meme si le texte qu'il contient fait 900 cars.
Actuellement, pour etre sur de garder tous les caracteres, je demande au créateur des fichiers excel de placer en ligne 1 un enregistrement dont la DESCRIPTION est de plus de 255 caracteres, ce qui permet de ne pas couper les textes, mais vous comprendrez que ce bidouillage est loin d'être satisfaisant.

Dans le data environment, dans les proprietes du champs DESCRIPTION, je peux voir "taille : 255 echelle : 0 preçision : 0" mais rien n'est modifiable.

y'a t'il un moyen de fixer cette valeur a 1000 definitivement??
Merci

Celui qui cherche et qui trouve..., parfois!

2 réponses

Messages postés
124
Date d'inscription
mardi 19 février 2002
Statut
Membre
Dernière intervention
7 mars 2004
1
Si je comprends bien, c'est ton champ en base qui est limité ? Dans ce cas, il faut executer une requete sql sur oracle du type alter table...
A toi de chercher le reste mais ce n'est pas très long.
0
Messages postés
3
Date d'inscription
lundi 19 août 2002
Statut
Membre
Dernière intervention
19 août 2002

Désolé, je n'aurai pas du parler de Oracle, le probleme a lieu avant et ne concerne que VB6, Excel2000 et le driver ODBC.

j'execute un code ressemblant à ça :
DElisteskus est mon data environment
listeskus est ma connection evec le pilote odbc pour excel

dim rs as ADODB.recorset
delisteskus.listeskus
set rs = delisteskus.rslisteskus
while not rs.EOF
...
MonDescriptif = rs![DESCRIPTIF]
...
rs.movenext
Wend
...

Lors de la lecture du premier enregistrement, je lis tous mes champs et les affecte a des variables.

- Si DESCRIPTIF fait plus de 255 caracteres, il est bien affecté à ma variable MonDescriptif, et tous les champs DESCRIPTIF des enregistrements suivants seront correctement affectés à MonDescriptif.
- Si DESCRIPTIF fait moins de 255 caracteres, alors je ne recupere que les 255 premiers caracteres des champs suivants dans ma variable, meme si ces champs contiennent plus de texte.

VB initialise par defaut un maximum de caracteres pour chaque champ de l'enregistrement en se basant sur le premier enregistrement!!!!

y'a il un moyen de definir et de fixer cette limite a 1000??

Merci

Celui qui cherche et qui trouve..., parfois!
0