View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Art Art is offline
external usenet poster
 
Posts: 587
Default Scripting Dictionary in a class instance

OOPS! Never mind -- I'm stupid.

What I was doing, and I didn't put enough in my post to let anyone see it was:

I had some of the code in a "with block", specifically "with Parent". When
I recalled an old Parent from the scripting dictionary, I was still in the
with block. So the "dotted" fields still referred to the previous Parent,
not the one I just
retrieved.

I can't believe how long it took me to find that! I appreciate the time any
of you took in reading through my, unfortunately incomplete, question.


"Art" wrote:

Hi,

I'm having a weird problem -- maybe it's me. I've set up a class. Each
instance will be stored in a scripting dictionary. Each instance will also
contain 3 other scirpting dictionaries for various purposes.

The class is called Parent

In the Initialize statement I have:
Set mAvailableAccounts = CreateObject("Scripting.Dictionary")
mAvailableAccounts.RemoveAll
Set mReceivedAccounts = CreateObject("Scripting.Dictionary")
mReceivedAccounts.RemoveAll
Set mChildren = CreateObject("Scripting.Dictionary")
mChildren.RemoveAll

In the main routine I create a new Parent. Put in the fields needed to
create a key. Check the dictionary that stores these Parents, looking for
the key. If I find one, I set Parent=nothing, and then set Parent =
Dictionary(Key).

When I do this, it appears that the 3 dictionaries within that "retrieved"
instance are being reset to contain no elements.

Am I doing something wrong -- that you can tell from the info I've listed?
Are scripting dictionaries within classes somehow static and not specific to
an instance?

Any help would be appreciated.