Excel-Funktionen verwendenExcel bietet einen Riesenfundus an Funktionen, die in Access nicht standardmäßig zur Verfügung 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 könnte dennoch interessant sein. Zugriff auf die Excel-ObjektbibliothekDer erste Schritt auf dem Weg zur Zweckentfremdung von Excel-Funktionen ist, diese in Access verfügbar zu machen. Dazu müssen Sie die entsprechende Objektbibliothek in das VBA-Projekt der Access-Datenbank einbinden.
Um dies zu tun, rufen Sie in der VBA-Entwicklungsumgebung den Menüeintrag 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-FunktionenAnschließend müssen Sie nur noch eine Wrapper-Funktion für 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 anschließend die Excel-Instanz wieder geschlossen. Vor- und NachteileMit dieser Vorgehensweise erhält man natürlich einen Riesenfundus an Funktionen. Das Erzeugen und Schließen der Excel-Instanz für 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 Schließen der Datenbank wieder beenden.
|