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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| '---------------------------------------------------------------------------------------
' Procédure : cmdExportExcel_Click
' Autheur : Gabout
' Date : 07/10/2011
' Utilité : exporter les données vers Excel
'---------------------------------------------------------------------------------------
Private Sub cmdExportExcel_Click()
' declarer les variables
Dim qd As QueryDef
Dim sSQL As String
Dim sFic As String
Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet
Dim xlBook As Excel.Workbook
' verifier si la requete existe et la supprimer si c'est le cas
If testQuery("Requete_Temporaire") = True Then DoCmd.DeleteObject acQuery, "Requete_Temporaire"
' créer la requete
sSQL = "SELECT tFAM.famlib, tART.artid, tART.artlib, tDET.detref, tDET.dettai, tUNI.unilib, tDET.detpuht, '' AS Quantité " & _
"FROM tUNI INNER JOIN (tFAM INNER JOIN (tART INNER JOIN tDET ON tART.artid = tDET.detart) ON tFAM.famid = tART.artfam) ON tUNI.uniid = tART.artuni " & _
"WHERE tART.artact=Yes " & _
"ORDER BY tART.artid;"
Set qd = CurrentDb.CreateQueryDef("Requete_Temporaire", sSQL)
' nommer le fichier d'export
sFic = CurrentProject.Path & "\EXP_" & Format(DMax("[hisdat]", "tHIS"), "yyyymmdd") & ".xls"
' exporter la requete
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Requete_Temporaire", sFic
' effacer la requete
DoCmd.DeleteObject acQuery, "Requete_Temporaire"
' instancifier
Set xlApp = CreateObject("Excel.application")
Set xlBook = xlApp.Workbooks.Open(sFic)
'Set xlSheet = xlBook.Worksheets("Requete_Temporaire")
' C'EST A PARTIR DE CE RAJOUT DE 3 LIGNES QUE CELA COINCE :
' EXCEL EST TOUJOURS EN MEMOIRE ET LES DONNEES N'APPARAISSENT PAS
Sheets("Requete_Temporaire").Select
Range("A1").FormulaR1C1 = "Catégorie"
Columns("A:A").ColumnWidth = 28
' SI JE SUPPRIME LES 3 LIGNES, PLUS DE PROBLEME : EXCEL N'EST
' PLUS EN MEMOIRE
'
' fermeture
xlBook.Save
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub |
Partager