Aufruf von Google Maps direkt aus Access
In diesem Beitrag wird gezeigt, wie Sie über VBA direkt Google Maps im Browser aufrufen mit Anzeige einer Routenplanung von Startadresse zu Zieladresse.
Der Video-Screenshot zeigt einen Ausschnitt aus der Anwendung. Auf dem Formular werden Aufträge verwaltet.
Relevant ist hier nur, dass es eine Adresse gibt, zu der der Kunde dann mit dem Auto hinfahren möchte.
Aufgabe ist also, Google Maps so aufzurufen, dass die Route von der Standortadresse des Kunden (also des Benutzers) zur Zieladresse angezeigt wird.
Auf dem Formular wird die Distanz und Fahrzeit schon angegeben. Diese Daten werden über die Google API bestimmt, was in einem späteren Beitrag erläutert wird.
Für unser Testbeispiel sei jetzt mal der Anwender in der Erika-Mann-Str. 33 in 80636 München beiheimatet. Und er will zum Auftragsort Walter-Gropius-Straße 5, 80807 München (Wir fahren also von Google München zu Microsoft München :-).
Syntax des Google Maps Aufrufs
Wenn man das erst mal in Google Maps eingibt, sieht man, dass der Aufruf in etwa so aussehen muss:
https://www.google.de/maps/dir/Erika-Mann-Straße+33,+80636+München/Walter-Gropius-Straße+5,+80807+München
Bei Google schließt sich zwar noch ein schier endlos langer Teil an, der in etwa so beginnt:
/@48.1605145,11.5317405,13z/data=!3m1!4b1!4m13!4m12!1m5!1m1!1............
aber wenn man den Teil wegnimmt, dann sieht man, dass der Aufruf immer noch funktioniert.
Auch mit ß und Umlauten in der URL scheint Google Maps keine Schwierigkeiten zu haben.
Wir müssen es also nur schaffen, einen Browser mit dieser URL aufzurufen.
Funktion zum Aufruf
Die folgende Funktion, in die Start- und Zieladress-Bestandteile übergeben werden müssen, erzeugt die notwendige Syntax und verwendet die Funktion FolowHyperlink des Application-Objekts zum Aufruf des Browsers mit der URL.
Private Sub CallGoogleMaps(Start_Strasse As Variant, Start_PLZ As Variant, Start_Ort As Variant, _ Ziel_Strasse As Variant, Ziel_PLZ As Variant, Ziel_Ort As Variant) Dim strURL As String strURL = "https://www.google.de/maps/dir/" & Start_Strasse & ",+" & Start_PLZ & "+" & Start_Ort & "/" & _ Ziel_Strasse & ",+" & Ziel_PLZ & "+" & Ziel_Ort Application.FollowHyperlink strURL End Sub
Der Code hinter dem Button zum Aufruf der Google-Seite lautet dann etwa:
(SchadenOrt_Strasse, SchadenOrt_PLZ, SchadenOrt_Ort heißen die Textboxen (und auch Tabellenfelder) auf dem Formular, die die Zieladress-Bestandteile enthalten)
Private Sub cmdCallGoogle_Click() CallGoogleMaps "Erika-Mann-Strasse 33", "80636", "Muenchen", SchadenOrt_Strasse, SchadenOrt_PLZ, SchadenOrt_Ort End Sub
Das Ganze funktioniert auch nur mit Teilen der Adresse, also zb. nur mit dem Ort oder der Postleitzahl!
Die entsprechenden Textboxen können dann leer bleiben, in die Prozedur CallGoogleMaps wird dann NULL übergeben.