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-Key: 268514

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

Printed on: April 24, 2024 at 12:04 o'clock

Mitglied: 114757
114757 Apr 07, 2015 at 17:29:11 (UTC)
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
Member: eisbein
eisbein Apr 07, 2015 at 17:52:12 (UTC)
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
Member: evolution
evolution Apr 07, 2015 at 18:19:44 (UTC)
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..
Mitglied: 114757
114757 Apr 07, 2015 updated at 18:26:04 (UTC)
Goto Top
Member: eisbein
eisbein Apr 07, 2015 at 18:34:31 (UTC)
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
Member: evolution
evolution Apr 07, 2015 at 19:08:35 (UTC)
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...
Mitglied: 114757
114757 Apr 08, 2015 updated at 07:20:43 (UTC)
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
Member: eisbein
eisbein Apr 08, 2015 updated at 07:36:04 (UTC)
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
Member: colinardo
Solution colinardo Apr 09, 2015, updated at Apr 28, 2015 at 06:52:23 (UTC)
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
Member: colinardo
colinardo Apr 17, 2015 updated at 15:54:58 (UTC)
Goto Top
Wenns das dann war, den Beitrag bitte noch als gelöst markieren. Merci.
Member: evolution
evolution Apr 28, 2015 at 06:52:13 (UTC)
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
Mitglied: 135884
135884 Apr 03, 2018 at 19:29:40 (UTC)
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
Member: goRaini
goRaini Mar 13, 2019 updated at 11:57:53 (UTC)
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!
Member: colinardo
colinardo Mar 13, 2019 updated at 12:03:16 (UTC)
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.