Microsoft 365: Problem mit DDE-Verbindung

Moderator: ModerationP

Microsoft 365: Problem mit DDE-Verbindung

Beitragvon Gast0505 » 05. Mai 2021, 07:39

Guten Morgen,

nach Umstieg von Microsoft Home and Business 2010 sowie Access 2010 auf Microsoft 365 Business Standard gibt es bei unserer Access-Mitgliederdatenbank folgendes Problem: Nachdem sich jahrelang problemlos aus der Access-Datenbank über zwei Klicks unser Mitgliederverzeichnis in Word öffnen ließ (über eine Excel-Datei als Zwischenschritt), funktioniert dies mit dem neuen Microsoft 365 nicht mehr, es erscheint die Word-Fehlermeldung:

"Word konnte keine neue DDE-Verbindung zu Microsoft Excel herstellen, um die aktuelle Aufgabe zu beenden"

und in Access wird im Debugger die Zeile gelb markiert: .Execute Pause:=False

Der gesamte Code in unserer Datenbank zur Erstellung des Mitgliederverzeichnisses lautet:

Private Sub Befehl57_Click()
DoCmd.OutputTo acOutputQuery, "abMitgliederverzeichnis", acFormatXLSX,
"C:\DATENBANK\Mitgliederverzeichnis\abMitgliederverzeichnis.xlsx", False
DoCmd.RunCommand acCmdAppMinimize
FollowHyperlink "C:\DATENBANK\Mitgliederverzeichnis\MitgliederverzeichnisDinA5.docx"
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
Documents("MitgliederverzeichnisDinA5.docx").Close SaveChanges:=wdDoNotSaveChanges
Kill "C:\DATENBANK\Mitgliederverzeichnis\abMitgliederverzeichnis.xlsx"
End Sub

Ist jemandem bekannt, ob und falls ja, welche Code-Änderung das neue Office-Programm an dieser Stelle erfordert bzw. gibt es vielleicht Vorschläge für eine Lösung?

Ich habe die Erstellung des Mitgliederverzeichnisses jetzt auch mehrfach manuell versucht. Auch hierbei kommt es zur gleichen Word-Fehlermeldung (s.o.) und man muss dann die Verknüpfung zwischen der als Zwischenschritt erzeugten Excel-Datei und dem Word-Seriendruckdokument jedes Mal wieder neu herstellen. Die Verknüpfung klappt scheinbar auch nur, wenn die Excel-Datei schon vorab geöffnet ist. Es sind auf diesem manuellen Weg rund 25 Klicks erforderlich.
Alternativ zu "MS Excel-Arbeitsblätter über DDE" habe ich es auch einmal mit der Verbindung „Excel Files über ODBC“ versucht, welche sich aber gar nicht herstellen lässt. Dann habe ich die Verbindung "OLE DB Datenbankdateien" ausprobiert und damit funktioniert es zwar, sogar auch über den obenstehenden Code der Datenbank. Allerdings schneidet dieser Verbindungstyp alle Mitgliedereinträge, die länger als 255 Zeichen sind, ab und lässt sie unvollständig. Es muss also bei der Verbindung "MS Excel-Arbeitsblätter über DDE" bleiben.

In Excel ist unter Optionen/Erweitert kein Häkchen gesetzt bei „Andere Anwendungen ignorieren, die dynamischen Datenaustausch (Dynamic Data Exchange, DDE) verwenden“, so dass dies nicht der Grund sein kann.
In Word sind unter Optionen/Erweitert/Allgemein Häkchen gesetzt bei „Dateikonvertierung beim Öffnen bestätigen“ und „Automatische Verknüpfungen beim Öffnen aktualisieren“.

Das alte Microsoft Home and Business 2010 und Access 2010 ist auf unserem PC deinstalliert, so dass das Problem auch nicht an zwei parallel installierten Programmen liegen kann.

