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 :

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()
Là, la requête s'effectue parfaitement, je n'ai aucun pb

Par contre, après, je veux exporter ce résultat sous Excel. J'ai essayé avec deux méthodes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, pRequete, pFichierExcel, True
où pFichierExcel est le nom complet du fichier à créer.
L'erreur sortie est :
"Erreur de traitement 7874.
Impossible de trouver l'objet 'Nom_de_la_requête'."


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
DoCmd.OutputTo acOutputStoredProcedure, pRequete, acFormatXLS, pFichierExcel, True
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 ? ).

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 !