Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 2.0 mit Word 2010 (https://www.delphipraxis.net/155616-delphi-2-0-mit-word-2010-a.html)

MPirnstill 1. Nov 2010 08:45

Delphi-Version: 5

Delphi 2.0 mit Word 2010
 
Hallo,

bei Delphi-Version konnte ich leider 2.0 nicht mehr einstellen, hoffe aber trotzdem noch hilfe zu bekommen.

Hab hier noch eine Ur-Alt-Anwendung welche mit Delphi 2.0 erstellt ist.
Diese Anwendung startet per Mailmerge (OLE) Serienbriefe mit der entsprechende Datenquelle. Funktioniert bis W0rd 2003 einwandfrei.

Leider wurde jetzt Word 2010 eingeführt. Und teilweise, nicht immer, bekomme ich den Fehler "Methode 'MailMerge' wird vom OLE-Objekt nicht unterstützt".

Dies tritt aber nicht bei alle Serienbriefen auf, sondern nur bei einigen.
Ich konnte noch kein Schema erkennen, warum es bei einigen Serienbriefen funktioniert und bei anderen nicht.

Hat jemand eine Idee, was da falsch sein könnte?
Vielen dank im Voraus.

p80286 1. Nov 2010 14:35

AW: Delphi 2.0 mit Word 2010
 
Zitat:

Zitat von MPirnstill (Beitrag 1058897)
Hab hier noch eine Ur-Alt-Anwendung welche mit Delphi 2.0 erstellt ist.

wie wäre es mit neu compilieren?

Zitat:

Zitat von MPirnstill (Beitrag 1058897)
Leider wurde jetzt Word 2010 eingeführt. Und teilweise, nicht immer, bekomme ich den Fehler "Methode 'MailMerge' wird vom OLE-Objekt nicht unterstützt".

Dies tritt aber nicht bei alle Serienbriefen auf, sondern nur bei einigen.
Ich konnte noch kein Schema erkennen, warum es bei einigen Serienbriefen funktioniert und bei anderen nicht.

Und wo unterscheiden sich die Briefe?
Ich vermute mal, daß die Unterschiede vor allem in den entsprechenden Vorlagen stecken.
Kontrolliere doch einmal die Verweise (VB-Editor Extras -> Verweise) die haben mir das Leben beim Umstieg auf W2003 schwer gemacht.

Gruß
K-H

MPirnstill 2. Nov 2010 14:06

AW: Delphi 2.0 mit Word 2010
 
Danke erstmal für deine Antwort!

Anscheinend kennen sich ja nicht mehr so viele mit den Problemen des 'alten' Delphi aus.

Es sind eigentlich sogar 2 ähnliche Anwendungen.
Während die eine tadelos mit Word zusammen arbeitet, und alle ihre Serienbriefe druckt, bricht die andere bei manchen, nicht allen, Serienbriefen den Druck mit o.a. Meldung einfach ab.

Der Ablauf dabei ist folgender, das ich per Programm einen Serienbrief-Steuerdatei mit den Daten fülle, und dann nur word mit dem Dokument und der Steuerdatei zusammen anschubse.
Wenn ich jetzt den Serienbrief manuell öffne und ggf. mit der Datenquelle verbinde, dann läßt sich der Serienbrief einwandfrei drucken.

Also die Anwendung neu kompiliert hatte ich schon vorher gemacht. Also daran kann es nicht gelegen haben.
Aber das mit den Verweisen muss ich noch überprüfen.

Gruß

p80286 2. Nov 2010 17:05

AW: Delphi 2.0 mit Word 2010
 
Naja ich dachte da eher an ein D7 oder Turbo oder ...

Gruß
K-H

hoika 3. Nov 2010 06:18

AW: Delphi 2.0 mit Word 2010
 
Hallo,

Zitat:

Anscheinend kennen sich ja nicht mehr so viele mit den Problemen des 'alten' Delphi aus.
Was hat ein OLE-Problem mit Delphi2 zu tun ?
Was sagt denn einen neuere Delphi-Version dazu (XE gibt es auch als Testversion).

MS ändert ständig was am OLE, leider ...

Ich schätze mal du benutzt late binding (CreateOleObject).

Versuche doch mal, die TLB von Word2007 zu importieren, um early binding (TWordApp oder so) zu testen.
Oder schaue versuche mal deinen Code unter Kontrolle des Macro-Editors unter Word laufen zu lassen.
Der zeigt dir oft zumindestens die internen Befehle an.

Ausserdem würde ich mal die VBA-Hilfe durchstöbern.


Heiko

p80286 3. Nov 2010 12:32

AW: Delphi 2.0 mit Word 2010
 
Zitat:

"Methode 'MailMerge' wird vom OLE-Objekt nicht unterstützt".
Wenn diese Fehlermeldung stimmt, dann solltest Du Deinen Sourcecode überprüfen, denn MailMerge ist ein Objekt/Eigenschaft:

Aus der word-Hilfe:
Zitat:

MailMerge-Eigenschaft
Siehe auchBetrifftBeispielBesonderheitenGibt ein MailMerge-Objekt zurück, das die Seriendruckfunktion für das angegebene Dokument darstellt. Schreibgeschützt.

Anmerkung Das MailMerge-Objekt steht zur Verfügung, unabhängig davon, ob es sich beim angegebenen Dokument um ein Seriendruck-Hauptdokument handelt. Mit der State-Eigenschaft ermitteln Sie den aktuellen Status des Seriendruckvorgangs.

Beispiel
In diesem Beispiel wird ein Seriendruck ausgeführt, wenn es sich beim aktiven Dokument um ein Hauptdokument mit einer verbundenen Datenquelle handelt.

Set myMerge = ActiveDocument.MailMerge
If myMerge.State = wdMainAndDataSource Then myMerge.Execute

In diesem Beispiel wird das Hauptdokument mit den Datensätzen 1 bis 4 zusammengeführt, und die Seriendruckdokumente werden an den Drucker übergeben.

With ActiveDocument.MailMerge
.DataSource.FirstRecord = 1
.DataSource.LastRecord = 4
.Destination = wdSendToPrinter
.SuppressBlankLines = True
.Execute
End With

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz