J’ai des actions répétitives à effectuer, c’est pour cela que je dois faire un programme VBA.
Le programme doit importer des classeurs Excel qui se trouvent dans le disque dur C (à l’adresse C:\dossier ) et ensuite les importer dans Access (en renommant les feuille de données DEPDATA_DEPVALAN) puis les rentrer dans la base de données via 3 programmes SQL qui doivent être éxécutées à la suite.
Ce sont les suivants :
Le programme 1 :
Le programme 2 :Code:
1
2
3
4 INSERT INTO dbo_DEPDATA ( IDFAMILLE01, IDFAMILLE02, IDSOURCES, IDPUBLI, CODEDEP, DEPDATALIBEL, DEPVARIABLE, DEPDATAMEMO, ADEP, TDEP, MDEP, IDSCONTACTS, IDIMPORT, FLAG, SERIECODE ) SELECT DEPDATA_DEPVALAN.IDFAMILLE01, DEPDATA_DEPVALAN.IDFAMILLE02, DEPDATA_DEPVALAN.IDSOURCES, DEPDATA_DEPVALAN.IDPUBLI, DEPDATA_DEPVALAN.CODEDEP, DEPDATA_DEPVALAN.DEPDATALIBEL, DEPDATA_DEPVALAN.DEPVARIABLE, DEPDATA_DEPVALAN.DEPDATAMEMO, DEPDATA_DEPVALAN.ADEP, DEPDATA_DEPVALAN.TDEP, DEPDATA_DEPVALAN.MDEP, DEPDATA_DEPVALAN.IDSCONTACTS, DEPDATA_DEPVALAN.IDIMPORT_DEPDATA, DEPDATA_DEPVALAN.FLAG_DEPDATA, DEPDATA_DEPVALAN.SERIECODE FROM DEPDATA_DEPVALAN GROUP BY DEPDATA_DEPVALAN.IDFAMILLE01, DEPDATA_DEPVALAN.IDFAMILLE02, DEPDATA_DEPVALAN.IDSOURCES, DEPDATA_DEPVALAN.IDPUBLI, DEPDATA_DEPVALAN.CODEDEP, DEPDATA_DEPVALAN.DEPDATALIBEL, DEPDATA_DEPVALAN.DEPVARIABLE, DEPDATA_DEPVALAN.DEPDATAMEMO, DEPDATA_DEPVALAN.ADEP, DEPDATA_DEPVALAN.TDEP, DEPDATA_DEPVALAN.MDEP, DEPDATA_DEPVALAN.IDSCONTACTS, DEPDATA_DEPVALAN.IDIMPORT_DEPDATA, DEPDATA_DEPVALAN.FLAG_DEPDATA, DEPDATA_DEPVALAN.SERIECODE;
Le programme 3 :Code:UPDATE dbo_DEPDATA INNER JOIN DEPDATA_DEPVALAN ON (dbo_DEPDATA.CODEDEP = DEPDATA_DEPVALAN.CODEDEP) AND (dbo_DEPDATA.DEPDATALIBEL = DEPDATA_DEPVALAN.DEPDATALIBEL) SET DEPDATA_DEPVALAN.IDDEPDATA = dbo_depdata.iddepdata;
Code:
1
2
3
4 INSERT INTO dbo_DEPVALAN ( IDDEPDATA, DEPVALANNEEA, DEPDATAAN, DEPVARAN1, DEPVARAN2, IDIMPORT, FLAG ) SELECT DEPDATA_DEPVALAN.IDDEPDATA, DEPDATA_DEPVALAN.DEPVALANNEEA, DEPDATA_DEPVALAN.DEPDATAAN, DEPDATA_DEPVALAN.DEPVARAN1, DEPDATA_DEPVALAN.DEPVARAN2, DEPDATA_DEPVALAN.IMPORT_DEPVALAN AS Expr1, DEPDATA_DEPVALAN.FLAG_DEPVALAN FROM DEPDATA_DEPVALAN GROUP BY DEPDATA_DEPVALAN.IDDEPDATA, DEPDATA_DEPVALAN.DEPVALANNEEA, DEPDATA_DEPVALAN.DEPDATAAN, DEPDATA_DEPVALAN.DEPVARAN1, DEPDATA_DEPVALAN.DEPVARAN2, DEPDATA_DEPVALAN.IMPORT_DEPVALAN, DEPDATA_DEPVALAN.FLAG_DEPVALAN;
Vue les programmes, on remarque bien que lors de l’import sous Access, les feuilles de données devront être nommées DEPDATA_DEPVALAN.
Voila ceux que j’ai rédiger avec des choses qui j’ai lu – je sais bien c’est pas bon c’est pourquoi j’ai besoin d’un coup de main svp.
merci de votre aide, ash.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Sub prog_vba() DoCmd.SetWarnings False For each workbook in ? DoCmd.RunSQL INSERT INTO dbo_DEPDATA ( IDFAMILLE01, IDFAMILLE02, IDSOURCES, IDPUBLI, CODEDEP, DEPDATALIBEL, DEPVARIABLE, DEPDATAMEMO, ADEP, TDEP, MDEP, IDSCONTACTS, IDIMPORT, FLAG, SERIECODE ) SELECT DEPDATA_DEPVALAN.IDFAMILLE01, DEPDATA_DEPVALAN.IDFAMILLE02, DEPDATA_DEPVALAN.IDSOURCES, DEPDATA_DEPVALAN.IDPUBLI, DEPDATA_DEPVALAN.CODEDEP, DEPDATA_DEPVALAN.DEPDATALIBEL, DEPDATA_DEPVALAN.DEPVARIABLE, DEPDATA_DEPVALAN.DEPDATAMEMO, DEPDATA_DEPVALAN.ADEP, DEPDATA_DEPVALAN.TDEP, DEPDATA_DEPVALAN.MDEP, DEPDATA_DEPVALAN.IDSCONTACTS, DEPDATA_DEPVALAN.IDIMPORT_DEPDATA, DEPDATA_DEPVALAN.FLAG_DEPDATA, DEPDATA_DEPVALAN.SERIECODE FROM DEPDATA_DEPVALAN GROUP BY DEPDATA_DEPVALAN.IDFAMILLE01, DEPDATA_DEPVALAN.IDFAMILLE02, DEPDATA_DEPVALAN.IDSOURCES, DEPDATA_DEPVALAN.IDPUBLI, DEPDATA_DEPVALAN.CODEDEP, DEPDATA_DEPVALAN.DEPDATALIBEL, DEPDATA_DEPVALAN.DEPVARIABLE, DEPDATA_DEPVALAN.DEPDATAMEMO, DEPDATA_DEPVALAN.ADEP, DEPDATA_DEPVALAN.TDEP, DEPDATA_DEPVALAN.MDEP, DEPDATA_DEPVALAN.IDSCONTACTS, DEPDATA_DEPVALAN.IDIMPORT_DEPDATA, DEPDATA_DEPVALAN.FLAG_DEPDATA, DEPDATA_DEPVALAN.SERIECODE; DoCmd.RunSQL UPDATE dbo_DEPDATA INNER JOIN DEPDATA_DEPVALAN ON (dbo_DEPDATA.CODEDEP = DEPDATA_DEPVALAN.CODEDEP) AND (dbo_DEPDATA.DEPDATALIBEL = DEPDATA_DEPVALAN.DEPDATALIBEL) SET DEPDATA_DEPVALAN.IDDEPDATA = dbo_depdata.iddepdata; DoCmd.RunSQL INSERT INTO dbo_DEPVALAN ( IDDEPDATA, DEPVALANNEEA, DEPDATAAN, DEPVARAN1, DEPVARAN2, IDIMPORT, FLAG ) SELECT DEPDATA_DEPVALAN.IDDEPDATA, DEPDATA_DEPVALAN.DEPVALANNEEA, DEPDATA_DEPVALAN.DEPDATAAN, DEPDATA_DEPVALAN.DEPVARAN1, DEPDATA_DEPVALAN.DEPVARAN2, DEPDATA_DEPVALAN.IMPORT_DEPVALAN AS Expr1, DEPDATA_DEPVALAN.FLAG_DEPVALAN FROM DEPDATA_DEPVALAN GROUP BY DEPDATA_DEPVALAN.IDDEPDATA, DEPDATA_DEPVALAN.DEPVALANNEEA, DEPDATA_DEPVALAN.DEPDATAAN, DEPDATA_DEPVALAN.DEPVARAN1, DEPDATA_DEPVALAN.DEPVARAN2, DEPDATA_DEPVALAN.IMPORT_DEPVALAN, DEPDATA_DEPVALAN.FLAG_DEPVALAN; Next DoCmd.SetWarnings True End sub