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

Recuperation et mise en forme de fichier texte

12 réponses
Avatar
FRY38
Bonjour à tous,
J'ai un fichier texte de la forme suivant:
Commande avec anomalie, ABR N° :
Date : 22/03/06
Anomalie de commande : Client "0000391227" n'est pas créé(e)
N° Commande Client : 805981
N° Compte Client : 606652
Nombre de postes en anomalie : 0

Commande avec anomalie, ABR N° :
Date : 22/03/06
Anomalie de commande : Client "0000391227" n'est pas créé(e)
N° Commande Client : 801156
N° Compte Client : 425632
Nombre de postes en anomalie : 0

J'ai besion de redistribuer ce fichier dans une table en gardant la forme
1ere colonne telle commande deuxieme colonne telle date ect..
et sur la ligne suivante de passer au second enregistrement.

Popurriez vous m'indiquer la maniere de proceder pour recuperer et mettre en
forme ce type de fichier texte.

Je sais que votre competence va au dela des normes alors j'ai confiance.
Merci à tous et @+
FRY38

10 réponses

1 2
Avatar
Raymond [mvp]
Bonjour.

j'ai donné un début d episte hier pour un cas semblable, voir le poste du
21/03/2006 04:35
procédure à ajuster:
tous les champs sont alpha, à toi de les mettre éventuellement en numérique.
utiliser la librairie de la page :
http://officesystem.access.free.fr/scr_scripting_runtime.htm
nommer ton module Scr.
cocher la référence Microsoft Scripting Runtime et DAO
procédure:

Private Sub Commande0_Click()
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("table1")
Dim Texte As String
Dim Tableau() As String
Scr.txtFileOpen "c:Fichier1.txt", ForReading
Do Until Scr.txtFileEOF
Scr.txtFileReadLine ' ligne 1
Rs.AddNew
Texte = Scr.txtFileReadLine 'ligne 2
Tableau = Split(Texte, "/")
Rs!col1 = Tableau(0)
Rs!col2 = Tableau(1)
Rs!col3 = Tableau(2)
Rs!col4 = Tableau(3)
Texte = Scr.txtFileReadLine 'ligne 3
Tableau = Split(Texte, "/")
Rs!col5 = Tableau(0)
Rs!col6 = Tableau(1)
Rs!col7 = Tableau(2)
Texte = Scr.txtFileReadLine 'ligne 4
Tableau = Split(Texte, "/")
Rs!col8 = Tableau(0)
Rs.Update
Loop
Scr.txtFileClose
Rs.Close
Set Rs = Nothing
Set Db = Nothing
End Sub


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"FRY38" a écrit dans le message de news:

| Bonjour à tous,
| J'ai un fichier texte de la forme suivant:
| Commande avec anomalie, ABR N° :
| Date : 22/03/06
| Anomalie de commande : Client "0000391227" n'est pas créé(e)
| N° Commande Client : 805981
| N° Compte Client : 606652
| Nombre de postes en anomalie : 0
|
| Commande avec anomalie, ABR N° :
| Date : 22/03/06
| Anomalie de commande : Client "0000391227" n'est pas créé(e)
| N° Commande Client : 801156
| N° Compte Client : 425632
| Nombre de postes en anomalie : 0
|
| J'ai besion de redistribuer ce fichier dans une table en gardant la forme
| 1ere colonne telle commande deuxieme colonne telle date ect..
| et sur la ligne suivante de passer au second enregistrement.
|
| Popurriez vous m'indiquer la maniere de proceder pour recuperer et mettre
en
| forme ce type de fichier texte.
|
| Je sais que votre competence va au dela des normes alors j'ai confiance.
| Merci à tous et @+
| FRY38
Avatar
FRY38
Merci pour ton conseil mais : dauand j'arrive à
Function recup()
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("Essai")
Dim Texte As String
Dim Tableau() As String
Scr.txtFileOpen "D:ADVessai.txt", ForReading
Ici a Scr Access me dit : Objet requis je ne comprends pas pourqoui il
n'arrvice pas à ouvrir le fichier txt.

Merci beaucoup de ton aide
FRY38 at @+



Bonjour.

j'ai donné un début d episte hier pour un cas semblable, voir le poste du
21/03/2006 04:35
procédure à ajuster:
tous les champs sont alpha, à toi de les mettre éventuellement en numérique.
utiliser la librairie de la page :
http://officesystem.access.free.fr/scr_scripting_runtime.htm
nommer ton module Scr.
cocher la référence Microsoft Scripting Runtime et DAO
procédure:

Private Sub Commande0_Click()
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("table1")
Dim Texte As String
Dim Tableau() As String
Scr.txtFileOpen "c:Fichier1.txt", ForReading
Do Until Scr.txtFileEOF
Scr.txtFileReadLine ' ligne 1
Rs.AddNew
Texte = Scr.txtFileReadLine 'ligne 2
Tableau = Split(Texte, "/")
Rs!col1 = Tableau(0)
Rs!col2 = Tableau(1)
Rs!col3 = Tableau(2)
Rs!col4 = Tableau(3)
Texte = Scr.txtFileReadLine 'ligne 3
Tableau = Split(Texte, "/")
Rs!col5 = Tableau(0)
Rs!col6 = Tableau(1)
Rs!col7 = Tableau(2)
Texte = Scr.txtFileReadLine 'ligne 4
Tableau = Split(Texte, "/")
Rs!col8 = Tableau(0)
Rs.Update
Loop
Scr.txtFileClose
Rs.Close
Set Rs = Nothing
Set Db = Nothing
End Sub


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"FRY38" a écrit dans le message de news:

| Bonjour à tous,
| J'ai un fichier texte de la forme suivant:
| Commande avec anomalie, ABR N° :
| Date : 22/03/06
| Anomalie de commande : Client "0000391227" n'est pas créé(e)
| N° Commande Client : 805981
| N° Compte Client : 606652
| Nombre de postes en anomalie : 0
|
| Commande avec anomalie, ABR N° :
| Date : 22/03/06
| Anomalie de commande : Client "0000391227" n'est pas créé(e)
| N° Commande Client : 801156
| N° Compte Client : 425632
| Nombre de postes en anomalie : 0
|
| J'ai besion de redistribuer ce fichier dans une table en gardant la forme
| 1ere colonne telle commande deuxieme colonne telle date ect..
| et sur la ligne suivante de passer au second enregistrement.
|
| Popurriez vous m'indiquer la maniere de proceder pour recuperer et mettre
en
| forme ce type de fichier texte.
|
| Je sais que votre competence va au dela des normes alors j'ai confiance.
| Merci à tous et @+
| FRY38





Avatar
FRY38
Merci pour ton conseil mais : dauand j'arrive à
Function recup()
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("Essai")
Dim Texte As String
Dim Tableau() As String
Scr.txtFileOpen "D:ADVessai.txt", ForReading
Ici a Scr Access me dit : Objet requis je ne comprends pas pourqoui il
n'arrvice pas à ouvrir le fichier txt.

Merci beaucoup de ton aide
FRY38 at @+



Bonjour.

j'ai donné un début d episte hier pour un cas semblable, voir le poste du
21/03/2006 04:35
procédure à ajuster:
tous les champs sont alpha, à toi de les mettre éventuellement en numérique.
utiliser la librairie de la page :
http://officesystem.access.free.fr/scr_scripting_runtime.htm
nommer ton module Scr.
cocher la référence Microsoft Scripting Runtime et DAO
procédure:

Private Sub Commande0_Click()
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("table1")
Dim Texte As String
Dim Tableau() As String
Scr.txtFileOpen "c:Fichier1.txt", ForReading
Do Until Scr.txtFileEOF
Scr.txtFileReadLine ' ligne 1
Rs.AddNew
Texte = Scr.txtFileReadLine 'ligne 2
Tableau = Split(Texte, "/")
Rs!col1 = Tableau(0)
Rs!col2 = Tableau(1)
Rs!col3 = Tableau(2)
Rs!col4 = Tableau(3)
Texte = Scr.txtFileReadLine 'ligne 3
Tableau = Split(Texte, "/")
Rs!col5 = Tableau(0)
Rs!col6 = Tableau(1)
Rs!col7 = Tableau(2)
Texte = Scr.txtFileReadLine 'ligne 4
Tableau = Split(Texte, "/")
Rs!col8 = Tableau(0)
Rs.Update
Loop
Scr.txtFileClose
Rs.Close
Set Rs = Nothing
Set Db = Nothing
End Sub


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"FRY38" a écrit dans le message de news:

| Bonjour à tous,
| J'ai un fichier texte de la forme suivant:
| Commande avec anomalie, ABR N° :
| Date : 22/03/06
| Anomalie de commande : Client "0000391227" n'est pas créé(e)
| N° Commande Client : 805981
| N° Compte Client : 606652
| Nombre de postes en anomalie : 0
|
| Commande avec anomalie, ABR N° :
| Date : 22/03/06
| Anomalie de commande : Client "0000391227" n'est pas créé(e)
| N° Commande Client : 801156
| N° Compte Client : 425632
| Nombre de postes en anomalie : 0
|
| J'ai besion de redistribuer ce fichier dans une table en gardant la forme
| 1ere colonne telle commande deuxieme colonne telle date ect..
| et sur la ligne suivante de passer au second enregistrement.
|
| Popurriez vous m'indiquer la maniere de proceder pour recuperer et mettre
en
| forme ce type de fichier texte.
|
| Je sais que votre competence va au dela des normes alors j'ai confiance.
| Merci à tous et @+
| FRY38





Avatar
Raymond [mvp]
il n'y a rien d'autre à faire que ça.
si tu le mets sur c: par exemple, as-tu la même erreur ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"FRY38" a écrit dans le message de news:

| Merci pour ton conseil mais : dauand j'arrive à
| Function recup()
| Dim Db As DAO.Database
| Dim Rs As DAO.Recordset
| Set Db = CurrentDb
| Set Rs = Db.OpenRecordset("Essai")
| Dim Texte As String
| Dim Tableau() As String
| Scr.txtFileOpen "D:ADVessai.txt", ForReading
| Ici a Scr Access me dit : Objet requis je ne comprends pas pourqoui il
| n'arrvice pas à ouvrir le fichier txt.
|
| Merci beaucoup de ton aide
| FRY38 at @+
Avatar
LR
Je crois que l'objet SCR n'est pas intégré dans les versions d'Access
antérieures à 2003.
Il faudrait dans ce cas utiliser d'autres méthodes pour ouvrir le fichier
texte.
Par exemple, référencer la librairie Microsoft Scripting Runtime
et utiliser le code suivant :

Dim fs As FileSystemObject
Dim txs As TextStream

Set txs = fs.OpenTextFile("nom_fichier")
Do Until txs.AtEndOfLine
txs.ReadLine ' ligne 1
Rs.AddNew
Texte = txs.ReadLine 'ligne 2
Tableau = Split(Texte, "/")
Rs!col1 = Tableau(0)
Rs!col2 = Tableau(1)
Rs!col3 = Tableau(2)
Rs!col4 = Tableau(3)
Texte = txs.ReadLine 'ligne 3
Tableau = Split(Texte, "/")
Rs!col5 = Tableau(0)
Rs!col6 = Tableau(1)
Rs!col7 = Tableau(2)
Texte = txs.ReadLine 'ligne 4
Tableau = Split(Texte, "/")
Rs!col8 = Tableau(0)
Rs.Update
Loop
txs.Close
Set fs = Nothing


il n'y a rien d'autre à faire que ça.
si tu le mets sur c: par exemple, as-tu la même erreur ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"FRY38" a écrit dans le message de news:

| Merci pour ton conseil mais : dauand j'arrive à
| Function recup()
| Dim Db As DAO.Database
| Dim Rs As DAO.Recordset
| Set Db = CurrentDb
| Set Rs = Db.OpenRecordset("Essai")
| Dim Texte As String
| Dim Tableau() As String
| Scr.txtFileOpen "D:ADVessai.txt", ForReading
| Ici a Scr Access me dit : Objet requis je ne comprends pas pourqoui il
| n'arrvice pas à ouvrir le fichier txt.
|
| Merci beaucoup de ton aide
| FRY38 at @+





Avatar
Raymond [mvp]
l'objet SCR n'est autre qu'un module nommé SCR contenant les fonctions
FileSystemObject.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"LR" a écrit dans le message de news:

| Je crois que l'objet SCR n'est pas intégré dans les versions d'Access
| antérieures à 2003.
| Il faudrait dans ce cas utiliser d'autres méthodes pour ouvrir le fichier
| texte.
| Par exemple, référencer la librairie Microsoft Scripting Runtime
| et utiliser le code suivant :
|
| Dim fs As FileSystemObject
| Dim txs As TextStream
|
| Set txs = fs.OpenTextFile("nom_fichier")
| Do Until txs.AtEndOfLine
| txs.ReadLine ' ligne 1
| Rs.AddNew
| Texte = txs.ReadLine 'ligne 2
| Tableau = Split(Texte, "/")
| Rs!col1 = Tableau(0)
| Rs!col2 = Tableau(1)
| Rs!col3 = Tableau(2)
| Rs!col4 = Tableau(3)
| Texte = txs.ReadLine 'ligne 3
| Tableau = Split(Texte, "/")
| Rs!col5 = Tableau(0)
| Rs!col6 = Tableau(1)
| Rs!col7 = Tableau(2)
| Texte = txs.ReadLine 'ligne 4
| Tableau = Split(Texte, "/")
| Rs!col8 = Tableau(0)
| Rs.Update
| Loop
| txs.Close
| Set fs = Nothing
|
Avatar
Raymond [mvp]
as-tu bien coché les références demandées ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"FRY38" a écrit dans le message de news:

| Merci pour ton conseil mais : dauand j'arrive à
| Function recup()
| Dim Db As DAO.Database
| Dim Rs As DAO.Recordset
| Set Db = CurrentDb
| Set Rs = Db.OpenRecordset("Essai")
| Dim Texte As String
| Dim Tableau() As String
| Scr.txtFileOpen "D:ADVessai.txt", ForReading
| Ici a Scr Access me dit : Objet requis je ne comprends pas pourqoui il
| n'arrvice pas à ouvrir le fichier txt.
|
| Merci beaucoup de ton aide
| FRY38 at @+
Avatar
3stone
Salut,

"FRY38"
| Ici a Scr Access me dit : Objet requis je ne comprends pas pourqoui il
| n'arrvice pas à ouvrir le fichier txt.


Un conseil :
Apprend à utiliser directement "scripting runtime"
(au lieu d'arroser l'Ego de raymond ;-(

Cela te servira au moins à progresser !

Vas faire un tour ici :
http://www.self-access.com/access/scripting/

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
LR
Effectivement ; comme il y avait un gros logo 2003 sur la page indiquée, je
croyais que c'était un truc interne à Access 2003!
Il est quasi certain que FRY38 a oublié de créer le module standard SCR.


l'objet SCR n'est autre qu'un module nommé SCR contenant les fonctions
FileSystemObject.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"LR" a écrit dans le message de news:

| Je crois que l'objet SCR n'est pas intégré dans les versions d'Access
| antérieures à 2003.
| Il faudrait dans ce cas utiliser d'autres méthodes pour ouvrir le fichier
| texte.
| Par exemple, référencer la librairie Microsoft Scripting Runtime
| et utiliser le code suivant :
|
| Dim fs As FileSystemObject
| Dim txs As TextStream
|
| Set txs = fs.OpenTextFile("nom_fichier")
| Do Until txs.AtEndOfLine
| txs.ReadLine ' ligne 1
| Rs.AddNew
| Texte = txs.ReadLine 'ligne 2
| Tableau = Split(Texte, "/")
| Rs!col1 = Tableau(0)
| Rs!col2 = Tableau(1)
| Rs!col3 = Tableau(2)
| Rs!col4 = Tableau(3)
| Texte = txs.ReadLine 'ligne 3
| Tableau = Split(Texte, "/")
| Rs!col5 = Tableau(0)
| Rs!col6 = Tableau(1)
| Rs!col7 = Tableau(2)
| Texte = txs.ReadLine 'ligne 4
| Tableau = Split(Texte, "/")
| Rs!col8 = Tableau(0)
| Rs.Update
| Loop
| txs.Close
| Set fs = Nothing
|





Avatar
FRY38
Bonjour, et d'abord merci à tous.
LR dit que j'ai oublié de creer le module standard SCR : Comment le creer???
Merci de votre reponse je pense que j'avance doucement mais surement. Merci
FRY38


Effectivement ; comme il y avait un gros logo 2003 sur la page indiquée, je
croyais que c'était un truc interne à Access 2003!
Il est quasi certain que FRY38 a oublié de créer le module standard SCR.


l'objet SCR n'est autre qu'un module nommé SCR contenant les fonctions
FileSystemObject.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
l'abonnement TechNet !
http://www.microsoft.com/france/technet/presentation/cd/default.mspx


"LR" a écrit dans le message de news:

| Je crois que l'objet SCR n'est pas intégré dans les versions d'Access
| antérieures à 2003.
| Il faudrait dans ce cas utiliser d'autres méthodes pour ouvrir le fichier
| texte.
| Par exemple, référencer la librairie Microsoft Scripting Runtime
| et utiliser le code suivant :
|
| Dim fs As FileSystemObject
| Dim txs As TextStream
|
| Set txs = fs.OpenTextFile("nom_fichier")
| Do Until txs.AtEndOfLine
| txs.ReadLine ' ligne 1
| Rs.AddNew
| Texte = txs.ReadLine 'ligne 2
| Tableau = Split(Texte, "/")
| Rs!col1 = Tableau(0)
| Rs!col2 = Tableau(1)
| Rs!col3 = Tableau(2)
| Rs!col4 = Tableau(3)
| Texte = txs.ReadLine 'ligne 3
| Tableau = Split(Texte, "/")
| Rs!col5 = Tableau(0)
| Rs!col6 = Tableau(1)
| Rs!col7 = Tableau(2)
| Texte = txs.ReadLine 'ligne 4
| Tableau = Split(Texte, "/")
| Rs!col8 = Tableau(0)
| Rs.Update
| Loop
| txs.Close
| Set fs = Nothing
|







1 2