As I learn class modules, one issue that seems to come up repeatedly involves class modules inside class modules - how the "child" class module can never see anything inside the "parent".
Say, for example, I'm writing a program involving a card game, and so I have a class module for each card, then a parent class module for the entire deck of cards. So, it makes sense that in the individual card modules I have procedures allowing me to specify the card type, such as Queen of Hearts. However, I also want to have error checking so that if the program accidentally specifies two different cards the Queen of Hearts, an error pops up. However, as the individual card modules can't "see" the deck-of-cards module or the other card modules, there is no way implement this error check in the Property Let CardName routine. You would have to make a routine inside the deck-of-cards module if you wanted to check this way, which seems messy to me and a programmer could still bypass it by specifiying the card type directly in the card class module.
Sorry if that wasn't clear enough, but what is the best way to handle situations such as this?