URGENT : How to determine is an object has been initialied

I have a class which I declare as

Dim cls as MyClass

Then later in the program,

Private Sub MySub()
 Set cls = new MyClass

End Sub

In another part of the program,

Private Function MyFunction(id)

  if cls = nothing then
     call MySub
  end if


End Function

THE LINE "IF CLS = NOTHING" is wrong ... how do I correctly frame it ? How do I determine if cls has been properly initialised or has been simply declared as an object ?

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Guy Hengel [angelIII / a3]Billing EngineerCommented:
 if cls IS nothing then
     call MySub
  end if
Hello dwe0608,

you could use
If cls Is Nothing Then

end if

hope this helps a bit
Function IsObject will tell you if a variable is an object, bul will return true if it is set to nothing
the other solusions above will return an object required error.

My suggestion is the function TypeName that will return the string "nothing" when de variable has not been set and will return your class name when it has been set.

if TypeName(cls)="YourClassName" then ....

the next code will show you how it works, is a new project with a class added to it.
Dim myvar As Class1
Private Sub Form_Load()
 Debug.Print TypeName(myvar)    'Prints nothing in debug panel
 Set myvar = New Class1
 Debug.Print TypeName(myvar)  'prints Class1 in debug panel
End Sub



Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.