Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Über eine Abfrage Adresse Glätten

Frage Microsoft Microsoft Office

Mitglied: chrislm

chrislm (Level 1) - Jetzt verbinden

27.05.2013, aktualisiert 13:43 Uhr, 2719 Aufrufe, 9 Kommentare

Hallo.
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))
Das klappt auch sehr gut aber gibt es eine Möglichkeit die Formel als Abfrage in Access zu integrieren?
Mitglied: colinardo
27.05.2013 um 12:39 Uhr
Hallo chrislm,
Was meinst du mit Abfrage ?

Grüße Uwe
Bitte warten ..
Mitglied: chrislm
27.05.2013 um 13:01 Uhr
Ich dachte so an eine Aktualisierungsabfrage
Bitte warten ..
Mitglied: colinardo
27.05.2013 um 13:35 Uhr
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.
Bitte warten ..
Mitglied: chrislm
27.05.2013 um 13:43 Uhr
Ich importiere eine Exceldatei in die Accessdatenbank. Vorher prüfe ich halt in Excel die Straße und Hausnummer ober mit der Formel. Ich dachte das könne man auch einfach mit Access eine Abfrage erstellen die nach dem Import die Tabelle überprüft
Bitte warten ..
Mitglied: colinardo
27.05.2013 um 14:06 Uhr
Das könntest du mit einem Makro in Access erledigen, wie sehen denn die Rohdaten aus ?
Bitte warten ..
Mitglied: chrislm
27.05.2013 um 14:33 Uhr
Ist eine normale Tabelle mit
Anrede, Vorname, Name, Straße, PLZ und Ort
Nur das die Straßen halt blöd erfasst wurden, oft fehlt das Leerzeichen. Wie würde denn das Macro aussehen, hast du da ein Beispiel?
Bitte warten ..
Mitglied: colinardo
27.05.2013, aktualisiert um 15:06 Uhr
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
01.
Sub processTable() 
02.
    tableName = "Tabelle1" 
03.
    Spaltenname = "Straße" 
04.
    Dim db As Database 
05.
    Dim rs As Recordset 
06.
    Set db = Application.CurrentDb 
07.
    Set rs = db.OpenRecordset(tableName, dbOpenTable) 
08.
    rs.MoveFirst 
09.
    Do While not rs.EOF 
10.
        strRaw = rs(Spaltenname).Value 
11.
        Set myRegExp = CreateObject("vbscript.regexp") 
12.
        myRegExp.IgnoreCase = True 
13.
        myRegExp.Pattern = "([^\d]*)\s*(\d+[a-z]*)" 
14.
        Set myMatches = myRegExp.Execute(Trim(strRaw)) 
15.
        If myMatches.Count >= 1 Then 
16.
            Set myMatch = myMatches(0) 
17.
            If myMatch.SubMatches.Count >= 1 Then 
18.
                strFinal = Trim(myMatch.SubMatches(0)) & " " & myMatch.SubMatches(1) 
19.
            End If 
20.
        End If 
21.
        rs.Edit 
22.
        rs(Spaltenname).Value = strFinal 
23.
        rs.Update 
24.
        rs.MoveNext 
25.
    Loop 
26.
 rs.Close 
27.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: Biber
27.05.2013, aktualisiert 25.06.2013
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:
"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"
...

...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
Bitte warten ..
Mitglied: chrislm
27.05.2013, aktualisiert um 15:42 Uhr
Das funktioniert klasse, vielen dank!
Ich mache ein Import über ein VBS Modul und rufe danach über Call das Script auf. Falls da was kaputt geht, bedarf es etwas Handarbeit. Aber so habe ich mehr repariert als kaputt gemacht. Denn die Adressen werden noch einmal abgeglichen bei einem externen Dienstleister und der braucht zwingend ein Leerzeichen zwischen Straße und Hausnummer.

Dennoch danke an alle die sich mit der Problematik auseinandersetzten.
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

LAN, WAN, Wireless
gelöst TP-Link WA501G als Client einrichten - Keine IP Adresse wir bezogen (14)

Frage von bestelitt zum Thema LAN, WAN, Wireless ...

Datenbanken
gelöst Row Number bei einer Abfrage sinnvoll einsetzen (1)

Frage von Aximand zum Thema Datenbanken ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...