Hi,
ich hänge fest. Ich möchte gern Datensätze aus einer Tabelle aus Access an Word für einen Seriendruck übergeben. Bei "lokalen" Tabellen alles dufte, nicht aber bei via ODBC verknüpften Tabellen. Ich bekomme es einfach nicht hin.
Code-Schnippsel:
strDatabase = db.Name
strConnection = "DNS:" & p_ODBCVerbZV
objMerge.MainDocumentType = wdFormLetters
objMerge.OpenDataSource Name:=strDatabase, LinkToSource:=True, Connection:=strConnection, SQLStatement:="SELECT * FROM [Kundenliste]", SubType:=wdMergeSubTypeAccess
Meine ODBC Verbindungszeichenfolge sieht wie folgt aus (in Var p_ODBCVerbZV gespeichert):
"ODBC;DRIVER={SQL Server Native Client 11.0};SERVER=192.168.200.24,49170;UID=*****;PWD=*******;APP=SSMA;DATABASE=sqlDatabase;"
Nur weiß ich nicht, wie ich diese in die Merge Verbindung integrieren soll... "strConnection = "DNS:" & p_ODBCVerbZV" funktioniert auf jeden Fall nicht
db = current.db as dao.database
Mit lokalen Tabellen klappt die Connection mit strConnection = "DNS=MS Access Database;DBQ=" & strDatabase & ";DriverId=25;FIL=MS Access;"
Kennt sich jemand damit aus? Alternativ könnte Word auch direkt über den SQL Server gespeist werden, aber auch hierfür habe ich keine Ahnung wie.
DSN != DNS !!
Hallo Markus, besten Dank. Ja da habe ich mich vertippt, das Problem wird dadurch aber nicht gelöst...
Ich bekomme auch den Laufzeitfehler 5922: Sie haben einen Ausdruck eingegeben, der einen ungültigen Verweis auf die Caption-Eigenschaft enthält.
Fehler tritt nur bei ODBC Tabellen auf, nicht bei lokalen. Auf dem SQL Server steht vor den Tabellen noch dbo.
Wenn ich das aber ergänze also auf z.B. [dbo.TabellenName] erhalte ich die Fehlermeldung dass ich einen Falschen Verweis auf die Hauptobjekteigenschaft gesetzt habe...
Hast Du mal in Word versucht, manuell die Geschichte zum Laufen zu bringen.
PS: Wenn die Server-Tabelle(n) im Access-Frontend verknüpft vorliegen, sollte zumindest eine Abfrage darauf als Quelle für den Serienbrief zum Erfolg führen.
Ich nehme an das es daran liegt, das die Tabellen erst während der Laufzeit verknüpft werden, wobei die Verknüpfung zum Zeitpunkt des aufrufens des Serienbriefes bereits erfolgt ist.... Gibt es dann dennoch einen Workaround oder soll ich die Daten dann gleich vom SQL Server ziehen?
Hallo,
als Alternativlösung würde ich vorschlagen, eine CSV-Datei der Daten zu generieren und diese als Steuerdatei für den Serienbrief zu nehmen. Mailmerge macht (hat) mitunter Probleme beim direkten Zugriff auf Tabellen , bzw. Abfragen.
Hallo Franz, das scheint wirklich eine gute Alternative zu sein. Ich schau mal was ich bei Google dazu finde, wie ich die csv via VBA erstellen und in Word injizieren kann.