Bonjour à tous !
Je (re)viens vers vous en cette fin d'année avec un nouveau problème à résoudre ! Oui, je ne m'en lasse pas.
Voilà la situation, cette fois.
Niveau matériel, je travaille sous XP, avec la suite office 2003. Donc configuration standard, rien de particulier à signaler.
Je dispose d'une appli Access contenant (entre autres) une table de plusieurs champs. Au milieu de tout ça, un champ date. Je veux exécuter une requête paramétrée me permettant de sélectionner tous les champs compris entre deux dates.
Jusque là, rien d'anormal, la requête est exécutée. Mon code est celui-ci :
Là, la requête s'effectue parfaitement, je n'ai aucun pb
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Dim objCmd As ADODB.Command Dim objParameter As ADODB.Parameter ' Paramètre à passer à la commande Dim rst As ADODB.Recordset Set objCmd = New ADODB.Command Set objCmd.ActiveConnection = CNN_Application 'pRequete : contient le nom de la requête, par exple : R_Export_Excel_Statistiques objCmd.CommandText = pRequete 'adCmdStoredProc : objet requête Access objCmd.CommandType = adCmdStoredProc ' on ajoute les paramètres : ' pDebut et pFin : les noms des paramètres, ' adDate : type des paramètres, ' les dates "en dur" : valeur à passer en paramètre (écrites en dur pour les tests) Set objParameter = objCmd.CreateParameter(pDebut, adDate, , , "28/12/2009") Call objCmd.Parameters.Append(objParameter) Set objParameter = objCmd.CreateParameter(pFin, adDate, , , "28/12/2010") Call objCmd.Parameters.Append(objParameter) ' Exécution de la requête et récupération du résultat Set rst = objCmd.Execute()
Par contre, après, je veux exporter ce résultat sous Excel. J'ai essayé avec deux méthodes :
où pFichierExcel est le nom complet du fichier à créer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, pRequete, pFichierExcel, True
L'erreur sortie est :
"Erreur de traitement 7874.
Impossible de trouver l'objet 'Nom_de_la_requête'."
Là, pas d'erreur, mais Access affiche deux petites InputBox avec un champ texte et, en intitulé, les noms des deux paramètres (pDebut et pFin). Autrement dit, avec .OutputTo, Access relance la requête (les paramètres entrés précédemment ne sont pas pris en compte) et redemande à l'utilisateur une saisie (suis-je clair ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2DoCmd.OutputTo acOutputStoredProcedure, pRequete, acFormatXLS, pFichierExcel, True
).
Donc en gros, quelqu'un sait-il comment exporter le résultat d'une requête paramétrée ? Ou peut-il m'expliquer pourquoi, avec .TransferSpreadsheet, ma pRequete n'est pas reconnue ?
Je suis à votre écoute !
Merci de m'avoir lu et merci d'avance à tous ceux qui prendront la peine de répondre !![]()
Partager