I have the following VBScript in a Classic ASP page:
function getMagicLink(fromWhere, provider)
dim url
url = "magic.asp?fromwhere=" & fromWhere
If Not provider is Nothing Then ' Error occurs here
url = url & "&provider=" & provider
End if
getMagicLink = "<a target='_blank' href='" & url & "'>" & number & "</a>"
end function
I keep getting an "Object Required" error messager on the line that says If Not provider Is Nothing Then
.
Either the value is NULL, or it's not NULL, so why am I getting this error?
Edit: When I invoke the object, I pass in either NULL, or I pass in a string.
From your code, it looks like
provider
is a variant or some other variable, and not an object.Is Nothing
is for objects only, yet later you say it's a value that should either be NULL or NOT NULL, which would be handled byIsNull
.Try using:
Alternately, if that doesn't work, try:
I see lots of confusion in the comments.
Null
,IsNull()
andvbNull
are mainly used for database handling and normally not used in VBScript. If it is not explicitly stated in the documentation of the calling object/data, do not use it.To test if a variable is uninitialized, use
IsEmpty()
. To test if a variable is uninitialized or contains""
, test on""
orEmpty
. To test if a variable is an object, useIsObject
and to see if this object has no reference test onIs Nothing
.In your case, you first want to test if the variable is an object, and then see if that variable is
Nothing
, because if it isn't an object, you get the "Object Required" error when you test onNothing
.snippet to mix and match in your code:
I will just add a blank ("") to the end of the variable and do the comparison. Something like below should work even when that variable is null. You can also trim the variable just in case of spaces.