0

Adressfeld - Adresse/PLZ/Ort in eigenen Textfeldern

Hallo, ich bin Anfänger und habe folgendes Problem: Ich arbeite mit Geo-Koordinaten (Breiten- und Längengrad). Ich verwende in meiner Datenbank das Feld "Standort", kopiere dort die Koordinaten hinein und es wird automatisch in das Feld die Adresse inklusive PLZ und Ort eingetragen. Diese Funktion finde ich schon mal super.

Jetzt müsste ich es aber noch so hinkriegen, dass ich die einzelnen Bestandteile der Adresse (Straße, Hausnummer, PLZ, Ort) vollautomatisch als einzelne Textfelder befüllt kriege. Geht das? Ziel ist es, damit leichter die Daten in einen Word-Serienbrief zu übertragen. Kann mir jemand helfen? 

Vielen Dank für die Hilfe.  

1 Antwort

null
    • T_Bartzsch
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ja, man kann die Adresse mithilfe von Regulären Asudrücken (RegEx) und dem ninox code extractx "zerpflücken" und dann auf einzelne Felder zuweisen. Dafür müsste man aber alle eventuell Autretenden Varianten abfangen. RegEx sieht erstmal kryptisch aus, ist aber eine tolle Sache.

    Ich finde die Möglicheit Gruppen abzufragen eine tolle Sache, die hierbei echt hilfreich ist...

    Du wandelst den Stadort in einen Text um, suchst dann mit regulären Ausdrücken nach allen Zeichen bis zum ersten Leerzeichen, gefolgt von einer Zahl(oder mehrerer) evtl gefolgt von einem Buchstaben, gefolgt von einem Komma und einem Leerzeichen (\W\s), gefolgt von mehreren Zahlen (\d+), gefolgt von einem Leerzeichen .... usw.

    Die Adresse wird also logisch nach gewissen Kriterien in einzelne Teile zerlegt. Durch die Klammern kannst du Gruppen erzeugen und diese dann expizit auslesen.

     

    also mit

    extractx(text(Standort),"(.*)(\s)(\d+\w*)(\W\s)(\d+)(\s)(.*)(\W\s)(.*)","g","$1") kommst Du an die Str. ($1 = Gruppe 1)

    mit 

    extractx(text(Standort),"(.*)(\s)(\d+\w*)(\W\s)(\d+)(\s)(.*)(\W\s)(.*)","g","$3") kommst Du an die Hausnummer ($3 = Gruppe 3)

     

    Gruppe 5 wäre die PLZ usw...

     

    Du kannst jetzt vorhandene Felder (Straße, Hausnummer, PLZ usw.) nach Änderung des Standortes direkt befüllen. Bei Standort "Nach Änderung folgendes Script ausführen" kommt rein

     

    Straße := extractx(text(Standort),"(.*)(\s)(\d+\w*)(\W\s)(\d+)(\s)(.*)(\W\s)(.*)","g","$1")

    Hausnummer := extractx(text(Standort),"(.*)(\s)(\d+\w*)(\W\s)(\d+)(\s)(.*)(\W\s)(.*)","g","$3")

    PLZ :=  extractx(text(Standort),"(.*)(\s)(\d+\w*)(\W\s)(\d+)(\s)(.*)(\W\s)(.*)","g","$5")

     

    usw....

     

    Ich hoffe das Prinzip ist klar geworden. RegEx ist Super, aber krytisch