Requete access exporter sous exel

SwiD86 Messages postés 4 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 18 mars 2006 - 18 mars 2006 à 14:37
cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 - 18 mars 2006 à 16:57
Salut, jai fait quelque recherche sur le forum, mais j'ai poa trouver
précisément ce que je voulais, donc je viens directement demander.

J'ai réalisr un petit log en VB6 qui ce connecte à Access et qui permet de visualiser des requetes.

J'aimerais transferer ces requetes sous exel, comment doit je faire?



Et t-il possible aussi de faire une petite mise en page, du genre
définir un titre, etc.. dans le fichier exel. Merki pour vos reponses

1 réponse

cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 2
18 mars 2006 à 16:57
Pour exporter le contenu d'un recordset sous Excel:
Dans le sous menu "Références" du menu "Projet" de VB6, venir ajouter la référence de la bibiothèque d'objets EXCELx.OLB (EXCEL8.OLB=Excel 97, EXCEL9.OLB=Excel 2000, EXCEL10.OLB=Excel XP,etc...)
Dans le code:
Sub CopyToExcel(rs As DAO.Recordset, sFileXL As String)
Dim n As Byte
Dim XLApp As Excel.Application, wbXL As Excel.WorkBook, wsXL As Excel.Worksheet
Set XLApp=CreateObject("Excel.Application")
Set wbXL=XLAPP.WorkBooks.Open(sFileXL)
Set wsXL=wbXL.Worksheets(1)
wsXL.Activate
For n=0 To rs.Fields.Count-1
wsXL.Cells(1,n+1).Select
XLApp.ActiveCell.Value=rs.Fields(n).Name
Next n
wsXL.Cells(2,1).CopyFromRecordset rs
...
...Code éventuel de mise en forme du tableau Excel

wbXL.Save
Set wsXL=Nothing
wbXL.Close
Set wbXL=Nothing
XLApp.Quit
Set XLApp=Nothing
End Sub

Petites précisions :
Au dessus de EXCEL9.OLB, lorsque l'on génère un pack d'installation, VB6 va chercher Excel.exe car la bibliothèque EXCEL10.OLB n'est pas distincte du fichier exécutable. Il est donc judicieux de se procurer une bibliothèque séparée, telle EXCEL9.OLB, pour éviter les ennuis lors de l'installation sur un poste client.

D'autre part, si plusieurs versions d'Excel existent sur le même ordinateur, il y a lieu de préciser la version qui est utilisée dans l'instruction CreateObject, exemple
Set XLApp=CreateObject("Excel.Application.9")

Enfin, lorsque les opérations de copie s'exécutent sur Excel qui travaille en arrière plan, il y a lieu de ne pas ouvrir un fichier Excel pour eviter des déconvenues.

Bon courage!...
0
Rejoignez-nous