PDA

Vollständige Version anzeigen : Ersetzen im String


SabineXXXXXXXXXXXXXXX
14.02.2001, 08:29
Wie kann ich (egal ob abfrage oder code) in einem Feld (string, variant) "%E4" durch ein "ä" ersetzen???? Ich bekomme das einfach nicht hin. Bitte um Hilfe

Heathen
14.02.2001, 11:05
Hallo Sabine,
versuch es mal hiermit:

Dim i As Integer
Dim l As Integer
Dim sChar
Dim nCode As Integer
Dim stext as String
Dim nText as String

sText = Me.[Textfeld]

l = Len(stext)
For i = 1 To l
sChar = Mid$(stext, i, 3)
Select Case sChar
Case "%E4": nText = "ä"

Case Else:
GoTo NextChar
End Select
Mid(stext, i, 3) = nText
stext = Left(stext, i) & Mid(stext, i + 3, l)

' Mid(stext, i + 1, 2) = ""
NextChar:
Next i

Me.[Textfeld] = stext

Ich hoffe das hilft

Nockenwelle
14.02.2001, 16:45
Hallo,

soweit ich das bisher sehen konnte ersetzt dir das Modul alles, was du willst, und sooft es vorkommt.

public function FindAndReplace(ByVal strInString As String, _
strFindString As String, _
strReplaceString As String) As String
Dim intPtr As Integer
If Len(strFindString) > 0 Then
Do
intPtr = InStr(strInString, strFindString)
If intPtr > 0 Then
FindAndReplace = FindAndReplace & Left(strInString, intPtr - 1) & _
strReplaceString
strInString = Mid(strInString, intPtr + Len(strFindString))
End If
Loop While intPtr > 0
End If
FindAndReplace = FindAndReplace & strInString
End Function

In VBA kann man es dann innerhalb einer Schleife Aufrufen. z. B.:

Set rst = dbs.OpenRecordset("Deine Tabelle", dbOpenDynaset)

While Not rst.EOF
rst.Edit
' Ersetzt %E4 durch ä
vtext = FindAndReplace(rst!en_nummer, "%E4", "ä")
'Alles, was du noch ersetzen willst
...
...
'Entfernt alle Freizeichen
rst!en_nummer = FindAndReplace(vtext, " ", "")
rst.update

wend

Cu

Mike
14.02.2001, 17:37
Hallo Sabine,
hier eine allgemeine Funktion zum Ersetzen. In eine Aktualisierungsabfrage läßt sie sich bei 'Aktualisieren:' so einbauen:

CharChange([deinFeldname];"%E4";"a")

Function CharChange(ByVal xVar As Variant, xAlt As String, xNew As String) As Variant
Dim x As Integer, P As Integer
On Error GoTo Proc_Err
If IsNull(xVar) Then CharChange = Null: GoTo Proc_Exit
If xAlt = xNew Then GoTo Proc_Exit
P = Len(xAlt)
Do
x = InStr(xVar, xAlt)
If x = 0 Then Exit Do
xVar = Left(xVar, x - 1) + xNew + Mid(xVar, x + P)
Loop

Proc_Exit:
CharChange = xVar
Exit Function

Proc_Err:
MsgBox Err.Description
Resume Proc_Exit

End FunctionMike