Bonjour à tous,
Voila mon problème.
J'essaye d'exporter vers Excel le résultat d'une requette effectuée dans Access sur une base Oracle.
En fait j'ai une base oracle.
Cette base oracle contient une table sur laquelle j'aimerai récupéré un certain nombre d'enregistrements.
L'importation ou la liaison de cette table oracle étant impossible car elle possède trop d'indexes, j'ai fait un formulaire Access qui liste dans une liste de valeur les enregistrements retournés.
J'aimerai bien Exporter cette liste de valeur vers un fichier Excel et c'est la que je coince
J'ai regardé les fonctions DoCmd.TransferSpreadsheet mais ça a rien donné. J'ai effectué une requette sur ce forum j'ai trouvé un code mais pas moyen de l'adapter.
Voici le code de génération du fichier Excel:
En fait dans le message du forum qui m'a inspiré, la création de requette est comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 vSource = "ODBC;Driver={Oracle ODBC Driver};UID=USER;PWD=PASS;dbq=DB;ASY=OFF;" DBEngine.DefaultType = dbUseODBC Set WkODBC = CreateWorkspace("", "", "", dbUseODBC) Set ConPoint = WkODBC.OpenConnection("", , False, vSource) TempstrSelect = "SELECT NAME FROM Table WHERE Name LIKE '%a' " Set Qdf1 = ConPoint.CreateQueryDef(dbOpenDynamic, TempstrSelect) DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Qdf1", "C:\STATISTIQUES.xls" M = MsgBox("Votre requête est enregistrée sous C:\Statistique.xls !", vbOKOnly, "STATISTIQUES") DoCmd.DeleteObject acQuery, "SQLExp" Set TempQuery = Nothing Set db = Nothing End Sub
Où SQLWHERE Est une requette
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Set TempQuery = db.createQueryDef(SQLWHERE, SQLString) DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, SQLWHERE, "STATISTIQUES.xls" Set TempQuery = Nothing Set db = Nothing
Mais quand je défini cette requette comme ça ça plante car je me connecte en base locale et pas à ma base oracle...
Bref c'est la misère.
Alors si quelqu'un à une suggestion je suis preneur!
Merci d'avance.
Weedtrompette
Partager