Hallo,
Ik ben bezig met access programmeren.
ik wil labels generen naar een pdf file. maar in een pdf file kan ik de margins niet wijzigen. nu wilde ik het via een word file doen.
ik kan wel het normal.dot file wijzigen met daarin de juiste margins, maar dan geld dat voor alle word document.
Ik heb nu code waarmee ik een nieuwe word document aanmaken in VBA Acccess:
deze code maakt het word bestand aan en daarin staan dan de margins wel goed, omdat ik dat verandert heb in normal.dot
nu heb ik ook al code om dat pdf file te generen:
deze code maakt word file aan en genereert daarvan het pdf file maar dan staan de margins niet goed en daardoor komen de labels er niet goed op te staan.
nu was mijn vraag of het ook mogelijk is om op zo'n manier ook de marginssettings mee te geven.
of dat het misschien mogelijk is om een template aan te maken dat alleen voor dat bestand gebruikt wordt.
Ik ben bezig met access programmeren.
ik wil labels generen naar een pdf file. maar in een pdf file kan ik de margins niet wijzigen. nu wilde ik het via een word file doen.
ik kan wel het normal.dot file wijzigen met daarin de juiste margins, maar dan geld dat voor alle word document.
Ik heb nu code waarmee ik een nieuwe word document aanmaken in VBA Acccess:
Code:
Dim word 'the Word application
Dim doc 'the Word document
Dim selection 'text selection
Dim fs 'the File system
Dim work_dir 'the directory for storing files
Dim folder, folders 'used when creating the new file
Dim i, j 'indexes for arrays
Dim h_Filepath As String
work_dir = "C:\Users\Piper\Desktop\"
h_filpath = "work_dir" & "labels.doc"
Set word = CreateObject("word.application")
Set fs = CreateObject("Scripting.FileSystemObject")
Set doc = word.Documents.Add
Set selection = word.selection
selection.typetext "An Automated Word Report"
selection.typeparagraph
If Not fs.folderexists(work_dir) Then
folders = Split(work_dir, "\")
For i = 0 To UBound(folders) - 1
folder = ""
For j = 0 To i
folder = folder & folders(j) & "\"
Next
If Not fs.folderexists(folder) Then
fs.createfolder folder
End If
Next
End If
doc.SaveAs (work_dir & "labels.doc")
word.Visible = True
Set fs = Nothing
Set word = Nothing
deze code maakt het word bestand aan en daarin staan dan de margins wel goed, omdat ik dat verandert heb in normal.dot
nu heb ik ook al code om dat pdf file te generen:
Code:
Dim h_qdfnew As DAO.QueryDef
Dim h_strSQL As String
Dim ChosenName As String
Dim h_stdocname As String
Dim h_Filepath As String
Dim h_Queryname As String
Dim h_qdf As DAO.QueryDef
Dim h_amountlabels As String
Dim h_table As String
Dim h_TemplateFile As String
Dim h_LabelFile As String
h_Filepath = "C:\Users\Piper\Desktop\labels.doc"
h_TemplateFile = "C:\Users\Piper\AppData\Roaming\Microsoft\Templates\Normal.dot"
h_LabelFile = "C:\Users\Piper\Desktop\labels.pdf"
ChosenName = "ilse van broekhoven"
h_strSQL = "SELECT * FROM Generate_labels WHERE ChangeUserName = '" & ChosenName & "';"
h_Queryname = "Query_labels"
h_stdocname = "Adresetiketten Generate_labels_Query"
h_table = "Generate_labels"
For Each h_qdf In CurrentDb.QueryDefs
If h_qdf.Name = h_Queryname Then
CurrentDb.QueryDefs.Delete (h_Queryname)
End If
Next h_qdf
Set h_qdfnew = CurrentDb.CreateQueryDef(h_Queryname, h_strSQL)
h_amountlabels = DCount("ChangeUserName", h_table, "ChangeUserName = '" & ChosenName & "'")
If h_amountlabels < 1 Then
MsgBox "No labels saved for current user" & vbNewLine & "Please save a label first"
Else
With DoCmd
MsgBox "Don't forget to press the CLEAR LABELS button when you have printed the labels!"
.OutputTo acOutputReport, h_stdocname, acFormatRTF, h_Filepath, False, h_TemplateFile, , acExportQualityScreen
.OutputTo acOutputReport, h_stdocname, acFormatPDF, h_LabelFile, True, , , acExportQualityScreen
End With
End If
deze code maakt word file aan en genereert daarvan het pdf file maar dan staan de margins niet goed en daardoor komen de labels er niet goed op te staan.
nu was mijn vraag of het ook mogelijk is om op zo'n manier ook de marginssettings mee te geven.
of dat het misschien mogelijk is om een template aan te maken dat alleen voor dat bestand gebruikt wordt.