Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Vorwahl aus Telefonnummer filtern





Frage

Hallo.. Ich hab das Problem, dass ich die Vorwahl aus den Telefonnummern in ein neues Feld einfügen will und aus der Telefonnummer selber löschen möchte. Beispiel: 0201 / 23428992 oder 022 11212121 in feld1:0201 feld2:23428992 Wie gestalte ich dafür eine Abfrage, weil das über 5000 datensätze sind ist das per Hand echt schlecht. Besten Dank schon mal Watson

Antwort 1 von hendrikw

Wenn Du ein eindeutiges Trennzeichen hast (z.B. "/") könntest Du das mit Stringfunktionen hinbekommen. Sonst geht das nicht so einfach. Da brauchst Du eine Tabelle mit allen Vorwahlen und musst dann für jede Nummer beginnend mit den ersten drei Stellen bis zur maximalen Zahl von Ziffern, die eine Vorwahl haben kann, in der Vorwahltabelle suchen, bis Du nur noch einen einzigen Treffer hast.
mfg
Hendrik

Antwort 2 von Watson

Stringfunktion ?

Antwort 3 von oliverV

Hallo Watson,

wie Hendrik schon gesagt hat, brauchst du ein eindeutiges Trennzeichen.
Wenn du wirklich nur die beiden angegeben Schreibweisen in deiner Tabelle hast und nicht noch z.B.
0049 0221 25366
(0221) 25366
oder div. andere denkbare Varianten, kannst du die beiden folgenden Aktualisierungsabfragen verwenden.

Erstelle hierzu in deiner Tabelle zwei neue Felder „Vorwahl“ und „Tel“, in den Abfragen bin ich von einem bisherigen Feldnamen „Telefonnummer“ ausgegangen, sowie einem Tabellennamen „Telefonnummern“; passe diese Namen in den Abfragen entsprechend deiner verwendeten Tabellen- bzw. Feldnamen an.

Abfrage1:
UPDATE Telefonnummern SET Telefonnummern.Vorwahl = IIf(InStr([Telefonnummer]," /")>0,Left([Telefonnummer],InStr([Telefonnummer]," /")-1),"Nichts"), Telefonnummern.Tel = IIf(InStr([Telefonnummer]," /")>0,Right([Telefonnummer],(Len([Telefonnummer]))-(InStr([Telefonnummer]," /")+2)),"Nichts");

Abfrage2:
UPDATE Telefonnummern SET Telefonnummern.Vorwahl = Left([Telefonnummer],InStr([Telefonnummer]," ")-1), Telefonnummern.Tel = Right([Telefonnummer],(Len([Telefonnummer]))-(InStr([Telefonnummer]," ")))
WHERE (((Telefonnummern.Vorwahl)="Nichts") AND ((Telefonnummern.Tel)="Nichts"));

Erst wenn du die Feldinhalte der neuen Felder überprüft hast, lösche das alte „Telefonnummer“-Feld.

Vorherige Datensicherung nicht vergessen !

Gruß

Oliver