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 49 50 51 52 53 54
|
Imports Excel
Public Class Form2
Private Sub Form2_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
' dans un événement click de bouton par exemple
Dim xlApp As New Excel.Application
'Si mon fichier existe je le delete
If System.IO.File.Exists("C:\toto.xls") = True Then
Kill("C:\toto.xls")
End If
'ajout d'une page et sélection
Dim xsTransfert As Excel.Worksheet = xlApp.Workbooks.Add.ActiveSheet
Try
' ici on crée la chaine de connexion
' (on se connecte à SQL Server dans notre exemple)
With xsTransfert.QueryTables.Add(Connection:="ODBC;DRIVER=SQL Server;SERVER=XXXX;APP=Microsoft® Query;DATABASE=XXXXX;Integrated Security=True", Destination:=xsTransfert.Range("A1"))
.CommandText = ' ou requete SELECT"
.Name = "feuil1"
.FieldNames = True
.RowNumbers = True
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = Excel.XlCellInsertionMode.xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh(BackgroundQuery:=False)
End With
' affichage
xlApp.Visible = False
'Gestion d'erreur
Catch ex As Exception
MsgBox("Va bosser ca marche pas !")
MessageBox.Show(ex.Message)
End Try
'Sauvegarder le resultat de la requete SQL qui est copier dans mon fichier Excel
xsTransfert.SaveAs("C:\toto.xls")
'Pour enlever le message "voulez vous sauvegarder..."
xlApp.DisplayAlerts = True
'Quit Excel
xlApp.Quit()
'Libérer les ressources
xlApp = Nothing
xsTransfert = Nothing
'Detruire les process EXCEL.EXE
GC.Collect() |