Simplification de lignes de codes vba Access

Fermé
jmnomade Messages postés 1 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 15 mai 2012 - 15 mai 2012 à 15:16
 jmnomade - 17 mai 2012 à 18:14
Bonjour,
J'ai les lignes de code ci dessous, est'il possible de simplifier?

<code>Dim qd As QueryDef, qe As QueryDef, Qf As QueryDef, Qg As QueryDef, Qh As QueryDef, Qi As QueryDef, Qj As QueryDef, Qk As QueryDef, Ql As QueryDef, Qm As QueryDef

Set qd = CurrentDb.CreateQueryDef("VN", "Select * From R_MODVN")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "VN", "c:\Moteurs.xls"
DoCmd.DeleteObject acQuery, "VN"
'
Set qe = CurrentDb.CreateQueryDef("LFDVA", "Select * From R_MODLFDVA")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "LFDVA", "c:\Moteurs.xls"
DoCmd.DeleteObject acQuery, "LFDVA"
'
Set Qf = CurrentDb.CreateQueryDef("MOD1", "Select * From R_MOD1")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "MOD1", "c:\Moteurs.xls"
DoCmd.DeleteObject acQuery, "MOD1"
'
Set Qg = CurrentDb.CreateQueryDef("MOD2", "Select * From R_MOD2")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "MOD2", "c:\Moteurs.xls"
DoCmd.DeleteObject acQuery, "MOD2"
'
Set Qh = CurrentDb.CreateQueryDef("MOD3", "Select * From R_MOD3")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "MOD3", "c:\Moteurs.xls"
DoCmd.DeleteObject acQuery, "MOD3"
'
Set Qi = CurrentDb.CreateQueryDef("MOD6", "Select * From R_MOD6")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "MOD6", "c:\Moteurs.xls"
DoCmd.DeleteObject acQuery, "MOD6"
'
Set Qj = CurrentDb.CreateQueryDef("MOD7", "Select * From R_MOD7")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "MOD7", "c:\Moteurs.xls"
DoCmd.DeleteObject acQuery, "MOD7"
'
Set Qk = CurrentDb.CreateQueryDef("MOD8", "Select * From R_MOD8")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "MOD8", "c:\Moteurs.xls"
DoCmd.DeleteObject acQuery, "MOD8"
'
Merci par avance

A voir également:

2 réponses

f894009 Messages postés 17268 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 29 mars 2025 1 713
16 mai 2012 à 15:47
Bonjour,

Ecrit differement:

Sub test()
  Dim qd As QueryDef
  For x = 1 To 8
    Rsql = Choose(x, "MODVN", "MODLFDVA", "MOD1", "MOD2", "MOD3", "MOD6", "MOD7", "MOD8")
    Set qd = CurrentDb.CreateQueryDef(Rsql, "Select * From R_" & Rsql)
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, Rsql, "c:\Moteurs.xls"
    DoCmd.DeleteObject acQuery, Rsql
  Next x
  
End Sub


Bonne suite
0
Bonjour,
Et merci.
A+
0