Hallo zusammen,
Ich hatte schon 2020 eine Exceldatei mit Makro erstellt um insgesamt 5 Worddokumente (Serienbriefe mit Feldern) aufzurufen und aus einer weiteren Exfceldatei mit Daten zu befüllen.
2020 hatte das auch prima geklappt, jetzt (2023 nach Update unserer Software) habe ich Probleme...
Doc.MailMerge.OpenDataSource bewirkt bei mir folgends:
- erzeugt im übergeordneten Verzeichnes eine "Test tmp.xls" (nicht .xlsx, scheint eine leere komprimierte XML-Excel-Datei zu sein)
- findet die Datendatei "Daten.xlsx" nicht bzw. sucht im übergeordneten Verzeichnis
- erkennt mögliche Daten (den Excel-Reiter) nur wenn man bei Datenquelle "Tabelle" UND "Systemtabelle" aktiviert
- Der Serienbrief wird nicht ausgefüllt und das Makro bricht mit Fehler ab weil keine Datenquelle geöffnet werden konnte
2020 hieß der Jet-Teil im Connection-Befehl noch "Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLE".
Auch das Eintragen/Ersetzen von ", SubType:=wdMergeSubTypeWord2000" beim SQLStatment hatte nichts geholfen. Fehler blieben unverändert.
Kann mir jemand das Problem erklären bzw. lösen?
schon mal vielen Dank im Voraus für etwaige Hilfe
Schönen Gruß
Moonhowler
Ich hatte schon 2020 eine Exceldatei mit Makro erstellt um insgesamt 5 Worddokumente (Serienbriefe mit Feldern) aufzurufen und aus einer weiteren Exfceldatei mit Daten zu befüllen.
2020 hatte das auch prima geklappt, jetzt (2023 nach Update unserer Software) habe ich Probleme...
Doc.MailMerge.OpenDataSource bewirkt bei mir folgends:
- erzeugt im übergeordneten Verzeichnes eine "Test tmp.xls" (nicht .xlsx, scheint eine leere komprimierte XML-Excel-Datei zu sein)
- findet die Datendatei "Daten.xlsx" nicht bzw. sucht im übergeordneten Verzeichnis
- erkennt mögliche Daten (den Excel-Reiter) nur wenn man bei Datenquelle "Tabelle" UND "Systemtabelle" aktiviert
- Der Serienbrief wird nicht ausgefüllt und das Makro bricht mit Fehler ab weil keine Datenquelle geöffnet werden konnte
Visual Basic-Quellcode
- ...
- ordner = "E:\ZKM\Data\TEST\Test tmp"
- Datenbasis = "Daten.xlsx"
- VorlageZusatzVB = "Dokument.docx"
- Set WinWord = CreateObject("Word.Application")
- With WinWord
- .Visible = True
- Set WinDoc1 = .Documents.Open(Filename:=ordner & "\" & VorlageZusatzVB, ConfirmConversions:=True, ReadOnly:=False, AddToRecentFiles:=False, Visible:=IIf(DefineAction = "DEBUG", True, False), Revert:=False, XMLTransform:="")
- End With
- With WinDoc1.MailMerge
- .MainDocumentType = wdFormLetters
- .OpenDataSource Name:=ordner & "\" & Datenbasis, _
- ConfirmConversions:=True, _
- ReadOnly:=False, Revert:=False, _
- LinkToSource:=True, _
- AddToRecentFiles:=False, _
- Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=" & ordner & "\" & Datenbasis & ";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Dat", _
- SQLStatement:="SELECT * FROM `'Daten-Basis$'` WHERE `VBNR` IS NOT NULL", SQLStatement1:="", SubType:=wdMergeSubTypeAccess
- .DataSource.ActiveRecord = -4 'wdFirstRecord
- .Destination = 0 'wdSendToNewDocument
- .SuppressBlankLines = True
- End With
- ...
2020 hieß der Jet-Teil im Connection-Befehl noch "Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLE".
Auch das Eintragen/Ersetzen von ", SubType:=wdMergeSubTypeWord2000" beim SQLStatment hatte nichts geholfen. Fehler blieben unverändert.
Kann mir jemand das Problem erklären bzw. lösen?
schon mal vielen Dank im Voraus für etwaige Hilfe
Schönen Gruß
Moonhowler