Telefonnummern findet man praktisch in jeder Datenbank. Lästig und fehleranfällig ist aber – gerade bei langen internationalen Nummern – das Ablesen und Eintippen ins Telefon, wenn etwa ein Kunde angerufen werden soll, der noch nicht in den Nummernspeicher des Telefons aufgenommen wurde. Unter der Voraussetzung, dass eine Telefonanlage vorhanden ist, die die so genannte TAPI-Schnittstelle unterstützt, lässt sich mit nur wenigen Zeilen VBA-Code ein Verbindungsaufbau aus Access heraus auf Knopfdruck realisieren.
TAPI – Die Voraussetzung
Windows offeriert eine Systemschnittstelle, die sich TAPI nennt: Telephony Application Programming Interfaces. Das ist eine Zwischenschicht, die Anwendungen mit Treibern eines Telefondienstanbieters verbindet. Solche Treiber werden mit TK-Anlagen ausgeliefert und bestehen selbst oft aus einem umfangreichen Set von Konfigurationsanwendungen.
Sie sind manchmal aber auch recht spartanisch ausgelegt, wie etwa der TAPI-Dienst der AVM Fritz!Box, von der später noch die Rede sein wird. Diese Treiber kommunizieren unmittelbar mit der Telefonanlage – sei es über ein serielles Kabel, einen USB-Anschluss oder das Netzwerk.
Diese TAPI Service Provider (TSP) genannten Treiber – normalerweise DLLs – stellen zwar einen Satz genormter Funktionen zur Verfügung, mit denen man sich als Programmierer indessen aber genauso wenig beschäftigen muss wie zum Beispiel mit Grafikkartentreibern. Denn diese Arbeit nimmt Ihnen die Windows-TAPI-Schnittstelle ab, die sich ihrerseits per VBA über zwei Methoden ansprechen lässt: Entweder über API-Aufrufe, also Deklarationen auf die tapi32.dll, oder über einen Verweis auf die Microsoft Telephony 3.0 Library. Wichtig ist zunächst nur dies: Sollten Sie oder Ihr Kunde über eine TK-Anlage verfügen, die einen TAPI-Treiber besitzt, dann steht einem Verbindungsaufbau zwischen Access und der Anlage nichts im Wege.
Ob ein solcher Treiber installiert ist, lässt sich in der Systemsteuerung mit dem Applet “Telefon- und Modemoptionen” ermitteln. Unter dem Reiter Erweitert sind dort alle installierten TSPs aufgelistet, wie in Bild 1 zu erkennen ist.
Bild 1: TAPI-Telefondienstanbieter in der Windows Systemsteuerung
Wenn Sie einen Eintrag der Liste markieren, dann wird unter Umständen die Schaltfläche Konfigurieren… aktiv, mit der Sie Einstellungen für die Kommunikation zwischen Anlage und TAPI vornehmen können.
Bei ausgewachsenen Telefonanlagen gleicht die Konfigurationsseite, die der Hersteller hier bereitstellt, oft selbst einer umfangreichen Anwendung, die ohne Lektüre von Unterlagen oder der Online-Hilfe kaum zu durchschauen ist. Dies soll an dieser Stelle nur deshalb erwähnt werden, weil eine korrekte Einrichtung der Anlage erst die Voraussetzung dafür ist, dass unsere Beispieldatenbank dann auch so reibungslos läuft, wie sie sollte.
Access-Beispiel: Adressformular
In der Beispieldatenbank Waehlenmitaccess.mdb öffnet sich beim Start ein Mini-Adressformular, dargestellt in Bild 2. Neben den Anschriftdaten enthält es drei Felder zur Eingabe von Telefonnummern. Dahinter sind jeweils Schaltflächen mit Telefonsymbolen angebracht. Wenn alles gut geht, dann verbindet ein Klick auf eine der Schaltflächen Ihr Telefon mit der Nummer des Teilnehmers.
Bild 2: Beispielformular mit über Button wählbaren Telefonnummern
Dabei kommt erstaunlicherweise nur eine einzige API-Funktion zum Einsatz, die Sie im Modul mdlTAPICALL der Datenbank finden. Erstaunlich deshalb, weil TAPI eigentlich Hunderte von Funktionen und Objekten enthält.
Tatsächlich handelt es sich in diesem Beitrag nur um die Beschreibung einer sehr rudimentären Telefonieschnittstelle, die sich die in Windows gut versteckte Wählhilfe zunutze macht. Die API-Funktion tapiRequestMakeCall ruft nämlich genau diese Wählhilfe auf, weil sie in Windows als Standardanwendung für TAPI eingestellt ist. Sie muss, damit das Wählen über das Formular funktioniert, zusätzlich zur oben erwähnten Einrichtung des TAPI-Treibers erst konfiguriert werden.
Wählhilfe
Wenn Sie unter Windows XP arbeiten, dann werden Sie im Startmenü vergeblich nach der Wählhilfe suchen. Windows XP legt bei Installation keine Verknüpfung zu dieser Anwendung an – aus welchen Gründen auch immer.
Sie können sie einfach aufrufen, indem Sie per Startmenü/Ausführen den Dialog zum Eingeben von Befehlen öffnen und über das dortige Eingabefeld die Anwendung dialer.exe starten. Die Wählhilfe ist eine komplette kleine Telefon-Anwendung mit Nummernliste, Protokollierung und Konferenzraum, die nicht nur wählen, sondern auch Anrufe entgegennehmen kann und sogar Bildschirmtelefonie ermöglicht. Das alles ist an dieser Stelle aber nicht interessant, denn wichtig sind für unseren Zweck lediglich die Einstellungen der Wählhilfe, die beim Aufruf der API-Funktion zum Tragen kommen.