Avatar billede bodyguard Nybegynder
19. januar 2011 - 14:04 Der er 5 kommentarer og
1 løsning

Format af telefon nr. fejl...

Hej Experter,

Troede jeg havde fundet en holdbar løsning, men ak nej :)

Scriptet virker super så længe der er data i basen men hvis ikke får jeg denne fejl:
Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'replace'



Jeg har selv prøvet at afhjælpe problemet men uden held...


Function FormaterTelefonnr(telefonnr)
  dim normTlfnr
  normTlfnr = replace(telefonnr, " ", "")
  FormaterTelefonnr = left(normTlfnr,2) & " " & _
        mid(normTlfnr, 3, 3) & " " & _
        mid(normTlfnr, 6, 3)
End function
Avatar billede softspot Forsker
19. januar 2011 - 14:10 #1
Med lidt grænsetjek:

Function FormaterTelefonnr(telefonnr)
  dim normTlfnr
  normTlfnr = replace(telefonnr, " ", "")
  if len(normTlfnr) = 8 then
    FormaterTelefonnr = left(normTlfnr,2) & " " & _
          mid(normTlfnr, 3, 3) & " " & _
          mid(normTlfnr, 6, 3)
  else
    FormaterTelefonnr = telefonnr
  end if
End function
Avatar billede claes57 Ekspert
19. januar 2011 - 14:22 #2
du skal tjekke på null før du bruger replace.

Function FormaterTelefonnr(telefonnr)
  dim normTlfnr
  if not isnull(telefonnr) then
    normTlfnr = replace(telefonnr, " ", "")
    FormaterTelefonnr = left(normTlfnr,2) & " " & _
        mid(normTlfnr, 3, 3) & " " & _
        mid(normTlfnr, 6, 3)
  else
    FormaterTelefonnr = " "
  end if
End function
Avatar billede softspot Forsker
19. januar 2011 - 14:33 #3
Der skulle måske lige tilføjes en lille typekonvertering i den kode jeg viste tidligere:

Function FormaterTelefonnr(telefonnr)
  dim normTlfnr
  normTlfnr = replace(telefonnr, " ", "")
  if len(normTlfnr & "") = 8 then
    FormaterTelefonnr = left(normTlfnr,2) & " " & _
          mid(normTlfnr, 3, 3) & " " & _
          mid(normTlfnr, 6, 3)
  else
    FormaterTelefonnr = telefonnr & ""
  end if
End Function[/div]
Det skulle også tage hånd om evt. null-værdier, samtidig med der checkes for, om telefonnummeret har den korrekte længde til at lave den strengbehandling (slice and dice) der ønskes... :-)
Avatar billede softspot Forsker
19. januar 2011 - 14:34 #4
Ups! Typekonverteringen skulle ligge lidt tidligere:

Function FormaterTelefonnr(telefonnr)
  dim normTlfnr
  normTlfnr = replace(telefonnr & "", " ", "")
  if len(normTlfnr) = 8 then
    FormaterTelefonnr = left(normTlfnr,2) & " " & _
          mid(normTlfnr, 3, 3) & " " & _
          mid(normTlfnr, 6, 3)
  else
    FormaterTelefonnr = telefonnr & ""
  end if
End Function
Avatar billede bodyguard Nybegynder
20. januar 2011 - 15:46 #5
Super kom med et svar softspot :)
Avatar billede softspot Forsker
20. januar 2011 - 15:50 #6
Velbekomme :-)
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
Kurser inden for grundlæggende programmering

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