hallo
ich habe frage folgende.
ich habe ein writer document mit merge field aus tabelle. ist moeglich die fields via macro zu fuellen.
bitte entschuldigen mein schlechtes deutsch. ich lernen erst seit 2 Jahre
in liebe
vladi
merge field
Moderator: Moderatoren
-
- Beiträge: 4
- Registriert: Di, 02.04.2013 10:02
Re: merge field
ich hab mich in letzter zeit auch mit dem prolblem von mailmerge befasst, hier mal ein code um die felder zu füllen
da hätt ich eigentlich auch noch ne frage
der obige code schreibt den inhalt bzw den fertigen serienbrief in eine datei. ich hab aber jedoch vor den fertigen brief dann separat zu öffnen.
die ausgabedatei heißt bei mir dann serienbrief0.odt, serienbrief1.odt usw....
ich hab zwar das makro am ende hier um den serienbrief0.odt zu öffnen, aber da es ja automatidsiert sein soll habe ich an eine andere lösung gedacht.
so könnte ich den serienbrief1.odt nicht mehr öffnnen.
das führt dazu, dass ich in dem ordner immer nur serienbrief0.odt hätte und ich den alten immer wieder lösche.
problem hier ist auch, wenn die serienbrief0.odt nicht vorhanden ist, kommt ein fehler im makro, dass er die datei nciht findet. wie kann ich das mit einer if bedingung abfangen?
eine möglichkeit wäre halt den serienbrief0.odt via makro zu löschen
und zwar den fertigen serienbrief nicht in eine datei umleiten sondern ein ein neues leeres document und das direkt anzuzeigen. wäre das iwie realisierbar?
Code: Alles auswählen
Sub merge
Dim mm as Object
mm = CreateUnoService("com.sun.star.text.MailMerge")
With mm
.DocumentURL = "file:///C:/document.odt"
.DataSourceName = "datenbankname" 'name der Datenbank
.CommandType = 0
.Command = "tabellenname" 'Name der Tabelle, nicht Datenbankname
.OutputType = 2
com.sun.star.text.MailMergeType.FILE
.OutputUrl = "file:///C:/testordner/" '
.FileNamePrefix = "serienbrief"
.SaveAsSingleFile=True
.execute(Array())
.dispose()
'msgbox "Serienbrief erstellt"
End With
'end sub
der obige code schreibt den inhalt bzw den fertigen serienbrief in eine datei. ich hab aber jedoch vor den fertigen brief dann separat zu öffnen.
die ausgabedatei heißt bei mir dann serienbrief0.odt, serienbrief1.odt usw....
ich hab zwar das makro am ende hier um den serienbrief0.odt zu öffnen, aber da es ja automatidsiert sein soll habe ich an eine andere lösung gedacht.
so könnte ich den serienbrief1.odt nicht mehr öffnnen.
Code: Alles auswählen
Sub killAltenBrief
Kill "C:\serienbrief0.odt"
end sub
problem hier ist auch, wenn die serienbrief0.odt nicht vorhanden ist, kommt ein fehler im makro, dass er die datei nciht findet. wie kann ich das mit einer if bedingung abfangen?
eine möglichkeit wäre halt den serienbrief0.odt via makro zu löschen
und zwar den fertigen serienbrief nicht in eine datei umleiten sondern ein ein neues leeres document und das direkt anzuzeigen. wäre das iwie realisierbar?
Re: merge field
Moin,
Gruß R
das geht doch nicht so schwer:michaelf2k hat geschrieben:wenn die serienbrief0.odt nicht vorhanden ist, kommt ein fehler im makro, dass er die datei nciht findet. wie kann ich das mit einer if bedingung abfangen?
Code: Alles auswählen
Sub killAltenBrief
sUrl = "C:\serienbrief0.odt"
If FileExists(sUrl) Then
Kill sUrl
else
MsgBox "Datei nicht gefunden",48,"Fehler"
End If
end sub
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
-
- Beiträge: 4
- Registriert: Di, 02.04.2013 10:02
Re: merge field
wie müsste ich denn das macro umbauen damit ich kein output in eine datei bekomme sondern in ein neues leeres dokument bekomme (im gleichen ordner)?
und noch ne frage, ich habe den code hier wo ich die datei mit datum und uhrzeit speicher.
wie kann ich diese datei dann per makro öffnen?
wie müsste ich den code ändern im letzten abschnitt?
und noch ne frage, ich habe den code hier wo ich die datei mit datum und uhrzeit speicher.
wie kann ich diese datei dann per makro öffnen?
Code: Alles auswählen
Function GetDateAsString as string
Dim sdatum as String
Dim szeit as String
Dim snew1 as String
Dim snew2 as String
GlobalScope.BasicLibraries.LoadLibrary("Tools")
sDatum=date
sNew1=DeleteStr(sdatum,".")
szeit=time
sNew2=DeleteStr(szeit,":")
GetDateAsString="_vom"+sNew1+"_Uhrzeit"+sNew2
end Function
Code: Alles auswählen
com.sun.star.text.MailMergeType.FILE
.OutputUrl = "file:///C:/"
.FileNamePrefix = "serienbrief"+erstellungsdatum 'hier speicher ich das dokument mit dem datum und uhrzeit
.SaveAsSingleFile=True
.execute(Array())
.dispose()
msgbox "Serienbrief erstellt"
Code: Alles auswählen
Dim sURL$
Dim oSvc as object
oSvc = createUnoService("com.sun.star.system.SystemShellExecute")
sURL = "file:////C:/serienbrief.odt" 'hier möchte ich das gespeicherte dokument mit datum und uhrzeit öffnen
oSvc.execute(sURL, "", 0)