Private Sub Test_ErstatNoget() MsgBox ErstatNoget("Test<dfklmdfklmnl>streng") End Sub
Function ErstatNoget(s As String) As String Dim p60 As Integer Dim p62 As Integer p60 = InStr(1, s, Chr(60)) p62 = InStr(1, s, Chr(62)) ErstatNoget = Left(s, p60 - 1) & Mid(s, p62 + 1) End Function
hvis den skal finde alle i strengen, hvis der er flere forekomster, så skal den kalde sig selv igen, jeg tjekker kun på Chr(60)
Function ErstatNoget(s As String) As String Dim p60 As Integer Dim p62 As Integer Dim Rest As String p60 = InStr(1, s, Chr(60)) p62 = InStr(1, s, Chr(62)) Rest = Left(s, p60 - 1) & Mid(s, p62 + 1) If InStr(1, Rest, Chr(60)) > 0 Then ErstatNoget = ErstatNoget(Rest) Else ErstatNoget = Rest End If End Function
Der ER nemlig flere forekomster, så godt spottet kabbak. Noget går galt i denne linie, hvor jeg bliver stoppet: Rest = Left(s, p60 - 1) & Mid(s, p62 + 1)
tak for indlægget. Notatfeltet bliver desværre til et Tekstfelt, hvilket resulterer i max. 255 karakterer. Dvs. at en masse af den oprindelige tekst fra notatet forsvinder. Herudover kommer en fejl, at nogle af felter bliver til Null.
Øøøh. Har du prøvet at ændre ErstatNoget's parameter- og resultattype fra String til Variant? Er [Tabel2.2] det eneste felt, der skal ændres? I hvilken situation skal det ændres? Fra kode? I en forespørgsel? På en formular eller på en rapport?
nu er jeg jo rookie når det kommer til koder, så en ændring fra String til Variant kan jeg umuligt komme på...har lige prøvet det...og det VIRKER sørme. Super super super. Til andre der finder dette emne...her er den endelige kode:
Function ErstatNoget(s As Variant) As Variant Dim p60 As Integer Dim p62 As Integer Dim Rest As Variant
ErstatNoget = s p60 = InStr(1, s, Chr(60)) If p60 = 0 Then Exit Function
p62 = InStr(1, s, Chr(62)) Rest = Left(s, p60 - 1) & Mid(s, p62 + 1) If InStr(1, Rest, Chr(60)) > 0 Then ErstatNoget = ErstatNoget(Rest) Else ErstatNoget = Rest End If End Function
Function ErstatNoget(s As Variant) As Variant Dim p60 As Integer Dim p62 As Integer Dim Rest As Variant ErstatNoget = s p60 = InStr(1, s, Chr(60)) p62 = InStr(1, s, Chr(62)) If p62 = 0 Then Exit Function Rest = Left(s, p60 - 1) & Mid(s, p62 + 1) If InStr(1, Rest, Chr(60)) > 0 Then ErstatNoget = ErstatNoget(Rest) Else ErstatNoget = Rest End If End Function
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.