Über eine Abfrage Adresse Glätten
Hallo.
Ich benutze folgende Funktion in Excel um zwischen Straße und Hausnummer ein Leerzeichen zu bekommen:
Das klappt auch sehr gut aber gibt es eine Möglichkeit die Formel als Abfrage in Access zu integrieren?
Ich benutze folgende Funktion in Excel um zwischen Straße und Hausnummer ein Leerzeichen zu bekommen:
=GLÄTTEN(LINKS(E2;MIN(WENN(ISTZAHL(--TEIL(E2;SPALTE(2:2);1));SPALTE(2:2)))-1) & " " & RECHTS(E2;LÄNGE(E2)-MIN(WENN(ISTZAHL(--TEIL(E2;SPALTE(2:2);1));SPALTE(2:2)))+1))
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 207056
Url: https://administrator.de/contentid/207056
Ausgedruckt am: 25.11.2024 um 15:11 Uhr
9 Kommentare
Neuester Kommentar
d.h. du verwendest eine Abfrage um Daten aus einer anderen Quelle in Excel
zu importieren in der die Strasse und Hausnummer nicht so formatiert sind wie du es willst ?
Dann mach die Abfragetabelle doch in ein extra Blatt und erstelle Referenzen auf die Zellen in einem anderen wo du dann die geünschte Änderung der Straße und Hausnummer vornimmst.
zu importieren in der die Strasse und Hausnummer nicht so formatiert sind wie du es willst ?
Dann mach die Abfragetabelle doch in ein extra Blatt und erstelle Referenzen auf die Zellen in einem anderen wo du dann die geünschte Änderung der Straße und Hausnummer vornimmst.
In Zeile 2 und 3 noch den Namen deiner Tabelle und den Spaltennamen in der die Straße drin steht eintragen, und auf die Tabelle loslassen
Grüße Uwe
Sub processTable()
tableName = "Tabelle1"
Spaltenname = "Straße"
Dim db As Database
Dim rs As Recordset
Set db = Application.CurrentDb
Set rs = db.OpenRecordset(tableName, dbOpenTable)
rs.MoveFirst
Do While not rs.EOF
strRaw = rs(Spaltenname).Value
Set myRegExp = CreateObject("vbscript.regexp")
myRegExp.IgnoreCase = True
myRegExp.Pattern = "([^\d]*)\s*(\d+[a-z]*)"
Set myMatches = myRegExp.Execute(Trim(strRaw))
If myMatches.Count >= 1 Then
Set myMatch = myMatches(0)
If myMatch.SubMatches.Count >= 1 Then
strFinal = Trim(myMatch.SubMatches(0)) & " " & myMatch.SubMatches(1)
End If
End If
rs.Edit
rs(Spaltenname).Value = strFinal
rs.Update
rs.MoveNext
Loop
rs.Close
End Sub
Grüße Uwe
Moin chrislm,
unabhängig von der handwerlichem Umsetzbarkeit ist es ganz, ganz äh-bäh, aus einem Quellsystem (hier: Excel) Daten zu importieren und beim Import Inhaltlich zu manipulieren. Die Anforderung miss immer an den Datenlieferanten gehen.
Wenn du die Strasse/Nr-Daten nur ohne Leerzeichen bekommen kannst, dann IST ES HALT SO RICHTIG.
Ich kann dir ohne viel Nachzudenken 37 Fälle konstrien, dan denen deine Excel/colinardos regEx-Manipulationen richtig in die Grütze fassem:
...und das sind nur die Beispiele, die mir sogar an einem ver###ten Montach einfallen.
Wenn Strasse/Nr ein ungeprüftes Prosa-Feld ist, das kannst du es nicht in einen halb Text/halb Numerisch-Teil trennen und ästhetisch formatiert wieder zusammenlöten.
Was machst du denn z.B., wenn du im Access Strasse/Nr als Text(50) vorgehen hast, als Importfeld auch ein Text un Länge 50 kommt (also gerade so gültige Länge) und du da ein Leerzeichen reinpressen willst??? Dann crasht dein Import mit 8000 Datensätzensätzen, weil der Datenlieferant einen Datensatz dabei hatte mit einem Feld in zulässiger Länge, aber ohne leerzeichen zwischen Strasse und Nr.?
Ich halte das für eine suboptimale Idee
Grüße
Biber
unabhängig von der handwerlichem Umsetzbarkeit ist es ganz, ganz äh-bäh, aus einem Quellsystem (hier: Excel) Daten zu importieren und beim Import Inhaltlich zu manipulieren. Die Anforderung miss immer an den Datenlieferanten gehen.
Wenn du die Strasse/Nr-Daten nur ohne Leerzeichen bekommen kannst, dann IST ES HALT SO RICHTIG.
Ich kann dir ohne viel Nachzudenken 37 Fälle konstrien, dan denen deine Excel/colinardos regEx-Manipulationen richtig in die Grütze fassem:
"Strasse des 17.Juni 37"
"Platz des 1.Mai 3"
"Kirchstr.33b-d
"In der Mietskaserne 145 4.Etage li"
"Hauptstr. 12 (bei 123consult 3x klingeln)"
"3-Schanzen-Allee 12"
..."Platz des 1.Mai 3"
"Kirchstr.33b-d
"In der Mietskaserne 145 4.Etage li"
"Hauptstr. 12 (bei 123consult 3x klingeln)"
"3-Schanzen-Allee 12"
...und das sind nur die Beispiele, die mir sogar an einem ver###ten Montach einfallen.
Wenn Strasse/Nr ein ungeprüftes Prosa-Feld ist, das kannst du es nicht in einen halb Text/halb Numerisch-Teil trennen und ästhetisch formatiert wieder zusammenlöten.
Was machst du denn z.B., wenn du im Access Strasse/Nr als Text(50) vorgehen hast, als Importfeld auch ein Text un Länge 50 kommt (also gerade so gültige Länge) und du da ein Leerzeichen reinpressen willst??? Dann crasht dein Import mit 8000 Datensätzensätzen, weil der Datenlieferant einen Datensatz dabei hatte mit einem Feld in zulässiger Länge, aber ohne leerzeichen zwischen Strasse und Nr.?
Ich halte das für eine suboptimale Idee
Grüße
Biber