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

Importer ligne par ligne un fichier .txt

7 réponses
Avatar
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

7 réponses

Avatar
RENAUD Eric
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" a écrit dans le
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




Avatar
Dante Huapaya
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" a écrit dans le
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
>
>





Avatar
3stone
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)
Avatar
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.
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)




Avatar
3stone
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)
Avatar
Dante Huapaya
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)




Avatar
3stone
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)