Importer ligne par ligne un fichier .txt

Le
Dante Huapaya
Bonjour,
Sur le site de Stone3 j'ai trouvé le code ci-bas, ma question est,
comment l'adapter pour importer dans plusieurs champs d'un table?
Merci de votre aide.
Dante

Sub ImportTXT()
Dim txtLine As String
Dim LeFichier As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim F As Integer

LeFichier = "c:cheminfichier.txt"

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("LaTable", dbOpenDynaset)
F = FreeFile
Open LeFichier For Input As #F
Line Input #F, txtLine

Do While Not EOF(F)

Line Input #F, txtLine

With rst

.AddNew
.Fields("LeChamp").Value = txtLine
.Update

End With

Loop

Close #F
rst.Close
Set dbs = Nothing
Set rst = Nothing

End Sub
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
RENAUD Eric
Le #17670001
Bonjour,
Soit un fichier texte avec le ; comme séparateur et 3 champs à importer

Sub ImportTXT()
Dim txtLine As String
Dim LeFichier As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim F As Integer
Dim Tbl()
LeFichier = "c:cheminfichier.txt"

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("LaTable", dbOpenDynaset)
F = FreeFile
Open LeFichier For Input As #F

Do While Not EOF(F)
Line Input #F, txtLine
tbl = Split(txtLine, ";")
With rst
.AddNew
.Fields("LeChamp1").Value = tbl(0)
.Fields("LeChamp2").Value = tbl(1)
.Fields("LeChamp3").Value = tbl(2)
End With
Loop

Close #F
rst.Close
Set dbs = Nothing
Set rst = Nothing

End Sub




"Dante Huapaya" message de news:
Bonjour,
Sur le site de Stone3 j'ai trouvé le code ci-bas, ma question est,
comment l'adapter pour importer dans plusieurs champs d'un table?
Merci de votre aide.
Dante

Sub ImportTXT()
Dim txtLine As String
Dim LeFichier As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim F As Integer

LeFichier = "c:cheminfichier.txt"

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("LaTable", dbOpenDynaset)
F = FreeFile
Open LeFichier For Input As #F
Line Input #F, txtLine

Do While Not EOF(F)

Line Input #F, txtLine

With rst

.AddNew
.Fields("LeChamp").Value = txtLine
.Update

End With

Loop

Close #F
rst.Close
Set dbs = Nothing
Set rst = Nothing

End Sub




Dante Huapaya
Le #17670941
Salut,
J'ai modifié le code afin d'importer mon fichier texte avec spaces comme
séparateur, mais il me donne le message d'erreur suivant:
Run time erreur 13, type incompatible.
Merci encore

Sub ImportTXT()
Dim txtLine As String
Dim LeFichier As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim F As Integer
Dim Tbl()
FileName = "F:testforum.TXT"

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("MBTQ", dbOpenDynaset)
F = FreeFile
Open FileName For Input As #F

Do While Not EOF(F)
Line Input #F, txtLine
Tbl = Split(txtLine, "")
With rst
.AddNew
.Fields("NOCOMPTE").Value = Tbl(0)
.Fields("MODEL").Value = Tbl(1)
.Fields("TRANS").Value = Tbl(2)
.Fields("REFERENCE").Value = Tbl(3)
.Fields("TYPE").Value = Tbl(4)
End With
Loop

Close #F
rst.Close
Set dbs = Nothing
Set rst = Nothing

End Sub


"RENAUD Eric" a écrit :

Bonjour,
Soit un fichier texte avec le ; comme séparateur et 3 champs à importer

Sub ImportTXT()
Dim txtLine As String
Dim LeFichier As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim F As Integer
Dim Tbl()
LeFichier = "c:cheminfichier.txt"

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("LaTable", dbOpenDynaset)
F = FreeFile
Open LeFichier For Input As #F

Do While Not EOF(F)
Line Input #F, txtLine
tbl = Split(txtLine, ";")
With rst
.AddNew
.Fields("LeChamp1").Value = tbl(0)
.Fields("LeChamp2").Value = tbl(1)
.Fields("LeChamp3").Value = tbl(2)
End With
Loop

Close #F
rst.Close
Set dbs = Nothing
Set rst = Nothing

End Sub




"Dante Huapaya" message de news:
> Bonjour,
> Sur le site de Stone3 j'ai trouvé le code ci-bas, ma question est,
> comment l'adapter pour importer dans plusieurs champs d'un table?
> Merci de votre aide.
> Dante
>
> Sub ImportTXT()
> Dim txtLine As String
> Dim LeFichier As String
> Dim dbs As DAO.Database
> Dim rst As DAO.Recordset
> Dim F As Integer
>
> LeFichier = "c:cheminfichier.txt"
>
> Set dbs = CurrentDb
> Set rst = dbs.OpenRecordset("LaTable", dbOpenDynaset)
> F = FreeFile
> Open LeFichier For Input As #F
> Line Input #F, txtLine
>
> Do While Not EOF(F)
>
> Line Input #F, txtLine
>
> With rst
>
> .AddNew
> .Fields("LeChamp").Value = txtLine
> .Update
>
> End With
>
> Loop
>
> Close #F
> rst.Close
> Set dbs = Nothing
> Set rst = Nothing
>
> End Sub
>
>





3stone
Le #17705601
Salut,

"Dante Huapaya"
| J'ai modifié le code afin d'importer mon fichier texte avec spaces comme
| séparateur, mais il me donne le message d'erreur suivant:
| Run time erreur 13, type incompatible.
| Merci encore
|
| Sub ImportTXT()
| Dim txtLine As String
| Dim LeFichier As String
| Dim dbs As DAO.Database
| Dim rst As DAO.Recordset
| Dim F As Integer
| Dim Tbl()
| FileName = "F:testforum.TXT"
|
| Set dbs = CurrentDb
| Set rst = dbs.OpenRecordset("MBTQ", dbOpenDynaset)
| F = FreeFile
| Open FileName For Input As #F
|
| Do While Not EOF(F)
| Line Input #F, txtLine
| Tbl = Split(txtLine, "")
| With rst
| .AddNew
| .Fields("NOCOMPTE").Value = Tbl(0)
| .Fields("MODEL").Value = Tbl(1)
| .Fields("TRANS").Value = Tbl(2)
| .Fields("REFERENCE").Value = Tbl(3)
| .Fields("TYPE").Value = Tbl(4)
| End With
| Loop
|
| Close #F
| rst.Close
| Set dbs = Nothing
| Set rst = Nothing
|
| End Sub


Un espace n'est pas forcément un bon séparateur...

Sur quelle ligne recois tu l'erreur que tu indique ?

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Dante Huapaya
Le #17708401
Sur la ligne suivante:
Tbl = Split(txtLine, "")
Malheuresement, le fichier provient d'une source externe, donc j'ai ne pas
le control
du format.
Merci

"3stone" a écrit :

Salut,

"Dante Huapaya"
| J'ai modifié le code afin d'importer mon fichier texte avec spaces comme
| séparateur, mais il me donne le message d'erreur suivant:
| Run time erreur 13, type incompatible.
| Merci encore
|
| Sub ImportTXT()
| Dim txtLine As String
| Dim LeFichier As String
| Dim dbs As DAO.Database
| Dim rst As DAO.Recordset
| Dim F As Integer
| Dim Tbl()
| FileName = "F:testforum.TXT"
|
| Set dbs = CurrentDb
| Set rst = dbs.OpenRecordset("MBTQ", dbOpenDynaset)
| F = FreeFile
| Open FileName For Input As #F
|
| Do While Not EOF(F)
| Line Input #F, txtLine
| Tbl = Split(txtLine, "")
| With rst
| .AddNew
| .Fields("NOCOMPTE").Value = Tbl(0)
| .Fields("MODEL").Value = Tbl(1)
| .Fields("TRANS").Value = Tbl(2)
| .Fields("REFERENCE").Value = Tbl(3)
| .Fields("TYPE").Value = Tbl(4)
| End With
| Loop
|
| Close #F
| rst.Close
| Set dbs = Nothing
| Set rst = Nothing
|
| End Sub


Un espace n'est pas forcément un bon séparateur...

Sur quelle ligne recois tu l'erreur que tu indique ?

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




3stone
Le #17710611
Salut,

"Dante Huapaya"
| Sur la ligne suivante:
| Tbl = Split(txtLine, "")
| Malheuresement, le fichier provient d'une source externe,
| donc j'ai ne pas le control du format.


Split(txtLine," ")

serait plus correct, dans ce cas, non ?

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Dante Huapaya
Le #17736601
J'ai essayé, mais le resultat est le meme.
Merci

Dante

"3stone" a écrit :

Salut,

"Dante Huapaya"
| Sur la ligne suivante:
| Tbl = Split(txtLine, "")
| Malheuresement, le fichier provient d'une source externe,
| donc j'ai ne pas le control du format.


Split(txtLine," ")

serait plus correct, dans ce cas, non ?

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




3stone
Le #17767441
Salut,

"Dante Huapaya"
| J'ai essayé, mais le resultat est le meme.


Si ta lecture ne différencie pas les deux :

Tbl = Split(txtLine, "")

Tbl = Split(txtLine," ")

ce sera difficile :-)

Regarde dans l'aide pour comprendre comment fonctionne Split()

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Publicité
Poster une réponse
Anonyme