15. januar 2004 - 13:00Der er
7 kommentarer og 2 løsninger
Streng sammenligning
Jeg sidder og fedter med en funktion som skal kunne sammenligne to strenge, men får en fejl når den ene streng (eller begge) indeholder Null - er der en anden metode som er nemmere og som virker ?
Function StrForskellig(strNEW As String, strOLD As String) As Boolean If IsNull(strOLD) Or IsNull(strNEW) Then If IsNull(strOLD) And IsNull(strNEW) Then StrForskellig = False If IsNull(strOLD) And Not IsNull(strNEW) Then StrForskellig = True If Not IsNull(strOLD) And IsNull(strNEW) Then StrForskellig = True Else If Len(strOLD) <> Len(strNEW) Then StrForskellig = True Else If StrComp(strOLD, strNEW, vbTextCompare) <> 0 Then StrForskellig = True Else StrForskellig = False End If End If End If End Function
jo det har jeg også tænkt på, men det skulle vel så gøres inden funktionen kaldes, og det er ikke acceptabelt. Jeg har behov for at kunne kalde en sammenligningsfunktion som kan acceptere strenge med eller uden indhold
Det lyder ellers snedigt, men selvom jeg har lavet funktionen om som nedenstående får jeg en fejl når jeg kalder funktionen når den ene streng er Null - hvad gør jeg forkert ?
Function StrForskellig(strNEW As String, strOLD As String) As Boolean If IsNull(strOLD) Then strOLD = "NULL" If IsNull(strNEW) Then strNEW = "NULL"
If StrComp(strOLD, strNEW, vbTextCompare) <> 0 Then StrForskellig = True Else StrForskellig = False End If
Oh, nu tror jeg at jeg er med. Du får selvfølgelig en fejl, når du forsøger at sende NULL ind i en streng parameter. Du kan ændre lidt på funtionshovedet:
Function StrForskellig(strNEW As Variant, strOLD As Variant) As Boolean If IsNull(strOLD) Then strOLD = "NULL" If IsNull(strNEW) Then strNEW = "NULL"
If StrComp(CStr(strOLD), CStr(strNEW), vbTextCompare) <> 0 Then StrForskellig = True Else StrForskellig = False End If End Function
selvfølgelig - Super jeg takker mange gange for hjælpen
Synes godt om
Ny brugerNybegynder
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.