Texte découpée > Access Visual Basic
maximesm
-
maximesm -
maximesm -
Bonjour,
J'aurai besoin d'un coup de main pour réaliser un programme en visual basic sous Access
Le But de ce programme est d'intégrer un fichier txt comme ceci dans une base de données Access
620101360 13 0101200731122007364574067456
A620101360003609790 1133035911900100011001
C620101360 133035911900100007000002012007AMI
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007CS
C620101360 133035911900100007000002012007MPC
A620101360003609814 2270016276501200011001
C620101360 270016276501200007000002012007AMI
C620101360 270016276501200007000002012007B
C620101360 270016276501200007000002012007B
Chaque ligne commence par une lettre sauf la première ligne qui est l'entête, le but est que si la ligne commence par un A je mets les données dans une table A et si elle commence par un C je la mets dans une table C ainsi de suite...
Les tables je les crée moi-même
Ensuite chaque ligne rentre dans une table puis sont découpées en petites parties qui vont intégrer chacun un champ, par exemple:
A620101360003609814 2270016276501200011001
A | 620101360 | 0036098 | 1 | 4 | 2270016276501 | 200 | 0 | 11 | 001
Rentre dans la table A
idA | ch1 | ch2 | ch3 | ch4 | ch5 | ch6 | ch7 | ch8 | ch9 | ch10
Si quelqu'un est assez calé en visual basic sous Access, je voudrai bien un petit coup de main pour réaliser cette manip
Je suis preneur de tous types de réponses
Merci d'avance
J'aurai besoin d'un coup de main pour réaliser un programme en visual basic sous Access
Le But de ce programme est d'intégrer un fichier txt comme ceci dans une base de données Access
620101360 13 0101200731122007364574067456
A620101360003609790 1133035911900100011001
C620101360 133035911900100007000002012007AMI
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007B
C620101360 133035911900100007000002012007CS
C620101360 133035911900100007000002012007MPC
A620101360003609814 2270016276501200011001
C620101360 270016276501200007000002012007AMI
C620101360 270016276501200007000002012007B
C620101360 270016276501200007000002012007B
Chaque ligne commence par une lettre sauf la première ligne qui est l'entête, le but est que si la ligne commence par un A je mets les données dans une table A et si elle commence par un C je la mets dans une table C ainsi de suite...
Les tables je les crée moi-même
Ensuite chaque ligne rentre dans une table puis sont découpées en petites parties qui vont intégrer chacun un champ, par exemple:
A620101360003609814 2270016276501200011001
A | 620101360 | 0036098 | 1 | 4 | 2270016276501 | 200 | 0 | 11 | 001
Rentre dans la table A
idA | ch1 | ch2 | ch3 | ch4 | ch5 | ch6 | ch7 | ch8 | ch9 | ch10
Si quelqu'un est assez calé en visual basic sous Access, je voudrai bien un petit coup de main pour réaliser cette manip
Je suis preneur de tous types de réponses
Merci d'avance
A voir également:
- Texte découpée > Access Visual Basic
- Visual basic - Télécharger - Langages
- Texte de chanson gratuit pdf - Télécharger - Vie quotidienne
- Microsoft 365 basic - Accueil - Microsoft Office
- Visual c++ 2019 - Guide
- Visual paradigm - Télécharger - Gestion de données
4 réponses
Salut,
proposition :
- importer les données dans une table temporaire
- lire la table temporaire
- traiter les données de chaque ligne en fonction de tes souhaits pour mettre à jour les tables A, B, C...
Y'en a pour une centaine de lignes de VBA (si la fonction d'éclatement de la ligne n'est pas trop alambiquée)...
proposition :
- importer les données dans une table temporaire
- lire la table temporaire
- traiter les données de chaque ligne en fonction de tes souhaits pour mettre à jour les tables A, B, C...
Y'en a pour une centaine de lignes de VBA (si la fonction d'éclatement de la ligne n'est pas trop alambiquée)...
Une simple commande type DoCmd.TransferText avec quelques paramètres mettra ton fichier dans une table temporaire.
Ensuite, il faudra lire cette table (idéalement via un recordset), puis extraire les données qui t'intéressent selon les critères que tu as choisi pour les mettre dans les bonnes tables...
Tu crois qu'il faudrait mettre chaque ligne dans un champ différents si il commence par un C ou un A ???
C'est toi qui décide de ce que tu veux faire des données !!!
Ensuite, il faudra lire cette table (idéalement via un recordset), puis extraire les données qui t'intéressent selon les critères que tu as choisi pour les mettre dans les bonnes tables...
Tu crois qu'il faudrait mettre chaque ligne dans un champ différents si il commence par un C ou un A ???
C'est toi qui décide de ce que tu veux faire des données !!!
Il faut donc lire le contenu de ta table avec un recordset, faire les opérations de découpage des données, puis ajouter les données à la table 'cible'.
Un bout d'exemple (à adapter) :
A+ Blux
Un bout d'exemple (à adapter) :
Set Rs0 = CurrentDb.OpenRecordset("Tempo", dbOpenTable, dbReadOnly) Set rs = CurrentDb.OpenRecordset("table_cible", dbOpenTable, dbAppendOnly) Rs0.Movefirst Do Var = Rs0!champ_de_la_table_tempo With rs .AddNew !champ1_de_la_table_cible = Trim(Mid(Var, 1, 6)) !champ2_de_la_table_cible = Trim(Mid(Var, 8, 35)) ..... .Update End With Rs0.MoveNext Loop While Not Rs0.EOF--
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
Je vois que tu veux importer mon fichier txt dans une table temporaire mais comment veux tu t'y prendre
Déjà mon fichier txt fait 37000 lignes.
Tu crois qu'il faudrait mettre chaque ligne dans un champ différents si il commence par un C ou un A ???
Merci d'avance