Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Excel-Funktionen verwenden

Excel bietet einen Riesenfundus an Funktionen, die in Access nicht standardmig zur Verfgung stehen. Zum Beispiel fehlt Access immer noch eine Funktion zum Runden von Zahlen. Zwar gibt es einige selbstgebastelten Routinen, die diese Aufgabe zufriedenstellend bernehmen, aber das Einbinden von Excel-Funktionen knnte dennoch interessant sein.

Zugriff auf die Excel-Objektbibliothek

Der erste Schritt auf dem Weg zur Zweckentfremdung von Excel-Funktionen ist, diese in Access verfgbar zu machen. Dazu mssen Sie die entsprechende Objektbibliothek in das VBA-Projekt der Access-Datenbank einbinden.

Um dies zu tun, rufen Sie in der VBA-Entwicklungsumgebung den Meneintrag Extras/Verweise auf und aktivieren dort den Eintrag Microsoft Excel x.y Object Library (siehe Abbildung 1).

Abbildung 1: Einbinden der Excel-Objektbibliothek

Zugriff auf die Excel-Funktionen

Anschlieend mssen Sie nur noch eine Wrapper-Funktion fr die entsprechende Excel-Funktion schreiben. Das kann etwa wie in folgendem Beispiel aussehen:

Public Function Runden(Zahl As Double, Stellen As Integer)

    Dim objExcel As Excel.Application

    Set objExcel = New Excel.Application

    Runden = Excel.Application.WorksheetFunction.Round(Zahl, Stellen)

    objExcel.Quit

    Set objExcel = Nothing

End Function

In dieser Routine wird lediglich eine Excel-Instanz erzeugt, die Funktion Round aufgerufen (diese ist Bestandteil des Worksheet-Function-Objekts) und anschlieend die Excel-Instanz wieder geschlossen.

Vor- und Nachteile

Mit dieser Vorgehensweise erhlt man natrlich einen Riesenfundus an Funktionen. Das Erzeugen und Schlieen der Excel-Instanz fr jeden Aufruf ist allerdings sehr teuer: Wenn man absehen kann, dass in einer Anwendung fter Excel-Funktionen verwendet werden, sollte man zu Beginn eine Instanz ffnen und diese beim Schlieen der Datenbank wieder beenden.

 

 

© 2003-2015 André Minhorst Alle Rechte vorbehalten.