Daten per Knopfdruck in Excel übertragen

Wie kann ich in einem Formular von Access 97 per Button Daten aus Feldern in die Zellen einer Arbeitsmappe von Excel 97 übertragen?

Diese Aufgabe realisieren Sie am besten mit einem DDE-Protokoll (Dynamic Data Exchange). Dabei findet ein DDE-Dialog zwischen geöffneten Anwendungen statt. Sie müssen daher Excel starten und die entsprechende Arbeitsmappe öffnen, bevor Sie Daten aus Access an die Tabellenkalkulation senden können.

Im folgenden sei angenommen, dass Sie innerhalb von Access 97 mit Hilfe der Schaltfläche »Uebertragung« den Inhalt des Textfelds »Daten« in die Zelle »C5« von SERVER.XLS schreiben möchten. Dafür hinterlegen Sie der Eigenschaft »Beim Klicken« von der Schaltfläche »Uebertragung« diese Anweisungen:



Private Sub Uebertragung_Click()
On Error GoTo Err_Uebertragung_Click

Dim vChannel As Variant

vChannel = DDEInitiate(äExcelô, ä[Server.xls]Tabelle1ô)
DDEPoke vChannel, äZ5S3ô, Me![Daten]
DDETerminate vChannel

Exit_Uebertragung_Click:
Exit Sub

Err_Uebertragung_Click:
MsgBox Err.Description
Resume Exit_Uebertragung_Click
End Sub



Mit dem Befehl »DDEInitiate« initialisieren Sie den DDE-Dialog. Dabei bauen Sie einen so genannten DDE-Kanal zwischen einem Client und einem Server auf. In diesem Fall heißt der Client Access, Excel wird zum Server.

Bei den beiden Parametern der Anweisung handelt es sich um Zeichenketten. Der erste Parameter benennt die Anwendung, die der Server sein soll. Der zweite Parameter definiert das zu nutzende »Thema«, wobei es sich normalerweise um den Namen einer vom Server geöffneten Datei handelt. Nachdem die Funktion dieses Beispiels Daten in die »Tabelle1« der Excel-Arbeitsmappe SERVER.XLS schreiben soll, übergeben Sie im zweiten Parameter die Zeichenkette


»[Server.xls]Tabelle1«.


Verläuft »DDEInitiate« erfolgreich, so gibt die Funktion die Kanalnummer »vChannel« zurück, mit deren Hilfe Sie später den soeben aufgebauten DDE-Kanal direkt ansprechen.

Nun übertragen Sie mit »DDEPoke« Daten in Zellen der Excel-Tabelle. Hierbei identifiziert der erste Parameter den DDE-Kanal. Sowohl beim zweiten als auch beim dritten Parameter handelt es sich wieder um Zeichenketten. Der zweite Parameter benennt die anzusprechende Excel-Zelle, der dritte enthält die Daten. Wenn Sie Zahlen übertragen, müssen Sie diese als String übergeben. Mit dem Befehl »DDETerminate« schließen Sie den DDE-Kanal. Die Beispiel-dateien für diesen Tipp finden Sie unter dem CHIP-Code DDEXCHNG.


www.chip.de/forum/office97