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
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
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

