Supportnet / Forum / Datenbanken
suchen und ersetzen
Frage
Hallo hallo,
ich habe folgendes Problem:
Ich habe eine Tabelle mit Kundendaten (Name, Adresse usw. usw.),
wo natürlich auch Umlaute vorkommen. Ich müsste diese Umlaute
ersetzen (ü durch ue, ö durch oe, ä durch ae).
Ich habe versucht mit "suchen und ersetzen", funktioniert aber nicht.
Wenn ich eingebe "Suche nach ü" "Ersetze durch ue" kommt die Meldung
dass der Text nicht gefunden werden kann.
Wenn ich eingebe "Suche nach *ü*" "Ersetze durch ue" wird
das ganze Wort durch "ue" ersetz.
Wie kann man innerhalb eines Wortes eine Buchstabe ersetzen?
Kennt jemand eine Lösung?
Vielen dank in voraus,
Gruss Matty
Antwort 1 von normalo
Eine Möglichkeit wäre:
Export der entsprechenden Tabelle als Excell-Tabelle, dort mit Suchen/Ersetzen die Änderungen vornehmen und anschließend die Daten wieder importieren. (Vorher die alten Datensätze löschen.)
Export der entsprechenden Tabelle als Excell-Tabelle, dort mit Suchen/Ersetzen die Änderungen vornehmen und anschließend die Daten wieder importieren. (Vorher die alten Datensätze löschen.)
Antwort 2 von Matty
Hallo Normalo,
ich habe das auch schon versucht,
aber es gibt die gleichen Meldungen.
Einen Begriff kann man ändern. Meine Frage war, wie ändert man eine Buchstabe innerhalb des Begriffs (des Wortes).
Gibt es eine Lösung auch dafür?
Gruss Matty
ich habe das auch schon versucht,
aber es gibt die gleichen Meldungen.
Einen Begriff kann man ändern. Meine Frage war, wie ändert man eine Buchstabe innerhalb des Begriffs (des Wortes).
Gibt es eine Lösung auch dafür?
Gruss Matty
Antwort 3 von Matty
Bitte um verzeihung,
in Excel funktioniert es,
ich möchte nur das hin und her exportieren und importieren vermeiden.
Die Datenbank soll so benutzerfreundlich wie möglich bleiben.
gruss Matty
in Excel funktioniert es,
ich möchte nur das hin und her exportieren und importieren vermeiden.
Die Datenbank soll so benutzerfreundlich wie möglich bleiben.
gruss Matty
Antwort 4 von draack
Hi!
Suche unter :"Extras / Optionen" im Tab "Bearbeiten/Suchen" die Box "Suchen/Ersetzen-Standard".
Nimm "Allgemeine Suche" und dann versuche es noch einmal mit "Bearbeiten/Ersetzen" "Suchen nach: ü" "Ersetzen durch: ue". Die drei Checkboxes sollten NICHT markiert sein.
Ciao!
Volker.
Suche unter :"Extras / Optionen" im Tab "Bearbeiten/Suchen" die Box "Suchen/Ersetzen-Standard".
Nimm "Allgemeine Suche" und dann versuche es noch einmal mit "Bearbeiten/Ersetzen" "Suchen nach: ü" "Ersetzen durch: ue". Die drei Checkboxes sollten NICHT markiert sein.
Ciao!
Volker.
Antwort 5 von oliverV
Hallo Matty,
eine etwas umständliche aber funktionierende Variante hätte ich anzubieten.
Erstelle eine Abfrage auf der Basis deiner Adress-Tabelle, wähle z.B. das Feld [Nachname] aus und gib als Kriterium Wie „ö*“ ein.
Ändere deine Abfrage in eine Aktualisierungsabfrage um und trage um Feld Aktualisieren folgendes ein:
Links([Nachname];InStr([Nachname];"Ö")-1) & "oe" & Rechts([Nachname];Länge([Nachname])-InStr([Nachname];"Ö"))
Abfrage speichern und ausführen.
Nachteil: Das Spiel musst du für Ä und Ü wiederholen und das für alle infrage kommenden Felder.
Aber es funktioniert.
Gruß
Oliver
eine etwas umständliche aber funktionierende Variante hätte ich anzubieten.
Erstelle eine Abfrage auf der Basis deiner Adress-Tabelle, wähle z.B. das Feld [Nachname] aus und gib als Kriterium Wie „ö*“ ein.
Ändere deine Abfrage in eine Aktualisierungsabfrage um und trage um Feld Aktualisieren folgendes ein:
Links([Nachname];InStr([Nachname];"Ö")-1) & "oe" & Rechts([Nachname];Länge([Nachname])-InStr([Nachname];"Ö"))
Abfrage speichern und ausführen.
Nachteil: Das Spiel musst du für Ä und Ü wiederholen und das für alle infrage kommenden Felder.
Aber es funktioniert.
Gruß
Oliver
Antwort 6 von astigoby
gehe den weg über excel! das geht anm einfachsten und schnellsten! die neueingaben ion die datenbank müssen dann eben schon mit umaluten geschehen, denn in access gibt es keine möglichkeit aus der obnen beschriebenn mit der abfrage!
gruß
gruß
Antwort 7 von draack
Hi!
@Oliver: Das funktioniert nicht richtig, wenn mehr als ein "ö" im Feld [Nachnamen] vorkommt.
Ciao!
Volker.
@Oliver: Das funktioniert nicht richtig, wenn mehr als ein "ö" im Feld [Nachnamen] vorkommt.
Ciao!
Volker.
Antwort 8 von oliverV
@draack
Stimmt, nur wo kommt das vor ?
(außer vielleicht bei skandinawischen Namen "Smöööörebröööd")
Gruß
oliver
Stimmt, nur wo kommt das vor ?
(außer vielleicht bei skandinawischen Namen "Smöööörebröööd")
Gruß
oliver
Antwort 9 von oliverV
zu AW 8
Du musst die Abfrage mehrfach ausführen, bis die Meldung kommt "Es werden O Zeilen aktualisiert".
Es wird immer nur das erste Ö von links aus gesehen durch oe ersetzt. Bei nochmaligem Ausführen wird dann das zweite Ö ersetzt, usw.
Gruß
oliver
Du musst die Abfrage mehrfach ausführen, bis die Meldung kommt "Es werden O Zeilen aktualisiert".
Es wird immer nur das erste Ö von links aus gesehen durch oe ersetzt. Bei nochmaligem Ausführen wird dann das zweite Ö ersetzt, usw.
Gruß
oliver
Antwort 10 von struppi
Hallo,
Kannst Du mit einer Funktion was anfangen? Diese hier ersetzt in jeder x beliebigen Tabelle beliebige Zeichen:
Hab für die Funktion mal Excel verwendet. Man kann aber auch andere Wege gehen. ZB die Mid-Funktion oder VBS oder MSHTML ... (Da stehen die Replace Funktionen zur Verfügung).
gruß struppi
PS: wenn Du anschauen möchtest was passiert dann setze im code:
ex.Visible = true
Kannst Du mit einer Funktion was anfangen? Diese hier ersetzt in jeder x beliebigen Tabelle beliebige Zeichen:
Function ersetzen(Tabelle As String, was As String, durch As String) As String
Dim rs As DAO.Recordset, b As Excel.Workbook, x As Integer
Dim ex As New Excel.Application
DoCmd.Hourglass True
Set b = ex.Workbooks.Add
ex.Visible = False
Set rs = CurrentDb.OpenRecordset(Tabelle)
rs.MoveFirst
Do Until rs.EOF
For x = 0 To rs.Fields.count - 1
If rs.Fields(x).Type = 10 And Not IsNull(rs.Fields(x).Value) Then
b.Worksheets(1).Activate
b.Worksheets(1).Cells(1, 1).Value = CStr(rs.Fields(x).Value)
b.Worksheets(1).Cells(1, 1).Replace was, durch
rs.Edit
rs.Fields(x).Value = b.Worksheets(1).Cells(1, 1).Value
rs.Update
End If
Next
rs.MoveNext
Loop
ex.DisplayAlerts = False
ex.Quit
rs.Close
Set rs = Nothing
DoCmd.Hourglass False
MsgBox "In allen Einträgen der Tabelle : >" & Tabelle & "< wurde >" & was & "< ersetzt mit durch : >" & durch & "<", vbInformation, "FERTIG"
End Function
Hab für die Funktion mal Excel verwendet. Man kann aber auch andere Wege gehen. ZB die Mid-Funktion oder VBS oder MSHTML ... (Da stehen die Replace Funktionen zur Verfügung).
gruß struppi
PS: wenn Du anschauen möchtest was passiert dann setze im code:
ex.Visible = true

