OVH Cloud OVH Cloud

Requête Make Table from .txt ?

11 réponses
Avatar
Bruno Frisque
Bonjour.

Je dispose d'un fichier texte (Etat Civil) composé comme ceci :

2001
@Adoption
25

HOSDEY-HOSDEY
Amélie Francine Louisa GIsèle Adeline Bérengère Luisa Dominique



2001
@Adoption
7

KUNDYCKI
Marie Catherine Françoise


La question : est-il possible via requêtes de créer une table dont les
champs seraient composés des 4 lignes significatives du fichier texte ?
Année
@ = objet de l'acte
espace et Numero de l'acte
ligne vide à ne pas reprendre
Nom
Prénoms
lignes blanches à ne pas reprendre

D'avance tout grand merci

1 réponse

1 2
Avatar
Bruno Frisque
Bonjour et merci !!
La référence MS Scripting runtime y est déjà !?
Ca coince dans le module là ou j'ai mis des <<<<<

Merci



"Jessy Sempere [MVP]" wrote in message
news:42382e79$
Bonjour

Rajoutes la référence :
"Microsoft Scripting Runtime"

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bruno Frisque" a écrit dans le message news:

Merci, voici le code mis en place, mais il donne Runtime err 91 : Obj
var


or
With block variable not set.. <<<
- au niveau du form :
'code by Jessy Sempere MSA FR 8/02/05
Call ReadTxt("c:datatable.txt")

- dans me module :
Function ReadTxt(strFile As String)

Dim tabFile() As Variant
Dim lngTab As Long, lngLine As Long, i%
Dim fs As FileSystemObject
Dim ts As TextStream
Dim intAnnée As Integer
Dim strObject As String
Dim intNumActe As Integer
Dim strNom As String
Dim strPrenom As String

Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile(strFile, ForReading) <<<<<< c'est ici
que


çà coince ...

Do While Not ts.AtEndOfStream
lngTab = lngTab + 1
ReDim Preserve tabFile(lngTab)
tabFile(lngTab) = ts.ReadLine
Loop
ts.Close: Set ts = Nothing

For lngLine = 1 To lngTab Step 9
intAnnée = tabFile(lngLine)
strObject = Mid(tabFile(lngLine + 1), 2)
intNumActe = CDbl(tabFile(lngLine + 2))
strNom = tabFile(lngLine + 4)
strPrenom = tabFile(lngLine + 5)
CurrentDb.Execute "INSERT INTO Nais01 ( Année, Objet, NumActe,
Nom,


Prenom ) " _
& "SELECT " & intAnnée & ", '" & strObjet & "', " &
intNumActe


&
", '" & strNom & "', '" & strPrenom & "';"
Next
MsgBox "Opération Terminé"
End Function

D'avance merci !


--------------------------------------------------------------------------
--
---------------

"Jessy Sempere [MVP]" wrote in message
news:420b13b0$
Bonjour

L'argument strFile de la fonction que je t'ai donné, correspond au
chemin


et nom du fichier que tu souhaites insérer dans ta table.

Tu dois faire :

Call ReadTxt "c:totototo.txt"

Pour ce qui est de la table et des noms de champ, tu dois modifier le
SQL


qui est lancé par CurrentDB.Execute en mettant le nom de ta table et
le



nom
de tes champs :

CurrentDb.Execute = "INSERT INTO TaTable ( Année, Objet, " _
& "NumActe, Nom, Prenom ) " _
& "SELECT " & intAnnée & ", '" & strObject & "'" _
& ", " & intNumActe & ", '" & strNom & "', '" & strPrenom
&



"';"


@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bruno Frisque" a écrit dans le message news:
#
Merci & Génial : sans le '=', çà compile sans erreur ....
But, il y a tjrs 1 mais : mon form acec Command0 qui appelle la
fonction


:

Private Sub Command0_Click()
'code by Jessy Sempere MSA FR 8/02/05
'ReadTxt
'Debug.Print ReadTxt

Call ReadTxt(TableCiviloLasne!field1)

End Sub

donne err "ObjectRequired" ....

Je loupe encore quelque chose, mais çà approche ????

Encore merci



"Gafish" wrote in message
news:%
Bonjour,

Essaie en enlevant le = après execute.

Arnaud

"Bruno Frisque" a écrit dans le message
news:





Merci,

J'ai coché la référence MS Scripting runtime mais :

Compilation bloque sur CurrentDb.Execute : "argument not
optional





....

Il manquerait quelque chose ??
encore merci
à +




"Jessy Sempere [MVP]" wrote in
message






news:420877be$
Bonjour

Tu peux essayer ce code :

*******************************************************
Function ReadTxt(strFile As String)

Dim tabFile() As Variant
Dim lngTab As Long, lngLine As Long, i%
Dim fs As FileSystemObject
Dim ts As TextStream
Dim intAnnée As Integer
Dim strObject As String
Dim intNumActe As Integer
Dim strNom As String
Dim strPrenom As String

Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile(strFile, ForReading)

Do While Not ts.AtEndOfStream
lngTab = lngTab + 1
ReDim Preserve tabFile(lngTab)
tabFile(lngTab) = ts.ReadLine
Loop
ts.Close: Set ts = Nothing

For lngLine = 1 To lngTab Step 9
intAnnée = tabFile(lngLine)
strObject = Mid(tabFile(lngLine + 1), 2)
intNumActe = CDbl(tabFile(lngLine + 2))
strNom = tabFile(lngLine + 4)
strPrenom = tabFile(lngLine + 5)
CurrentDb.Execute = "INSERT INTO TaTable ( Année,
Objet,







NumActe,
Nom, Prenom ) " _
& "SELECT " & intAnnée & ", '" & strObject & "', "
&







intNumActe
& ", '" & strNom & "', '" & strPrenom & "';"
Next

MsgBox "Opération Terminé"
End Function
*******************************************************

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Bruno Frisque" a écrit dans le
message







news:

Bonjour.

Je dispose d'un fichier texte (Etat Civil) composé comme
ceci








:

2001
@Adoption
25

HOSDEY-HOSDEY
Amélie Francine Louisa GIsèle Adeline Bérengère Luisa
Dominique










2001
@Adoption
7

KUNDYCKI
Marie Catherine Françoise


La question : est-il possible via requêtes de créer une tab
le








dont
les
champs seraient composés des 4 lignes significatives du
fichier







texte
?
Année
@ = objet de l'acte
espace et Numero de l'acte
ligne vide à ne pas reprendre
Nom
Prénoms
lignes blanches à ne pas reprendre

D'avance tout grand merci


































1 2