Viele Grüße,
Judith
Gast0505
 

Re: Microsoft 365: Problem mit DDE-Verbindung

Beitragvon Bitsqueezer » 05. Mai 2021, 09:34

Hallo Judith,

wenn das wirklich so jemals funktioniert hat, dann würde ich mal sagen, ist es gut, wenn es so nicht mehr funktioniert.

"ActiveDocument" ist ein Objekt aus Word. Das setzt schon mal minimal voraus, daß in den Referenzen in Access die Word Object Library eingebunden ist, damit Access überhaupt etwas damit anfangen kann.

Der Programmierer ging hier einfach davon aus, daß nach dem Öffnen des Dokumentes per "FollowHyperlink" Word als aktive Anwendung im Vordergrund ist und daß das dann das aktive Dokument ist, das man auf diese Weise ansprechen kann. Ohne z.B. zu prüfen, ob Word tatsächlich geladen wurde, ob das Dokument tatsächlich geladen wurde oder ob die Excel-Datei vorher auch erstellt wurde.

Das ist mal bestenfalls "experimentelle Programmierung" oder "klappt bei mir, dann funktioniert das überall"-Annahme.

Betriebssysteme und Programme ändern sich, auch Default-Verhalten.

Nach dem "DoCmd.OutputTo" sollte man also erst mal testen, ob die Datei erfolgreich erstellt wurde. Dazu kann man das FileSystemObject verwenden und per FileExists das Vorhandensein überprüfen.

"FollowHyperlink" eignet sich bestenfalls, wenn man einfach nur eine Datei öffnen will, aber nicht, um danach sauber programmiertechnisch auf das geöffnete Dokument zuzugreifen.
Die korrekte Methode wird, als eines von vielen Beispielen, hier demonstriert. Es wird eine Objektvariable für eine Word-Programminstanz erstellt, über die man per "Fernsteuerung" Word dann programmieren kann. Dabei hat man dann auch die Möglichkeit, eine Fehlerbehandlung zu implementieren, um Probleme abzufangen.

Ein ausführliches Beispiel ist bei Microsoft unter dem Abschnitt "Automatisierungsbeispiel" zu finden.

Darüber hinaus würde ich es einfach mal manuell versuchen: Word öffnen und die Serienbrieffunktion mit der Excel-Datei starten. In Word gibt es auch einen Makro-Rekorder, mit dem man daraus dann VBA-Code erzeugen kann. Dort kannst Du dann prüfen, was Word macht, um erfolgreich die Serienbriefdatei einzulesen und den Code dann, entsprechend angepaßt, in Access zu übernehmen.

Weitere Tips dazu: https://www.pctipp.ch/praxis/office/feh ... 82268.html
https://answers.microsoft.com/de-de/mso ... 1c7fb87883
https://www.excel-nervt.de/tag/dde/

Nicht zuletzt läßt sich DDE auch per Sicherheitsrichtlinien abschalten: https://admx.help/?Category=Office2016& ... uage=de-de

Vermutlich wäre es die bessere Lösung, Excel per ODBC zu verwenden: https://docs.microsoft.com/de-de/office ... datasource
https://www.ibm.com/support/pages/using ... mail-merge

Und außerdem kann man auf diese Weise auch direkt die Daten aus der Datenbank holen, statt über den Excel-Zwischenschritt zu gehen.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Microsoft 365: Problem mit DDE-Verbindung

Beitragvon knobbi38 » 05. Mai 2021, 09:37

Hallo Judith,

du solltest dich von DDE verabschieden und warum der Umweg über Excel?

Vielleicht findest du hier einen Hinweis, wie man DDE wieder in Word aktivieren kann:
https://www.bleepingcomputer.com/news/microsoft/microsoft-disables-dde-feature-in-word-to-prevent-further-malware-attacks/

Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3261
Registriert: 02. Jul 2015, 14:23


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: knobbi38 und 3 Gäste