Supportnet Computer
Planet of Tech

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

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

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

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.

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


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ß

Antwort 7 von draack

Hi!

@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

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

Antwort 10 von struppi

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


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: