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.
The IsNull function returns a Boolean value that indicates whether a specified expression contains no valid data (Null). It returns True if expression is Null; otherwise, it returns False.
The IsEmpty function returns a Boolean value that indicates whether a specified variable has been initialized or not. It returns true if the variable is uninitialized; otherwise, it returns False.
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 by IsNull
.
Try using:
If Not IsNull(provider) Then url = url & "&provider=" & provider End if
Alternately, if that doesn't work, try:
If provider <> "" Then url = url & "&provider=" & provider End if
I see lots of confusion in the comments. Null
, IsNull()
and vbNull
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 ""
or Empty
. To test if a variable is an object, use IsObject
and to see if this object has no reference test on Is 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 on Nothing
.
snippet to mix and match in your code:
If IsObject(provider) Then If Not provider Is Nothing Then ' Code to handle a NOT empty object / valid reference Else ' Code to handle an empty object / null reference End If Else If IsEmpty(provider) Then ' Code to handle a not initialized variable or a variable explicitly set to empty ElseIf provider = "" Then ' Code to handle an empty variable (but initialized and set to "") Else ' Code to handle handle a filled variable End If End If
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With