evolution
Goto Top

Umkreissuche mit Access 2013 VBA

Hallo,

ich bin auf der Suche nach einer Anleitung zur Umkreissuche mit Access 2013.
Wir haben hier von der Post Geodaten, die wir in unseren Web-Plattformen nutzen.
Nun würde ich gerne für eine interne Access-Datenbank eine Umkreissuche realisieren, jedoch finde ich keinen vernünftigen Ansatz oder Anleitung.

Hat jemand Erfahrung damit, wie ich das in Access realisieren kann?

Danke

Content-ID: 268514

Url: https://administrator.de/contentid/268514

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

114757
114757 07.04.2015 um 19:29:11 Uhr
Goto Top
Moin,
z.B. mit dem Google Distance Matrix API, damit kannst du via URL eine JSON-Kodierte Antwort mit der Distanz zwischen zwei Punkten erhalten:

Beispiel:
http://maps.googleapis.com/maps/api/distancematrix/json?origins=Branden ...

Gruß jodel32
eisbein
eisbein 07.04.2015 um 19:52:12 Uhr
Goto Top
Hallo!

Ich kann auch nur die Google-Variante empfehlen, wenn man sich der Google-Praktiken bewusst ist und diese kein Problem sind face-wink

Somit muss man das Rad nicht neu erfinden und die API lässt sich leicht integrieren und hat viele Features.

Gruß
Eisbein
evolution
evolution 07.04.2015 um 20:19:44 Uhr
Goto Top
Danke, aber das ist leider keine Lösung für mich. Ich habe alle Geodäten in der eigenen Datenbank und will die Umkreissuche lokal halten. Die Nutzer der DB haben auch zum Teil keinen Zugriff auf das Internet..
114757
114757 07.04.2015 aktualisiert um 20:26:04 Uhr
Goto Top
eisbein
eisbein 07.04.2015 um 20:34:31 Uhr
Goto Top
Hallo!

Wenn eine Web-Plattform besteht, gibt es einen zentralen Rechner der diese zur Verfügung stellt (vorzugsweise Webserver) - wenn dieser Zugriff auf das Internet hat reicht das schon, auch wenn die Web-Plattform nur für die User als "Intranet" zur Verfügung steht.

Gruß
Eisbein
evolution
evolution 07.04.2015 um 21:08:35 Uhr
Goto Top
Jede Abteilung nutzt die Access DB lokal, mit eigenen Daten. Ist nur ein internes Tool für die Vertriebler. Es soll wirklich nur lokal mit VBA realisiert werden...
114757
114757 08.04.2015 aktualisiert um 09:20:43 Uhr
Goto Top
Eigentlich ist das ganz einfach, wenn man mal genau darüber nachdenkt. Im einfachsten Fall brauchst du noch nicht mal VBA für die Lösung, sondern nur eine SQL Query und ein bisschen Trigonometrie-Grundlagen der ersten Klasse.

Du brauchst zwei Tabellen, einmal eine Tabelle mit den Koordinaten der Postleitzahlen und die andere mit den Koordinaten deiner POIs.

Jetzt zur Theorie:

Berechnung der Entfernung zwischen zwei Koordinaten:
Wir môchten erst mal wissen wie weit 1 Grad in Kilometern sind. Dazu berechnen wir uns den Umfang der Erde und teilen das ganze durch 360:
(2 x PI x 6378) / 360 = Entspricht der Entfernung für 1 Grad

Nun kommt der Satz des Pytagoras ins Spiel (a2 + b2 = c2).

Erhalten wollen wir c also die Hypothenuse
c = Wurzel(a2 + b2)

... also ziehen wir jeweils die Breiten in Längengrade der POIs und Referenzen der PLZ-Koordinaten voneinander ab, nehmen deren absolute Werte, multiplizieren sie mit der Entfernung die wir anfangs berechnet haben, und setzen sie für a und b in die Gleichung ein, zum Schluss wir daraus die Wurzel gezogen > nun haben wir die Entfernung.

Diese Berechnung lässt sich in einer einfach SQL-Select Query machen und das Ergebnis mit einer in einem Formular auszuwählenden KM-Anzahl vergleichen und so die Ergebnisse direkt in einem Unterformular darstellen.

Wenn man das mit einer Abfrage macht musst du dich noch nicht mal mit SQL auseinandersetzen, es braucht nur etwas Mathe. aus der Schule face-smile

Gruß jodel
eisbein
eisbein 08.04.2015 aktualisiert um 09:36:04 Uhr
Goto Top
Hallo!

Da hat man aber "nur" die Luftlinie. Bei der lokalen Variante muss man mit ungenauen Entfernungsangaben leben. Wenn da ein Berg zwischen den beiden Orten ist, wird sich das sicherlich auswirken face-wink

Die Google-Variante bietet da schon mehr Komfort (Auto, Fußgänger, Straßenverlauf, etc.)

Für eine Entscheidung sollte man sich dessen bewusst sein.

Gruß
Eisbein
colinardo
Lösung colinardo 09.04.2015, aktualisiert am 28.04.2015 um 08:52:23 Uhr
Goto Top
Hallo evolution,
hier kannst du dir die Umkreissuche (Luftlinie) anhand einer Demo-Datenbank abschauen:
Umkreissuche_Access_268514.zip

Diese Variante ist offline nutzbar.

Die Geodaten der Postleitzahlen stammen aus dem OpenGeoDB Projekt.

Grüße Uwe

Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
colinardo
colinardo 17.04.2015 aktualisiert um 17:54:58 Uhr
Goto Top
Wenns das dann war, den Beitrag bitte noch als gelöst markieren. Merci.
evolution
evolution 28.04.2015 um 08:52:13 Uhr
Goto Top
Hallo Uwe.. Du bist mein Held! Genau das war es was ich gesucht haben!
Sorry für das späte Feedback, aber war schon länger nicht mehr on. Hatte Urlaub.
Also Danke nochmal!!!!

Gruß evo
135884
135884 03.04.2018 um 21:29:40 Uhr
Goto Top
Hallo Uwe,

ist die klasse DB von Dir? Weiß Du zufällig wie ich die Treffer nicht in ein Formular sondern in ein Array schreiben kann. Wäre toll wenn du mir kurz anworten würdest. Viele Grüße Bernd
goRaini
goRaini 13.03.2019 aktualisiert um 12:57:53 Uhr
Goto Top
Leider klappt der Download der ZIP-Datei mit dem Access-Beispiel nicht mehr.

Kann das nochmal zur Verfügung gestellt werden? Das wäre super!
colinardo
colinardo 13.03.2019 aktualisiert um 13:03:16 Uhr
Goto Top
Zitat von @goRaini:

Leider klappt der Download der ZIP-Datei mit dem Access-Beispiel nicht mehr.
Doch der klappt selbstverständlich noch, du musst nur auf den Link des Downloads klicken, spenden, dann wirst du automatisch zum Download geleitet face-wink.