DDE-Kommunikation von Word VBA nach VB6

31/10/2009 - 14:52 von Wolfgang Backes | Report spam
Hallo miteinander,

kann mir bitte jemand bei folgendem Problem helfen?

Ein Word-2003-Makro und ein VB6-Programm greifen beide auf die gleiche
Datenbank zu. Wenn das Word-Makro einen Datenbankeintrag veràndert,
soll es das VB6-Programm hierüber per DDE informieren, damit bestimmte
Controls im VB6-Programm automatisch refreshed werden.

Bisher habe ich DDE nur für die Kommunikation zwischen VB6-Programmen
verwendet und hatte damit keine Probleme. Jetzt stelle ich fest, dass
der DDE-Mechanismus von VBA völlig anders funktioniert. In der
Online-Hilfe ist ein Beispiel für die Fernsteuerung von Excel durch
Word angegeben:

lngChannel = DDEInitiate(App:="Excel", Topic:="System")
DDEExecute Channel:=lngChannel, Command:="[New(1)]"
DDETerminate Channel:=lngChannel

Ist ja gut und schön, auf diese Weise kann ich vielleicht andere
Office-Programme fernsteuern. Aber wie muss "Command:=" lauten, wenn
ich damit ein VB6-Programm fernsteuern will? Das Einzige, was mir dazu
einfàllt, ist so etwas wie:
Command:="txtDDE.text="+chr(34)+"test"+chr(34)

Aber das funktioniert nicht.

Für jeden Tipp dankbar,
Wolfgang
 

Lesen sie die antworten

#1 Horst Heinrich Dittgens
31/10/2009 - 15:58 | Warnen spam
Also wenn ich das richtig in Erinnerung habe, dann ist der Execute-Parameter
das Zeugs, was an den Empfànger gesendet werden soll, d.h. irgendein
Kommando sprich String, der vom Empfànger interpretiert werden muß. Für
Windows & Co ist dieser Dateninhalt neutral, er wird nur ans Ziel weiter
transportiert.

Im vorliegenden Beispiel ist der Empfànger Excel, und das versteht 'New'
eben als Befehl zum Anlegen einer neuen Tabelle. Was ein VB6-Programm macht,
wenn es einen Befehl 'New' erhàlt, ist dagegen seine Sache.

Wenn Du schon bisher DDE von VB-App zu VB-App gemacht hast, dann verstehe
ich Deine Frage nicht so ganz, denn dann solltest Du doch bereits eine
funktionierende App haben, die ein DDE-Kommando empfangen und darauf
reagieren kann? Von wem das DDE-Kommando kommt ist unerheblich.

Ähnliche fragen