Am 14.03.2012 10:09, schrieb
off...@compuservice.at:
> ich habe Artikeldaten in einer ACCESS-Datenbank.
> Die Daten sollen in ein im Livecycle-Designer erstelltes PDF-Formular geschrieben werden. Zur Zeit verwende ich den Umweg über XML-Dateien:
Hallo Roman
Vielleicht hilft Dir der folgende (etwas abgespeckte) Ansatz weiter:
Private Function PrivSub_Datenkontrollblätter()
'setzt Acrobat-Vollversion voraus - Verweis auf acrobat.tlb + AcroRd32.dll
'Adobe-Objekte
Dim AppAcro As Object
Dim avDoc As New AcroAVDoc
Dim pdDoc As New AcroPDDoc
Dim formApp As Object
Dim acroForm As Object
Dim AcroField As AFORMAUTLib.Field
'Recordset für Datenquelle
Set rstAdressen = CurrentDb.OpenRecordset("DeinSelectString")
'Adobe instanzieren
Set AppAcro = CreateObject("AcroExch.App")
AppAcro.Show
Set avDoc = CreateObject("AcroExch.AVDoc")
If avDoc.Open(strPdfVorlage, vbNull) <> True Then Exit Function
Set pdDoc = avDoc.GetPDDoc
AppAcro.Show
Set formApp = CreateObject("AFormAut.App")
Set acroForm = formApp.Fields
Do Until rstAdressen.EOF
For Each AcroField In acroForm
With AcroField
If .Name =
"Institutsreport[0].Stammdaten[0].txt_InstNr[0]" Then
.Value = Nz(rstAdressen!InstNr)
ElseIf .Name =
"Institutsreport[0].Stammdaten[0].txt_FilNr[0]" Then
.Value = Nz(rstAdressen!FilNr)
'weitere
End If
End With
Next AcroField
strPdfDateiablage = DeinAblagepfad & strMitgliederNr & ".pdf"
If pdDoc.Save(PDSaveFull, strPdfDateiablage) = True Then
'obsolet
Else
MsgBox "Speicherung fehlgeschlagen"
End If
'Nächster Datensatz
rstAdressen.MoveNext
Loop
avDoc.Close (0)
fCloseApp ("AppAcro")
End Function
Viel Erfolg
René