ich hab mich in letzter zeit auch mit dem prolblem von mailmerge befasst, hier mal ein code um die felder zu füllen
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
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?
ich hab mich in letzter zeit auch mit dem prolblem von mailmerge befasst, hier mal ein code um die felder zu füllen
[code]
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
[/code]
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.
[code]
Sub killAltenBrief
Kill "C:\serienbrief0.odt"
end sub[/code]
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?