Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

transformer un fichier texte en table access avec vb6

13 réponses
Avatar
Michel Voirain
Bonjour à tous,
Je reçois par mail un fichier texte (exporté d'une base access). Avec VB6,
j'aimerai le transformer en base access pour pouvoir le traiter plus
facilement!
Est-ce possible? Une piste!
Merci à tous,
Michel

3 réponses

1 2
Avatar
jean-marc
"Michel Voirain" wrote in message
news:
Bonjour Jean-Marc,

Vraiment merci. Petit à petit, je commence à comprendre!


Voici quelques lignes et quelques champs tel que les exporte access (la
date est encombrée de 00:00:00 et les entiers sont du style 5,00 !(alors
que le format des tables est bon!)).Ton export à toi est nickel!
En fait j'ai des champs texte, nombre, date et des cases à cocher(-1 ou
0)

"Centre";"datedujour";"codeenfant";"Nom";"Prénom";"Datenaissance";"QF";"BV2007";"Nbdejours";"Adresse";"Ville";"CodePostal";
"Kerfichant";18/5/2007 00:00:00;1251,00;"PRENEAU";"ANTOINE";13/1/2004
00:00:00;"D";0;5,00;"157 RUE DE BELGIQUE";"LORIENT";56100,00;
"Kerfichant";18/5/2007 00:00:00;867,00;"PRENEAU";"MELVIN";13/1/2004
00:00:00;"D";0;5,00;"157 RUE DE BELGIQUE";"LORIENT";56100,00;
"Kerfichant";18/5/2007 00:00:00;3209,00;"BALIN";"EMMANUEL";31/7/2003
00:00:00;"E";0;5,00;"14 RUE DES SABLES BLANCS";"LORIENT";56100,00;

Si tu peux m'écrire quelques bout de code, cela m'avancerait!




Et bien sur cette base, ta boucle d'import devient:

' ce qui suit ext un exemple, ca dépend de la vraie structure de
tes tables mais ça doit être 99% okay, si pas 100%.


While Not EOF(f)
Line Input #f, s
t() = Split(s, sep)

' pour virer les guillements superflus,
' inutile avec mon export.

For i = Lbound(t()) to Ubound(t())
t(i) = replace(t(i), chr$(34), chr$(0) )
Next i

rs.AddNew
rs.fields("Centre") = t(0)
rs.fields("datedujour") = CDate(t(1))
rs.fields("codeenfant") = Clng(t(2))
rs.fields("Nom") = t(3)
rs.fields("Prénom") = t(4)
rs.fields("Datenaissance") = Cdate(t(5))
rs.fields("QF") = t(6)
rs.fields("BV2007") = CBool( t(7))
rs.fields("Nbdejours") = Clng( t(8))
rs.fields("Adresse") = t(9)
rs.fields("Ville") = t(10)
rs.fields("CodePostal") = Clng(t(11)
rs.Update
Wend

le principe est de convertir ce qui doit l'etre.
On perd en généricité ici, il y aurait moyen de faire
untruc générique avec un petit fichier de config mais
ça dépasse un peu le cadre de ce NG.

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
Michel Voirain
Merci jean-Marc, tout marche au poil ! Et surtout cela me permet de
décortiquer le code et d'apprendre!
Mais je suis sûr que ce n'est pas dernière question sur le liste !

Encore merci,

Michel

"jean-marc" a écrit dans le message de news:
465428a6$0$14242$

"Michel Voirain" wrote in message
news:
Bonjour Jean-Marc,

Vraiment merci. Petit à petit, je commence à comprendre!


Voici quelques lignes et quelques champs tel que les exporte access (la
date est encombrée de 00:00:00 et les entiers sont du style 5,00 !(alors
que le format des tables est bon!)).Ton export à toi est nickel!
En fait j'ai des champs texte, nombre, date et des cases à cocher(-1 ou
0)

"Centre";"datedujour";"codeenfant";"Nom";"Prénom";"Datenaissance";"QF";"BV2007";"Nbdejours";"Adresse";"Ville";"CodePostal";
"Kerfichant";18/5/2007 00:00:00;1251,00;"PRENEAU";"ANTOINE";13/1/2004
00:00:00;"D";0;5,00;"157 RUE DE BELGIQUE";"LORIENT";56100,00;
"Kerfichant";18/5/2007 00:00:00;867,00;"PRENEAU";"MELVIN";13/1/2004
00:00:00;"D";0;5,00;"157 RUE DE BELGIQUE";"LORIENT";56100,00;
"Kerfichant";18/5/2007 00:00:00;3209,00;"BALIN";"EMMANUEL";31/7/2003
00:00:00;"E";0;5,00;"14 RUE DES SABLES BLANCS";"LORIENT";56100,00;

Si tu peux m'écrire quelques bout de code, cela m'avancerait!




Et bien sur cette base, ta boucle d'import devient:

' ce qui suit ext un exemple, ca dépend de la vraie structure de
tes tables mais ça doit être 99% okay, si pas 100%.


While Not EOF(f)
Line Input #f, s
t() = Split(s, sep)

' pour virer les guillements superflus,
' inutile avec mon export.

For i = Lbound(t()) to Ubound(t())
t(i) = replace(t(i), chr$(34), chr$(0) )
Next i

rs.AddNew
rs.fields("Centre") = t(0)
rs.fields("datedujour") = CDate(t(1))
rs.fields("codeenfant") = Clng(t(2))
rs.fields("Nom") = t(3)
rs.fields("Prénom") = t(4)
rs.fields("Datenaissance") = Cdate(t(5))
rs.fields("QF") = t(6)
rs.fields("BV2007") = CBool( t(7))
rs.fields("Nbdejours") = Clng( t(8))
rs.fields("Adresse") = t(9)
rs.fields("Ville") = t(10)
rs.fields("CodePostal") = Clng(t(11)
rs.Update
Wend

le principe est de convertir ce qui doit l'etre.
On perd en généricité ici, il y aurait moyen de faire
untruc générique avec un petit fichier de config mais
ça dépasse un peu le cadre de ce NG.

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/




Avatar
jean-marc
"Michel Voirain" wrote in message
news:%

Hello,

Merci jean-Marc, tout marche au poil ! Et surtout cela me permet de
décortiquer le code et d'apprendre!



Content que ça marche!

Mais je suis sûr que ce n'est pas dernière question sur le liste !

Encore merci,



Merci pour le retour d'info :-)

Bonne journée,


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
1 2