Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehler 9105 - Zeichenfolge länger 255 Zeichen

Fehler 9105 - Zeichenfolge länger 255 Zeichen
22.09.2015 11:34:46
Chris
Hallo,
aus dem Forum habe ich mir den Codeschnipsel von fcs gemoppst (https://www.herber.de/forum/ _ archiv/1032to1036/1032638_Aus_Excelmakro_Word_Serienbrief_starten.html), allerdings meckert VBA, dass die Zeichenfolge länger als 255 Zeichen ist. Dazu ist folgender Code markiert - wollte jetzt nicht in ein Forenbeitrag von 2008 posten:

.OpenDataSource Name:="C:\Temp\liste.xlsm", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, _
Revert:=False, Format:=wdOpenFormatAuto, _
Connection:="Provider=Microsoft.Jet.OLEDB.4.0;Password="""";" _
& "User ID=Admin;" _
& "Data Source=C:\Temp\liste.xlsm;" _
& "Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";" _
& "Jet OLEDB:System database="""";" & "Jet OLEDB:Registry Path="""";" _
& "Jet OLEDB:Database Password="""";" _
& "Jet OLEDB:Engine ", _
SQLStatement:="SELECT * FROM `Abbildung$`", SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess

Jetzt habe ich ein bisschen nach dem Fehler gegoogled, finde aber nur Hinweise von Stringvariablen, deren Inhalt eben größer als 255 Zeichen ist. Hier arbeite ich allerdings ohne Strings, daher verstehe ich diesen Fehler einfach nicht. Hat hier jemand vielleicht eine Idee? Ich verzweifle langsam an dem nervigen Seriendruck mit Excel 2013 :)

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Text = Sting
22.09.2015 12:33:43
Tino
Hallo,
evtl. hilft es den Text für die Connection zuvor in einem String abzulegen.
Kannst mal so testen, habe ich jetzt aber nicht gemacht!
Dim sConString$
sConString = "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";" _
& "User ID=Admin;" _
& "Data Source=C:\Temp\liste.xlsm;" _
& "Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";" _
& "Jet OLEDB:System database="""";" & "Jet OLEDB:Registry Path="""";" _
& "Jet OLEDB:Database Password="""";" _
& "Jet OLEDB:Engine "
.OpenDataSource Name:="C:\Temp\liste.xlsm", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, _
Revert:=False, Format:=wdOpenFormatAuto, _
Connection:=sConString, _
SQLStatement:="SELECT * FROM `Abbildung$`", SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess
'...
Gruß Tino

Anzeige
AW: Text = Sting
22.09.2015 12:55:49
Chris
Hi,
jetzt bekomme ich nur noch, dass der Index außerhalb des gültigen Bereichs liegt. Aber danke schonmal für deinen Tipp

lade eine Beispieldatei hoch oT.
23.09.2015 09:12:39
Tino

lade eine Beispieldatei hoch oT.
23.09.2015 09:47:59
Tino

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

Anzeige
AW: Text = Sting
23.09.2015 13:49:16
Chris
Ah super - danke fcs,
jetzt wollte ich per Makrorecorder den Provider überprüfen, gehe auf "Empfänger auswählen", wähle die xlsm Datei aus und bekomme als Fehlermeldung: "Fehler: Die externe Tabelle hat nicht das erwartete Format.." Geht unter Office 2013 xlsm als Datenliste nicht mehr oder liegt der Ursprung des Fehlers vllt in der Exceldatei?

AW: Text = Sting
23.09.2015 17:04:53
fcs
Hallo Chris,
ich hab ja unter Excel 2010 getestet. Da funktioniert es auch mit einer Excel-Datei mit Makros (xlsm)
Kannst du die xlsm-Datei unter Excel ohne Probleme öffnen?
Die Excel-Datei darf nicht geöffnet sein, wenn du von Word die Datenquelle öffnest. Das macht Kummer, allerdings sollte die Fehlermeldung anders sein.
Gruß
Franz

Anzeige
AW: Text = Sting
25.09.2015 10:12:43
Chris
Die Datei funktioniert in Excel ohne Probleme. Habe mir das jetzt nochmal angeguckt, bekomme aber, wenn ich deine Idee mit den Strings umsetze, immer noch hier bei deisem Schritt die Fehlermeldung, dass der Zeichensatz zu lang ist.
.OpenDataSource Name:=xlFile, _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, _
Revert:=False, Format:=wdOpenFormatAuto, _
Connection:=strCon, _
SQLStatement:="SELECT * FROM `Abbildung$`", SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess

AW: Text = Sting
25.09.2015 16:18:11
Chris
jetzt hat es funktioniert. Allerdings bekomme ich beim ersten Ausführen, dass die Remote Verbindung nicht vorhanden sei. Gehe ich auf "Beenden" und führe das Makro nochmal aus, funktioniert alles ohne Probleme.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige