AW: Text = Sting
23.09.2015 12:47:17
fcs
Hallo Chris,
ich hab mal unter Word ein wenig getestet.
der Connection-Text darf tatsächlich unter VBA nur 255 Zeichnen lang sein.
Die Gesamtlänge des Connection-Strings ist aber viel länger, wird aber einfach vom Recorder abgeschnitten. Scheinbar sind die Parameter, die über Bord fallen nicht so wichtig, da es sich um die Standard-Werte handelt. Da auch der Dateiname Teil des Connection-Strings ist, sollte der Pfad und Dateiname nicht zu viele Zeichen enthalten.
Wichtig ist, dass du den Provider noch überprüfst, der kann mit Office/Windowsversion sich ändern.
Zeichne das Erstellen Serienbrief.Datenverbindung mit dem Makrorekorder auf, um den korrekten Wert zu erhalten oder benutze mein Analyse-Makro unter Word.
Gruß
Franz
'Erstelt unter Word/Excel 2010 / Windows 7
Sub Vorbereiten_Serienbrief_Word()
' Makro1 Makro
Dim xlFile As String, strCon As String
Dim wdDoc As Word.Document
xlFile = "D:\Test\liste.xlsm"
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;" _
& "User ID=Admin;" _
& "Data Source=" & xlFile & ";Mode=Read;" _
& "Extended Properties=""HDR=YES;IMEX=1;"";" _
& "Jet OLEDB:System database="""";" _
& "Jet OLEDB:Registry Path="""";" _
& "Jet OLEDB:Engine Type=37;" _
'Connection-Parameter Teil 2
strCon = strCon ' & "Jet OLEDB:Database Locking Mode=0;" _
& "Jet OLEDB:Global Partial Bulk Ops=2;" _
& "Jet OLEDB:Global Bulk Transactions=1;" _
& "Jet OLEDB:New Database Password="";" _
& "Jet OLEDB:Create System Database=False;" _
& "Jet OLEDB:Encrypt Database=False;" _
& "Jet OLEDB:Don't Copy Locale on Compact=False;" _
& "Jet OLEDB:Compact Without Replica Repair=False;" _
& "Jet OLEDB:SFP=False;" _
& "Jet OLEDB:Support Complex Data=False;" _
& "Jet OLEDB:Bypass UserInfo Validation=False"
Set wdDoc = Word.ActiveDocument
wdDoc.MailMerge.MainDocumentType = wdFormLetters
With wdDoc.MailMerge
.OpenDataSource Name:=xlFile, _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, _
Connection:=strCon, _
SQLStatement:="SELECT * FROM `Abbildung$`", SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess
End With
End Sub
'Test-Makro unter Word
Sub Analyse_MailMergeDataSource()
Dim objObject As Word.MailMergeDataSource
Dim wdDoc As Document
Dim strCon As String
Set wdDoc = ActiveDocument
Set objObject = wdDoc.MailMerge.DataSource
With objObject
strCon = .ConnectString
Debug.Print strCon
End With
End Sub