PDA

Vollständige Version anzeigen : Suchen und ersetzen


Karstenlu
13.08.2001, 12:26
Hallo,

ich möchte gerne beim Start der Datenbank den Inhalt der Felder Vorname und Nachname der Tabelle Bestand insoweit aktualisieren das Zeichen wie ß gegen ss und ü gegen ue ausgetauscht werden.
Es betrifft also immer nur Teile eines Feldes und soll automatisch per makro oder ähnlich zu erledigen sein.

Wie krieg ich das hin?

Jan
13.08.2001, 14:32
erstelle dir für das folgende beispiel eine neue tabelle : 'Tabelle1', das einzige feld heisst 'name'.

füge einige worte mit ü´s ein.

erstelle ein neues modul : mdl_clean heisst meins.
darin erstelle folgenden code :

Option Compare Database
Option Explicit
'

Public Function sClean()
'
Dim db As Database
Dim rs As Recordset
Dim strNeu As String
'
' tabelle nach datensätzen mit ü im namen filtern
Set db = CurrentDb()
Set rs = db.OpenRecordset("select * from Tabelle1 where name like '*ü*'", dbOpenDynaset)
'
With rs
'
If rs.RecordCount > 0 Then
.MoveFirst
Do While Not .EOF
'
.Edit
![Name] = fCleanString(![Name]) ' funktionsaufruf
.Update
.MoveNext
'
Loop
End If
'
End With
'
Set rs = Nothing
Set db = Nothing
'
MsgBox "tabelle bereinigt!"
'
End Function


Private Function fCleanString(strRight As String) As String
'
' rekursive funktion : tausch 'ü' gegen 'ue'
Dim strLeft As String
Dim pos As Integer
'
pos = 0
pos = InStr(1, strRight, "ü", vbTextCompare)
'
If pos > 0 Then
strLeft = Left(strRight, pos)
strRight = Mid(strRight, pos + 1)
'
strLeft = Mid(strLeft, 1, Len(strLeft) - 1) + "ue"
'
If Len(strRight) > 0 Then
strRight = fCleanString(strRight)
End If
End If
'
fCleanString = strLeft + strRight
'
End Function

dann erstelle ein makro : aktion : AusführenCode, funktionsname = "=sClean()"
name des makros : autoexec ( wird bei jedem start der datenbank ausgeführt )

viel glück !

jan

Karstenlu
13.08.2001, 15:15
Schon mal Danke,

aber er bleibt beim .Edit hängen mit einer Fehlermeldung.
"Methode oder Datneobjekt nicht gefunden"

Karsten

Karstenlu
13.08.2001, 15:20
Danke, jetzt funktioniert es.

Die Verweise waren nicht in der richtigen Reihenfolge gesetzt.