Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/01/2011, 12h26   #1
Invité de passage
 
Julien SIMON
Inscription : février 2010
Messages : 3
Détails du profil
Informations personnelles :
Nom : Julien SIMON

Informations forums :
Inscription : février 2010
Messages : 3
Points : 0
Points : 0
Par défaut Import avec condition

Bonjour,

Pour commencer Une bonne et heureuse année a tous !!!

Je rencontre un problème, je réalise aujourd’hui un import de fichier .txt, cela fonctionne mais je voudrais le personnaliser via une petit « Macro » car cela me demande de nombreuses manipulations.

Je m’explique, je reçois plusieurs fois par jour des fichiers que je dois intégrer dans ma base Access pour alimenter plusieurs tables.

Voici mes différentes tables :
- Nomenclature (#100)
- Infos_cde (#300)
- Détails_cde (#400)

Ces tables doivent être alimentées par l’import d’un fichier texte nommé : « CDE_1140AAAAMMJJ CODE», contenant ceci :

#100||1140|20100501|01:05:01
#300|CS2010040052|20100430|0000|20100503|8|PADD RENNES|||LA HAIE GAUTRAIS||35170|BRUZ|FR|COL|CI60|||||SE|
#400|CS2010040052|1|805029|805029|1||17.00|
#400|CS2010040052|2|805028|805028|1||17.00|
#400|CS2010040052|3|808317|808317|1||30.00|
#400|CS2010040052|4|808455|808455|2||30.00|
#400|CS2010040052|5|806316|806316|1||30.00|
#400|CS2010040052|6|806320|806320|1||23.00|
#400|CS2010040052|7|806059|806059|1||30.00|
#400|CS2010040052|8|806006|806006|1||23.00|
#400|CS2010040052|9|803978|803978|1||30.00|
#400|CS2010040052|10|806028|806028|1||30.00|
#400|CS2010040052|11|801254|801254|1||30.00|
#400|CS2010040052|12|806029|806029|1||30.00|
#400|CS2010040052|13|806027|806027|1||30.00|
#400|CS2010040052|14|801103|801103|1||23.00|

Il faut donc que chaque ligne, alimente la table correspondant au code de début de ligne (#xxx).

J’ai donc déjà trouvé quelques lignes de code pour ouvrir une boite de dialogue me demandant de sélectionner le fichier à importer, le choix du séparateur de champ, ici « | ».

Mais je ne parviens pas à trouver la suite du code pour lui faire alimenter les tables adéquates.

Car pour le moment cet import alimente qu’une seul table, ce qui ne me conviens pas tout a fait, car cela implique plusieurs manipulations ce qui est plus long. (Je reçois environs un fichier toutes les heures, donc je cherche a optimiser les traitements.)

Merci d’avance pour votre aide précieuse.

Amicalement,
Julien
Junior75002 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 14h17   #2
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
Bonjour,

1/ Tu créés une table à 2 champs dont l'un prend le code de début de ligne et l'autre, le nom de la table correspondante :
Code :
1
2
3
#100    Nomenclature 
#300    Infos_cde
#400    Détails_cde
2/ Tu sauves cette table sous le nom tbl_ImportSpec
3/ Tu ouvres une boucle en VBA qui lit cette table
Chaque valeur du code est initialisé dans un variable et cahque nom de table correspondante aussi
Code :
1
2
lngCode=.Fields(0)
strTargetTable=.Fields(1)
4/ Tu procèdes alors à un INSERT :
Code :
SQL= "INSERT INTO "& strTargetTable & " SELECT * FROM TableImport WHERE Code = " & lngCode & ";"
5/ C'est fini

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h02.


 
 
 
 
Partenaires

Hébergement Web