Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

ACC2010, VBA, Serinebriefbeispiel. Objektvariable oder With-Blockvariable nicht festgelegt

Frage Microsoft Microsoft Office

Mitglied: PCFJKG

PCFJKG (Level 1) - Jetzt verbinden

10.11.2010, aktualisiert 13:55 Uhr, 7872 Aufrufe, 10 Kommentare

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
Mitglied: miniversum
10.11.2010 um 16:05 Uhr
Ungetestet kannst du es mal so versuchen:
01.
Dim strFileName As String 
02.
Dim objWDDoc As Object 
03.
 
04.
strFileName = "N:\Vorlagen\Erklär.doc" 
05.
Set objWDDoc = GetObject(strFileName)
Bitte warten ..
Mitglied: Biber
10.11.2010 um 20:18 Uhr
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...
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
Bitte warten ..
Mitglied: PCFJKG
11.11.2010 um 05:41 Uhr
Hallo Biber,
genau das wars. Danke !: für Schnelligkeit sowieso und verständliche/nutzbare Antwort (wobei Paris ggf. leer aber ganz hübsch ist...). Zu meine eigenen Unvermögen erspare ich mir einmal einen Kommenntar. Ich hoffe es ist nicht unverschämt, wenn ich zum Serienbrief noch eine Zusatzfrage stelle, den Code habe ich aus dem I-Net:

01.
  
02.
Dim wDDoc As Word.Document 
03.
Dim wDApp As Word.Application 
04.
 
05.
Set wDApp = CreateObject("Word.Application") 
06.
Set wDDoc = wDApp.Documents.Open(strTemplate)  /*strTemplate beinhaltet Pfad und Filename mit extention .dot */ 
07.
 
08.
dBSource = "N:\Vorlagen\SBS.mdb" 
09.
    
10.
 With wDApp 
11.
        .ActiveDocument.MailMerge.OpenDataSource Name:=dBSource _ 
12.
                                               , ConfirmConversions:=False, ReadOnly:=False _ 
13.
                                               , LinkToSource:=True, AddToRecentFiles:=False _ 
14.
                                               , PasswordDocument:="", PasswordTemplate:="" _ 
15.
                                               , WritePasswordDocument:="", WritePasswordTemplate:="" _ 
16.
                                               , Revert:=False, Format:=wdOpenFormatAuto _ 
17.
                                               , Connection:="Provider=Microsoft.Jet.OLEDB.4.0;" _ 
18.
                                                           & "User ID="";" _ 
19.
                                                           & "Mode=Read;Extended Properties="""";" _ 
20.
                                                           & "Jet OLEDB:System database="""";" _ 
21.
                                                           & "Jet OLEDB:Registry Path="""";" _ 
22.
                                                           & "Jet OLEDB:Database Pas" _ 
23.
                                               , SqlStatement:="SELECT * FROM 'T_WordSource'" _ 
24.
                                               , SQLStatement1:="" _ 
25.
                                               , SubType:=wdMergeSubTypeAccess 
26.
    End With 
Ergebnis: <Word konnte die Datenquelle nicht öffnen>.

Weißt Du auch hier Rat ?

Viele Grüße

PCFJKG

[Edit] Codeformatierung nachgetragen. [/Edit]
Bitte warten ..
Mitglied: PCFJKG
11.11.2010 um 05:45 Uhr
Hallo miniversum,

auch Dir vielen Dank (warum nennst Du Dich mini wenn Du maxi antwortest ?). Ansonsten siehe Antwort an Biber und nochmals: Danke für die schnelle Hilfe !

Viele Grüße

PCFJKG
Bitte warten ..
Mitglied: Biber
11.11.2010 um 10:07 Uhr
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:
& "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
Bitte warten ..
Mitglied: miniversum
11.11.2010 um 12:34 Uhr
Ersetze in Zeile 6 das "/* " gegen ein "' "
Bitte warten ..
Mitglied: PCFJKG
11.11.2010 um 16:32 Uhr
Hallo Biber,

sehr gern:

http://www.office-loesung.de/ftopic380835_0_0_asc.php


Es geht dort um Word-Serienbrief Etiketten ...

Danke für Dein Angebot.

Viele Grüße


PCFJKG
Bitte warten ..
Mitglied: Biber
11.11.2010 um 21:15 Uhr
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:

01.
' In diesem Beispiel wird ein neues Hauptdokument erstellt  
02.
'und die Tabelle Orders der Microsoft Access-Datenbank Northwind.mdb angefügt. 
03.
 
04.
Dim docNew As Document 
05.
 
06.
Set docNew = Documents.Add 
07.
 
08.
With docNew.MailMerge 
09.
    .MainDocumentType = wdFormLetters 
10.
    .OpenDataSource _ 
11.
        Name:="C:\Program Files\Microsoft Office" & _ 
12.
        "\Office\Samples\Northwind.mdb", _ 
13.
        LinkToSource:=True, AddToRecentFiles:=False, _ 
14.
        Connection:="TABLE Orders" 
15.
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
Bitte warten ..
Mitglied: PCFJKG
12.11.2010 um 10:08 Uhr
Hallo Biber,

nun habe ich wenigstens eine Spur. Zwar druckt beim ersten schellen Test Deines Codes MS-Word noch nicht den Serienbrief (Ist nur gestartet im Task-Manager zu sehen), aber ich bekomme zumindest keine Fehlermeldung mehr. Nun kann ich weiter probieren.

Damit erneut ein Dank an Dich ! Ich wünsche Dir ein schönes WE und sende

viele Grüße


PCFJKG
Bitte warten ..
Mitglied: PCFJKG
12.11.2010 um 10:21 Uhr
Hallo miniversum,

das /* ist im "richtigen Code nicht vorhanden, sondern nur hier im Beitrag als Kommentarsyntax verwendet (Angewohnheit vom SQL-SERVER). Aber ich habe eine Testmöglichkeit, die nicht jedesmal den Debugger auf den Plan ruft (siehe Antwort an Biber). Wie ich den automatisierten Seriendruck hinbekomme weiß ich zwar noch nicht, aber ich denke irgendwie muß mailmerge mit MS-Word zum laufen zu bringen sein. Vielleicht finde ich auch im I-Net einCodebeispiel, welches tatsächlich ohne Fehlermeldungen läuft.

Auch Dir natürlich ein schönes WE und danke für Deine Antwort.

Viele Grüße



PCFJKG
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
VB for Applications
gelöst VBA-Makro verschwindet nach Speichern (5)

Frage von lupi1989 zum Thema VB for Applications ...

PHP
How to write phpinfo with special character to file (11)

Frage von thankusomuch zum Thema PHP ...

VB for Applications
gelöst Excel VBA Eine oder mehrere Zellen Verschieben (2)

Frage von batchnewbie zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...