htillberg
asked on
How is this handling a null....and how can I fix it?
I am borrowing this function that was created in VBscript/ASP
Private Function MkPhoneNum(byVal number)
Dim tmp
number = CStr( number )
number = Trim( number )
number = Replace( number, " ", "" )
number = Replace( number, "-", "" )
number = Replace( number, "(", "" )
number = Replace( number, ")", "" )
Select Case Len( number )
Case 7
tmp = tmp & Mid( number, 1, 3 ) & "-"
tmp = tmp & Mid( number, 4, 4 )
Case 10
tmp = tmp & "(" & Mid( number, 1, 3 ) & ") "
tmp = tmp & Mid( number, 4, 3 ) & "-"
tmp = tmp & Mid( number, 7, 4 )
Case 11
tmp = tmp & Mid( number, 1, 1 ) & " "
tmp = tmp & "(" & Mid( number, 2, 3 ) & ") "
tmp = tmp & Mid( number, 5, 3 ) & "-"
tmp = tmp & Mid( number, 8, 4 )
Case Else
MkPhoneNum = Null
Exit Function
End Select
MkPhoneNum = tmp
End Function
However, when I pass a null field through it, it results in the following error:
Microsoft VBScript runtime error '800a005e'
Invalid use of Null: 'CStr'
on line 6...which is the line where it defines
number = CStr( number )
any suggestions for how to fix this to just leave null cases blank????
Thanks!
Private Function MkPhoneNum(byVal number)
Dim tmp
number = CStr( number )
number = Trim( number )
number = Replace( number, " ", "" )
number = Replace( number, "-", "" )
number = Replace( number, "(", "" )
number = Replace( number, ")", "" )
Select Case Len( number )
Case 7
tmp = tmp & Mid( number, 1, 3 ) & "-"
tmp = tmp & Mid( number, 4, 4 )
Case 10
tmp = tmp & "(" & Mid( number, 1, 3 ) & ") "
tmp = tmp & Mid( number, 4, 3 ) & "-"
tmp = tmp & Mid( number, 7, 4 )
Case 11
tmp = tmp & Mid( number, 1, 1 ) & " "
tmp = tmp & "(" & Mid( number, 2, 3 ) & ") "
tmp = tmp & Mid( number, 5, 3 ) & "-"
tmp = tmp & Mid( number, 8, 4 )
Case Else
MkPhoneNum = Null
Exit Function
End Select
MkPhoneNum = tmp
End Function
However, when I pass a null field through it, it results in the following error:
Microsoft VBScript runtime error '800a005e'
Invalid use of Null: 'CStr'
on line 6...which is the line where it defines
number = CStr( number )
any suggestions for how to fix this to just leave null cases blank????
Thanks!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Nice suggestions. The new code by nauman still kept returning the same error though. However, modifying the number line did the trick. Thanks so much!@!!!
Example:
Dim MyVar As Object
Dim MyCheck As Boolean
MyCheck = IsDBNull(MyVar) ' Returns False.
MyVar = ""
MyCheck = IsDBNull(MyVar) ' Returns False.
MyVar = System.DBNull.Value
MyCheck = IsDBNull(MyVar) ' Returns True.
MsgBox(MyCheck)
--------------------------
Private Function MkPhoneNum(byVal number)
if IsDbNull(number) then
throw ArgumentNullException("num
else
Dim tmp
number = CStr( number )
number = Trim( number )
number = Replace( number, " ", "" )
number = Replace( number, "-", "" )
number = Replace( number, "(", "" )
number = Replace( number, ")", "" )
Select Case Len( number )
Case 7
tmp = tmp & Mid( number, 1, 3 ) & "-"
tmp = tmp & Mid( number, 4, 4 )
Case 10
tmp = tmp & "(" & Mid( number, 1, 3 ) & ") "
tmp = tmp & Mid( number, 4, 3 ) & "-"
tmp = tmp & Mid( number, 7, 4 )
Case 11
tmp = tmp & Mid( number, 1, 1 ) & " "
tmp = tmp & "(" & Mid( number, 2, 3 ) & ") "
tmp = tmp & Mid( number, 5, 3 ) & "-"
tmp = tmp & Mid( number, 8, 4 )
Case Else
MkPhoneNum = Null
Exit Function
End Select
MkPhoneNum = tmp
end if
End Function
HTH, nauman