Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2011, 23h21   #1
Futur Membre du Club
 
Femme myriam aslam
Étudiant
Inscription : avril 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Femme myriam aslam
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 106
Points : 18
Points : 18
Par défaut PDFcreator rennomer à l'impression

Bonjour, à tous j'ai un problèmes avec PdfCreator:
j'ai installer pdfcreator sur mon ordinateur, et lorsque je souhaite souhaite imprimer mon état j'aimerai le renommer automatiquement et non lui donner le nom de l'état imprimer.
Lorsque j'ai écris le module PDFcreator :
Code :
1
2
3
4
5
Public Sub SaveAsPDF( _
ByVal strReportName As String, _
Optional ByVal strWhere As String, _
Optional ByVal strPDFName As String, _
Optional ByVal strDirectory As String)
strPDFName me permet de renommer le fichier en impression!
Cependant lorsque je fais appel à ce module dans une procédure:
Code :
SaveAsPDF "nom état","conditions","le nouveau nom","chemin"
Cependant lorsque je met le "nouveau nom" et lance l'impression l'imprimante ne me modifie le nom.
Pouvez vous m'aider !!!
myriame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 10h55   #2
Membre Expert
 
Homme Frédéric
Développeur informatique
Inscription : juin 2009
Messages : 944
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2009
Messages : 944
Points : 1 249
Points : 1 249
Bonjour
Normalement tu dois avoir dans ta fonction SaveAsPDF une ligne de ce type
Code :
pdfc.cOption("AutosaveFilename") =IIf(strPDFName = "", strReportName, strPDFName)
où pdfc a été déclaré et instancié
Code :
1
2
Dim pdfc As PDFCreator.clsPDFCreator.
Set pdfc = New clsPDFCreator
Est-ce le cas ?
__________________
Frédéric
Développeur d'Applications Access
fgiambelluco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h00   #3
Futur Membre du Club
 
Femme myriam aslam
Étudiant
Inscription : avril 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Femme myriam aslam
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 106
Points : 18
Points : 18
oui exactement !!
myriame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h19   #4
Membre Expert
 
Homme Frédéric
Développeur informatique
Inscription : juin 2009
Messages : 944
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2009
Messages : 944
Points : 1 249
Points : 1 249
Bonjour

Pourrais-tu poster la totalité de ton code SaveAsPDF, que l'on puisse déterminer d'où vient le problème ?
__________________
Frédéric
Développeur d'Applications Access
fgiambelluco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 16h45   #5
Futur Membre du Club
 
Femme myriam aslam
Étudiant
Inscription : avril 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Femme myriam aslam
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 106
Points : 18
Points : 18
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Option Compare Database
Option Explicit
'api windows pour faire une temporisation en millisecondes
Private Declare Sub sleep Lib "kernel32" (ByVal dwmilliseconds As Long)
'constantes pour les temporisation
Private Const maxTime = 10 'en secondes
Private Const sleepTime = 250 ' en millisecondes
'---
'IMPRESSION D'UN ETAT EN PDF
'---
Public Sub SaveAsPDF( _
ByVal strReportName As String, _
Optional ByVal strWhere As String, _
Optional ByVal strPDFName As String, _
Optional ByVal strDirectory As String)
'variables
Dim pdfc As PDFCreator.clsPDFCreator
Dim DefaultPrinter As String
Dim c As Long
Dim OutputFilename As String
'instancier un nouvel objet PDFCreator
Set pdfc = New clsPDFCreator
'paramétrer l'objet PDFCreator
With pdfc
    .cStart "/NoprocessingAtStartup"
    .cOption("UseAutosave") = 1
    .cOption("UseAutosaveDirectory") = 1
'chemin de destination
If strDirectory = "" Then
strDirectory = "monchemin"
End If
    .cOption("AutosaveDirectory") = strDirectory
'nom du fichier PDF à générer
    .cOption("AutosaveFilename") = _
    IIf(strPDFName = "", strReportName, strPDFName)
'format de sauvegarde (0=PDF)
.cOption("AutosaveFormat") = 0
'Mémoriser l'imprimante par défaut et définir PDFCreator à la place
DefaultPrinter = .cDefaultPrinter
.cDefaultPrinter = "PDFCreator"
.cClearCache
DoCmd.OpenReport strReportName, acViewPreview
With Reports(strReportName).Printer
.ColorMode = acPRCMColor
End With
DoCmd.PrintOut
DoCmd.Close acReport, strReportName, acSaveYes
'Imprimer l'Etat
DoCmd.OpenReport strReportName, acViewNormal, , strWhere
.cPrinterStop = False
End With
'temporisation
c = 0
Do While (pdfc.cOutputFilename = "") And (c < (maxTime * 1000 / sleepTime))
c = c + 1
Loop
'Nom du fichier PDF produit
OutputFilename = pdfc.cOutputFilename
'Réinstaller l'imprimante d'origine
With pdfc
.cDefaultPrinter = DefaultPrinter
.cClose
End With
'vérifier si le fichier a été créé
If OutputFilename = strPDFName Then
MsgBox "Création du fichier PDF réalisé." & vbCrLf & vbCrLf
End If
 
End Sub
myriame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 15h48   #6
Membre Expert
 
Homme Frédéric
Développeur informatique
Inscription : juin 2009
Messages : 944
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2009
Messages : 944
Points : 1 249
Points : 1 249
Bonjour
Désolé, il me semblait avoir répondu
Dans le code j'ai désactivé la partie aperçu (intéret ?) et j'ai rajouté des Sleep pour donner plus de temps à PDFCreator)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
With pdfc
    .cStart "/NoprocessingAtStartup"
    .cOption("UseAutosave") = 1
    .cOption("UseAutosaveDirectory") = 1
'chemin de destination
    If strDirectory = "" Then
        strDirectory = "monchemin"
    End If
    .cOption("AutosaveDirectory") = strDirectory
    'nom du fichier PDF à générer
    .cOption("AutosaveFilename") = _
    IIf(strPDFName = "", strReportName, strPDFName)
    'format de sauvegarde (0=PDF)
    .cOption("AutosaveFormat") = 0
    'Mémoriser l'imprimante par défaut et définir PDFCreator à la place
    DefaultPrinter = .cDefaultPrinter
    .cDefaultPrinter = "PDFCreator"
    .cClearCache
'    DoCmd.OpenReport strReportName, acViewPreview
'    With Reports(strReportName).Printer
'    .ColorMode = acPRCMColor
'    End With
'    DoCmd.PrintOut
'    DoCmd.Close acReport, strReportName, acSaveYes
'    'Imprimer l'Etat
    DoCmd.OpenReport strReportName, acViewNormal, , strWhere
    .cPrinterStop = False
End With
'temporisation
c = 0
Do While (pdfc.cOutputFilename = "") And (c < (maxTime * 1000 / sleepTime))
    c = c + 1
    Sleep 200
Loop
'Nom du fichier PDF produit
OutputFilename = pdfc.cOutputFilename
'Réinstaller l'imprimante d'origine
With pdfc
    .cDefaultPrinter = DefaultPrinter
    Sleep 400
    .cClose
End With
  ' Attendre jusqu'à ce que PDFCreator soit supprimé de la mémoire
  Sleep 2000
 
'vérifier si le fichier a été créé
If OutputFilename = strPDFName Then
    Msg
__________________
Frédéric
Développeur d'Applications Access
fgiambelluco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 19h47   #7
Futur Membre du Club
 
Femme myriam aslam
Étudiant
Inscription : avril 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Femme myriam aslam
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 106
Points : 18
Points : 18
maintenant que j'ai mis les sleep plus moyen d'imprimer! ACCESS me marque:
Erreur d'execution '453'
Point d'entrée sleep d'une DLL introuvable dans kermel 32

c'est quoi cette erreur ???
myriame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 08h28   #8
Membre Expert
 
Homme Frédéric
Développeur informatique
Inscription : juin 2009
Messages : 944
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2009
Messages : 944
Points : 1 249
Points : 1 249
Bonjour
Autant pour moi, la fonction utilise une DLL qu'il faut charger.
Rajoute les lignes suivantes au début de ton module s'il est général (pas de un module de formulaire), sinon créer un nouveau module.
Code :
1
2
' API Windows pour faire une temporisation en millisecondes
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
__________________
Frédéric
Développeur d'Applications Access
fgiambelluco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 13h32   #9
Futur Membre du Club
 
Femme myriam aslam
Étudiant
Inscription : avril 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Femme myriam aslam
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 106
Points : 18
Points : 18
oui mais je l'ai déjà mise, de plus j'ai bien créée un module a part ! :s
myriame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 18h38   #10
Futur Membre du Club
 
Femme myriam aslam
Étudiant
Inscription : avril 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Femme myriam aslam
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 106
Points : 18
Points : 18
eh bien après m'être acharnée dessus j'ai trouvé, une erreur toute bête apparemment!
merci pour ton aide
myriame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 20h07   #11
Futur Membre du Club
 
Femme myriam aslam
Étudiant
Inscription : avril 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Femme myriam aslam
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 106
Points : 18
Points : 18
mauvaise alerte sa fonctionne une fois sur 2, c'est-à-dire pour certaine impression sa va fonctionner (renommer l'état lors de l'impression)et pour d'autre non !
myriame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 21h50   #12
Expert Confirmé
 
Avatar de Godzestla
 
Homme
Chercheur de bonheur
Inscription : août 2007
Messages : 2 255
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de bonheur
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 2 255
Points : 2 979
Points : 2 979
Bonsoir,

une solution alternative serait de renommer le fichier .PDF généré en fin de traitement.

__________________
(\ _ /) Cordialement G@dz
(='.'=)

(")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h42.


 
 
 
 
Partenaires

Hébergement Web