Avatar billede coolcard Nybegynder
26. marts 2003 - 09:50 Der er 8 kommentarer og
1 løsning

Erstat \"

Hej Eksperter jeg har brugt Terry's søg er stat funktion(nedenfor)  og den virker fint blot ikke når jeg skal erstatte tegnet
\" (Char(34)). Ligeledes ville det være snedigt hvis funktionen tog højde for evt. tomme tekst felter.

Her er min kode som den ser ud nu :

Public Function erstat(MyStr As String, cIn As String, cOut As String) As String
Dim tmpStr As String
Dim i As Integer
Dim j As Variant
Dim test As String

tmpStr = MyStr
    For i = 1 To Len(tmpStr)
        j = InStr(i, tmpStr, cIn, vbBinaryCompare)
        If Not IsNull(j) And j > 0 Then
            Mid(tmpStr, j) = cOut
        End If
    Next i
    erstat = tmpStr

End Function

Funktionen kaldes fra et query :
UPDATE Pakketrans SET
Pakketrans.NAVN1 = erstat(NAVN1,"a","1");



TAKKER
Lasse
26. marts 2003 - 09:52 #1
hvilken version af Access bruger du?
26. marts 2003 - 09:56 #2
Fra Access 2000 findes der jo allerede en Replace-funktion:

Replace(MyStr, cIn, cOut)
26. marts 2003 - 10:02 #3
Ellers virker nedenstående også med \:

Public Function mieReplace(Streng As String, Find As String, Erstat As String) As String
    On Error Resume Next
    Dim Pos As Integer, findpos As Integer
    Dim tmpStr As String
    Pos = 1
    If Len(Streng) = 0 Then
      mieReplace = Streng
      Exit Function
    End If
    tmpStr = Streng
    Do
        findpos = InStr(Pos, tmpStr, Find)
        If findpos <> 0 Then
            tmpStr = Left(tmpStr, findpos - 1) & Erstat & Mid(tmpStr, findpos + Len(Find))
            Pos = Pos
        Else
            Pos = Pos + 1
        End If
    Loop Until Pos = Len(Streng)
    If Err Then
      mieReplace = Streng
    Else
      mieReplace = tmpStr
  End If
End Function
Avatar billede coolcard Nybegynder
26. marts 2003 - 12:01 #4
>Thomas det tegn den skal erstatte er " og ikke \ jeg kigger ligempå replace funktionen da det er 2000 jeg kører
26. marts 2003 - 12:08 #5
Både Replace og mieReplace kan bruges...det kræver at du bruger en lidt sjov syntaks, hvis du gør det direkte i debug-vinduet (f.eks. """" for ant angive ")

Men hvis du bruger den i en forespørgsel eller udelukkende bruger variable, så fungere begge funktioner fint.

/Thomas
Avatar billede coolcard Nybegynder
26. marts 2003 - 14:28 #6
>Thomas
Ja det virker fint blot ikke med denne " i update queryet:
UPDATE Pakketrans SET Pakketrans.NAVN1 = miereplace("NAVN1","""","X"); eller
UPDATE Pakketrans SET Pakketrans.NAVN1 = miereplace("NAVN1",chr(34),"X");

Hvad er det lige jeg gør galt ?
Avatar billede terry Ekspert
27. marts 2003 - 13:21 #7
isnt there a function in Access (VBA) replace()?
Avatar billede terry Ekspert
27. marts 2003 - 13:22 #8
Sorry Thomas, I see you have suggested this already :o)
Avatar billede coolcard Nybegynder
27. marts 2003 - 18:37 #9
Hej Thomas pointene er dine da replace fungerer fint!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester