ACC2010, VBA, Serinebriefbeispiel. Objektvariable oder With-Blockvariable nicht festgelegt
Verweis eingebunden und Variable deklariert. MS-Access meint aber: nicht festgelegt
Ich habe zur Nutzung der Serienbrieffunktion von MS-Word ein Beispiel aus dem I-Net nutzen wollen:
(
Google:
Autor/Einsender: Angie
Datum: '17.03.2005
Public Function CreateAndPrintDoc(ByRef sMsg As String) As Boolean .........
)
Habe bei mir in Verweise eingetragen: _
Microsoft Word 14.0 Object Library
Dann in einem Modul in einer Prozedur:
Dim strFileName As String
Dim objWDDoc As Word.Document
Dim objWDApp As Word.Application
strFileName = "N:\Vorlagen\Erklär.doc"
Set objWDDoc = objWDApp.Documents.Open(FileName:=strFileName)
Das Dokument liegt exakt an dem bezeichneten Ort, der Fehler kommt in der SET-Zeile. Warum meint Access, dass <objWDDoc> nicht festgelegt ist, wenn ich es doch als Word.Document
deklariert habe ?
Bitte keine Hinweise auf Donkarl oder andere Internetveröffentlichungen zu Serienbriefen. Diese sind entweder so komplex, daß ich sie nicht kapiere (wenn beim Kompilieren Fehlermeldungen kommen - und das war bei jedem Beispiel der Fall -) oder lösen mein Problem nicht; es soll nämlich ein Serienbrief (auf Basis einer Tabelle in einer *.mdb) sofort gedruckt werden.
VISTA 64 Bit
MS-Office 2010
Kann jemand bitte die Frage beantworten oder hat vielleicht sogar eine funktionierende VBA-Lösung, die man sofort nutzen kann ?
Vielen Dank,
PCFJKG
Ich habe zur Nutzung der Serienbrieffunktion von MS-Word ein Beispiel aus dem I-Net nutzen wollen:
(
Google:
Autor/Einsender: Angie
Datum: '17.03.2005
Public Function CreateAndPrintDoc(ByRef sMsg As String) As Boolean .........
)
Habe bei mir in Verweise eingetragen: _
Microsoft Word 14.0 Object Library
Dann in einem Modul in einer Prozedur:
Dim strFileName As String
Dim objWDDoc As Word.Document
Dim objWDApp As Word.Application
strFileName = "N:\Vorlagen\Erklär.doc"
Set objWDDoc = objWDApp.Documents.Open(FileName:=strFileName)
Das Dokument liegt exakt an dem bezeichneten Ort, der Fehler kommt in der SET-Zeile. Warum meint Access, dass <objWDDoc> nicht festgelegt ist, wenn ich es doch als Word.Document
deklariert habe ?
Bitte keine Hinweise auf Donkarl oder andere Internetveröffentlichungen zu Serienbriefen. Diese sind entweder so komplex, daß ich sie nicht kapiere (wenn beim Kompilieren Fehlermeldungen kommen - und das war bei jedem Beispiel der Fall -) oder lösen mein Problem nicht; es soll nämlich ein Serienbrief (auf Basis einer Tabelle in einer *.mdb) sofort gedruckt werden.
VISTA 64 Bit
MS-Office 2010
Kann jemand bitte die Frage beantworten oder hat vielleicht sogar eine funktionierende VBA-Lösung, die man sofort nutzen kann ?
Vielen Dank,
PCFJKG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 154774
Url: https://administrator.de/contentid/154774
Ausgedruckt am: 24.11.2024 um 04:11 Uhr
10 Kommentare
Neuester Kommentar
Moin PCFJKG,
alternativ zu miniversums Strategie könntest du ja versuchen, irgendetwas mit der Variable "objWDDoc" zu machen außer sie zu deklarieren.
Die Variable "objWDDoc" ist doch in deiner Zeile...
Mach doch vorher ein:
Set objWDApp = New Word.Application
Grüße
Biber
alternativ zu miniversums Strategie könntest du ja versuchen, irgendetwas mit der Variable "objWDDoc" zu machen außer sie zu deklarieren.
Die Variable "objWDDoc" ist doch in deiner Zeile...
Set objWDDoc = objWDApp.Documents.Open(FileName:=strFileName)
...eine so leere Hülse wie Paris Hilton.Mach doch vorher ein:
Set objWDApp = New Word.Application
Grüße
Biber
Moin PCFJKG,
da kann ich nur sagen, was mir sofort ins Auge fällt.
In der Zeile, die ich jetzt dank Codeformatierung als Zeile 23 angeben kann, scheint das Copy&Paste aus dem internet verstümmelt zu sein.
Wo bei dir jetzt steht:
Kannst du mal den Link deiner internet-Quelle mit posten bitte?
Grüße
Biber
da kann ich nur sagen, was mir sofort ins Auge fällt.
In der Zeile, die ich jetzt dank Codeformatierung als Zeile 23 angeben kann, scheint das Copy&Paste aus dem internet verstümmelt zu sein.
Wo bei dir jetzt steht:
& "Jet OLEDB:Database Pas" _
sollte bestimmt ein String stehen der Art & "Jet OLEDB:Database Password="";" _
Kannst du mal den Link deiner internet-Quelle mit posten bitte?
Grüße
Biber
Moin PCFJKG,
dem Link nach zu urteilen, scheint das Skriptkrams des ursprünglichen Autors ja auch nur bedingt zu laufen.
Ich vermute aber stark, dass der Fehler irgendwo in den vielen vielen überflüssigen und unnötigerweise übergebenen Parameter der .OpenDataSource-Methode verschüttet liegt.
Einen der "unglaubwürdigen" Parameter hatte ich schon gepostet, der "halbe Leerstring" bei der Nicht-"User ID" ist ein zweiter Kandidat für ein Syntaxkauderwelsch.
Wenn ich bei meinem (etwas älteren) Word in der VBA-Hilfe das von M$ verfasste Beispiel zu .MailMerge.OpenDataSource anschaue, dann sieht es wesentlich schlanker aus:
Insbesondere dem Hinweis, dass bei der letzten Parameterzeile ein einfaches "Connection:=TABLE orders"
bzw bei dir ein "Connection:=TABLE T_wordsource" reichen könnte, dem solltest du mal nachgehen.
Wegen vollkommen unterschiedlicher Umgebungen und Versionsstände kann ich dir das Testen leider nicht abnehmen und kann auch nur mitraten.
Grüße
Biber
dem Link nach zu urteilen, scheint das Skriptkrams des ursprünglichen Autors ja auch nur bedingt zu laufen.
Ich vermute aber stark, dass der Fehler irgendwo in den vielen vielen überflüssigen und unnötigerweise übergebenen Parameter der .OpenDataSource-Methode verschüttet liegt.
Einen der "unglaubwürdigen" Parameter hatte ich schon gepostet, der "halbe Leerstring" bei der Nicht-"User ID" ist ein zweiter Kandidat für ein Syntaxkauderwelsch.
Wenn ich bei meinem (etwas älteren) Word in der VBA-Hilfe das von M$ verfasste Beispiel zu .MailMerge.OpenDataSource anschaue, dann sieht es wesentlich schlanker aus:
' In diesem Beispiel wird ein neues Hauptdokument erstellt
'und die Tabelle Orders der Microsoft Access-Datenbank Northwind.mdb angefügt.
Dim docNew As Document
Set docNew = Documents.Add
With docNew.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource _
Name:="C:\Program Files\Microsoft Office" & _
"\Office\Samples\Northwind.mdb", _
LinkToSource:=True, AddToRecentFiles:=False, _
Connection:="TABLE Orders"
End With
Insbesondere dem Hinweis, dass bei der letzten Parameterzeile ein einfaches "Connection:=TABLE orders"
bzw bei dir ein "Connection:=TABLE T_wordsource" reichen könnte, dem solltest du mal nachgehen.
Wegen vollkommen unterschiedlicher Umgebungen und Versionsstände kann ich dir das Testen leider nicht abnehmen und kann auch nur mitraten.
Grüße
Biber