Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Telefonnummern nach Eingabe in kanonisches Format umwandeln

Begonnen von datekk, Dezember 01, 2015, 13:51:35

⏪ vorheriges - nächstes ⏩

datekk

Hallo :o)

In einem Formular wird für einen Datensatz die Telefonnummer erfasst. Die Erfassung kann unterschiedlich sein.. Z.B. 0123-123456 oder 00491234123456 oder (0123) 123456. Da ich in meiner Datenbank CTI Dienste verwende, also aus der Anwendung direkt die Nummer anwähle, möchte ich dass Access die Nummern in das Kanonische Format formatiert. https://de.wikipedia.org/wiki/Rufnummer#Schreibweisen

Das heißt aus allen o. g. Varianten soll folgendes entstehen: +49 (123) 123456... und zwar völlig automatisch.

(Wie) ist sowas möglich?

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,

insgesamt wird das schwierig....

als erstes würde ich die Telefonnummer atomisieren, d.h. für die Landeskennung, die Vorwahl und die Telefonnummer selbst getrennte Felder vorsehen.

Bei den Tel-Nr, die schon "formatiert" sind, d. h. die Vorwahl(en) eindeutig zu erkennen sind, wäre ein automatisches Aufdröseln (z. B. mit left/right/mid-Funktionen oder regular expressions) möglich.

Bei allen anderen "Ziffern-Schwänzen" können automatisch nicht die Vorwahlen erkannt werden.

Wurliwurm

Zitat von: DF6GL am Dezember 01, 2015, 15:06:53
Bei den Tel-Nr, die schon "formatiert" sind, d. h. die Vorwahl(en) eindeutig zu erkennen sind, wäre ein automatisches Aufdröseln (z. B. mit left/right/mid-Funktionen oder regular expressions) möglich.

Ich hatte sowas in der Richtung schon mal gemacht mit regular expressions, zwar bei KFZ-Nummern, aber das Problem ist analog.

Jede Schreibweise der Telefonnummern aus dem Wikipedia ist mit einer regulären Ausdruck beschreibbar. Sprich: string_4711 entspricht regex_4711 oder nicht. Eine Lösung wäre, alle Schreibweisen der Telefonnummern als regexe in einer Tabelle zu speichern. Im VBA-Programm müßte man über alle diese regexe loopen und wenn der eingegebene Text einem dieser Regexe entspricht, den eingegebenen Text in das "kanonische Format" konvertieren. Das ganze am besten in einem Funktionsbaustein kapseln. Der Vorteil wäre, daß man jederzeit eine neue Schreibweise hinzu fügen konnte, ohne am Code rumbasteln zu müssen. Der Nachteil ist, daß es relativ abstrakte Programmierung ist.

Die Lösung mit getrennten Feldern und anschließenden verketten liegt da eher auf der Hand. Es kommt darauf an, wie flexibel das wirklich sein muß.