DoCmd.OpenReport : différence de fonctionnement XP/Seven ?

cego - 3 avril 2013 à 13:35
 cego - 16 mai 2013 à 11:32
Bonjour

j'ai un soucis sur une application développée sous XP/ACCESS 2007 que je dois migrer sous Seven/Office2010. On a aussi besoin de Acrobat Distiller installé avec Adobe Acrobat.

Une fonction doit créer une report Pdf et le stocker dans un répertoire particulier. Pour cela, on utilise la commande DoCmd.OpenReport "nom du report", <filtre>, <condition>.

Problématique
Sous XP, la génération et la sauvegarde était transparentes pour l'utilisateur (utilisation de la base de registre pour stocker les informations utilisées par openReport).
Sous Seven il en va autrement : le chemin et le nom du fichier pour la sauvegarde ne sont pas trouvés dans la base de registre (pourtant ils y sont) et une fenêtre 'Save As' s'ouvre.

Je n'ai trouvé nul part sur le net une explication à ce changement de comportement, peut être quelqu'un a une explication ici (je l'espère )



Fonctionnement de la fonction :
Nous stockons les informations suivantes dans la base de registre juste avant l'appel à openReport : génération en pdf, répertoire de stockage du pdf et chemin complet/nom de fichier pour le fichier pdf

Le code est le suivant

------------------------------------------------------------------------
' Change the default printer to Adobe PDF
If Not bSetRegValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Windows", "Device", "Adobe PDF") Then
GoTo Err_handler
End If

' Change the Folder where the PDF file will get Saved to. This is set in the
' AdobePDFOutputFolder key in the Registry
If Not bSetRegValue(HKEY_CURRENT_USER, "Software\ADOBE\Acrobat Distiller\10.0\AdobePDFOutputFolder", sDefault, sOutputFolder) Then
GoTo Err_handler
End If


' Create the Registry Key where Acrobat looks for a file name
CreateNewRegistryKey HKEY_CURRENT_USER, _
"Software\Adobe\Acrobat Distiller\PrinterJobControl"

' Put the output filename where Acrobat could find it
bSetRegValue HKEY_CURRENT_USER, _
"Software\Adobe\Acrobat Distiller\PrinterJobControl", _
Find_Exe_Name(CurrentDb.Name, CurrentDb.Name), _
sOutputFolder & "\" & sPDFName


On Error GoTo Err_handler

DoCmd.OpenReport sAccessRptName, , sfilter, sCondition 'Run the report

-----------------------------------------------------------------------

cordialement

Christian

1 réponse

Salut à tous

j'ai obtenu une réponse qui corrige mon problème.
Pour info, il faut maintenant utiliser la commande suivante (directement si on n'a pas besoin de faire de filtre, apres un openReport sinon) :
DoCmd.OutputTo acOutputReport, strReportName, acFormatPDF, strFilename, blnOpenReader


Cégo
0
Rejoignez-nous