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

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 5/2011.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Erfahren Sie, wie Sie Daten auf einfache Weise wie mit einem Webservice austauschen.

Techniken

VBA, PHP

Voraussetzungen

Access 2000 und höher

Beispieldateien

WebserviceLight.mdb

Shortlink

www.access-im-unternehmen.de/798

Webservice light

André Minhorst, Duisburg

Manchmal kann es nützlich sein, Informationen über das Internet bereitzustellen - und damit ist diesmal nicht der Zugriff auf eine Datenbank auf einem Webserver gemeint. In diesem Fall soll eine Anwendung etwa selbst ermitteln können, ob es ein Update für sie gibt, oder sie soll Informationen wie etwa Registrierungsdaten zum Webserver des Benutzers übermitteln. Dieser Beitrag stellt eine kleine Lösung bereit, mit der Sie die notwendigen Daten auf einem Webserver bereitstellen, und zeigt, wie Sie diese Informationen per Access-Datenbank auslesen.

Dabei soll die Informationsbeschaffung keine Einbahnstraße sein: Ziel der Lösung dieses Beitrags ist es zunächst, dass Sie von einer Access-Anwendung aus eine Anfrage an einen Webserver schicken können.

Diese Anfrage soll aber durchaus auch noch Parameter enthalten können, die dann von einem entsprechenden Algorithmus auf dem Webserver ausgewertet und entsprechend beantwortet werden können.

PHP als Programmiersprache

Die in diesem Beitrag vorgestellte Lösung basiert serverseitig auf der Sprache PHP. Auch, wenn Sie sich als Leser dieses Magazins zumindest als Anwender von Microsoft-Produkten zu erkennen geben, scheinen die meisten Webanwendungen auf Unix/Linux-Servern zu laufen - dementsprechend ist die Chance, dass Sie die Möglichkeit zum Ausprobieren dieser Lösung auf einem Server mit PHP haben, relativ hoch. Die Portierung des hier vorgestellten, einfachen Codes auf eine andere Sprache sollte jedoch nicht allzu kompliziert sein.

Webservice light

Normalerweise verwendet man für solche Anforderungen einen Webservice. Dies ist jedoch nicht ganz trivial, sodass wir eine etwas vereinfachte Variante eines Webservice nutzen möchten, die auf einer einzigen .php-Seite basiert.

Die .php-Seite soll dabei die von der Anwendung abgeschickten Parameter auswerten und eine entsprechende Antwort zurücksenden.

Im einfachsten Fall sieht das wie folgt aus: Sie schicken vom Rechner aus eine Anfrage ab, die beispielsweise http://www.acciu.de/zeit.php lautet. Der Webserver soll dann ein XML-Dokument zurücksenden, das etwa so aussieht:

<?xml version='1.0'?>

<zeit>18:37:20</zeit>

Dieses Dokument können wir mithilfe der MSXML-Bibliothek anschließend leicht auswerten.

Unser einfacher Webservice soll jedoch auch Parameter verarbeiten können. Diese werden beim Aufruf an den Link angehängt - zum Beispiel so:

<Webadresse>/update.php?version=1.0.0.3

Die Webseite update.php soll nun anhand der übermittelten Version prüfen, ob es eine neuere Version gibt, und gegebenenfalls einen Link auf die neue Version übermitteln (den Ausdruck <Webadresse> in diesem und den folgenden Beispielen ersetzen Sie durch die entsprechende Webseite, beispielsweise http://www.access-im-unternehmen.de/index.php).

Auch solche Anforderungen kann unser im Anschluss vorgestellter Webservice light erledigen - grundsätzlich gibt es kaum Grenzen, sofern Sie sich die Programmierung der wenigen notwendigen PHP-Codezeilen zutrauen und auf einen Webserver mit PHP zugreifen können.

Technik zum Anfragen der XML-Antworten

Der erste interessante Teil der Implementierung ist die Übertragung der Webadresse mit den Parametern zum Webserver und das Auslesen der Antwort auf diese Anfrage.

Diese Technik können Sie grundsätzlich verwenden, um beliebige Webseiteninhalte oder auch Dateien herunterzuladen. Die erste Variante dieser Funktion sieht wie in Listing 1 aus und erwartet den Link zur einzulesenden Datei als Parameter. Sie liefert den Quellcode dieser Datei zurück:

Listing 1: Einfache Routine zum Herunterladen von Quelltexten

Public Function DownloadText(ByVal strDateiadresse As String) As Text

    Dim objXMLHTTP As MSXML2.XMLHTTP

    Set objXMLHTTP = New MSXML2.XMLHTTP

    With objXMLHTTP

        .Open "GET", strDateiadresse, True

        .send

        Do While Not .ReadyState = 4

            DoEvents

        Loop

        DownloadText = .responseText

    End With

End Function

Dazu verwendet sie das Objekt XMLHTTP der Bibliothek Microsoft XML, Version x.0, wobei x.0 für die neueste verfügbare Version steht (aktuell 6.0).

Dieses Objekt erlaubt es beispielsweise, Anfragen an einen Webserver zu senden und das von diesem gelieferte Resultat weiterzuverarbeiten. In diesem Falle rufen Sie die Anwendung beispielsweise so auf:

Debug.Print DownloadText("http://www.access-im-unternehmen.de")

Dies gibt, im Direktfenster eingesetzt, beispielsweise den kompletten Quelltext der angegebenen Internetseite aus.

Wenn Sie nun beispielsweise die aktuelle Version einer Software damit über das Internet verfügbar machen möchten, würden Sie etwa eine Datei wie die folgende mit der Nummer der aktuellsten Version auf einen Webserver legen:

<?xml version='1.0'?>

<currentVersion>1.0.0.3</currentVersion>

Dann können Sie die Funktion DownloadText mit der Routine AktuelleVersionErmitteln aufrufen (s. Listing 2) und aus der gelieferten XML-Datei den Wert des Elements currentVersion auslesen.

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.