Bonjour,
Je souhaite créer un PDF avec PDFCreator à l'aide de VB.
Dans ce PDF je souhaiterai écrire des variables que je récupère soit directement de Access, soit d'un .txt (file.txt ).
Pour l'instant j'ai ce code (voir ci-dessous):
Mon problème viens de cette ligne là: DoCmd.OpenReport (sReportName).
J'ai une erreur.
Puis-je passer en paramètre un fichier .txt ou des variables? ou faut il utiliser d'autre fonction?
Merci par avance!
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
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
70
71
72
73 Dim pdfjob As PDFCreator.clsPDFCreator Dim sPDFName As String Dim sPDFPath As String Dim sPrinterName As String Dim sReportName As String Dim lPrinters As Long Dim lPrinterCurrent As Long Dim lPrinterPDF As Long Dim prtDefault As Printer '/// Change the report and output file name here! /// sReportName = "file.txt" sPDFName = "test.pdf" sPDFPath = "c:\" 'Resolve index number of printers to allow changing and preserving sPrinterName = Application.Printer.DeviceName On Error Resume Next For lPrinters = 0 To Application.Printers.Count Set Application.Printer = Application.Printers(lPrinters) Set prtDefault = Application.Printer Select Case prtDefault.DeviceName Case Is = sPrinterName lPrinterCurrent = lPrinters Case Is = "PDFCreator" lPrinterPDF = lPrinters Case Else 'do nothing End Select Next lPrinters On Error GoTo 0 'Change the default printer Set Application.Printer = Application.Printers(lPrinterPDF) Set prtDefault = Application.Printer 'Start PFF Creator Set pdfjob = New PDFCreator.clsPDFCreator With pdfjob If .cStart("/NoProcessingAtStartup") = False Then MsgBox "Can't initialize PDFCreator.", vbCritical + _ vbOKOnly, "PrtPDFCreator" Exit Sub End If .cOption("UseAutosave") = 1 .cOption("UseAutosaveDirectory") = 1 .cOption("AutosaveDirectory") = sPDFPath .cOption("AutosaveFilename") = sPDFName .cOption("AutosaveFormat") = 0 ' 0 = PDF .cClearCache End With 'Print the document to PDF DoCmd.OpenReport (sReportName) addDocument file.txt 'Wait until the print job has entered the print queue Do Until pdfjob.cCountOfPrintjobs = 1 DoEvents Loop pdfjob.cPrinterStop = False 'Wait until PDF creator is finished then release the objects Do Until pdfjob.cCountOfPrintjobs = 0 DoEvents Loop pdfjob.cClose 'Reset the (original) default printer and release PDF Creator Set Application.Printer = Application.Printers(lPrinterCurrent) Set pdfjob = Nothing
Partager