Okay this is what I have done. It seems to work but I just want to make sure I have correctly written the code and that it is as "cllean" as possible so that I can cover all eventualities.
Basically what happens now is that if a person choosen yes to question 1, questions 2,3, or 4 appear which they are required to fill out, otherwise they are invisible and the value 99 is put in their box on the table. Since the recode for question 2 depends on the value of question 2, which in turn depends on Question 1, then I put in the statement Me.Q2ClevelandRC = 0 when Q1 is not equal to 0 (yes) (and therefore question 2-4 are invisible).
I then put an after update event on Question 2 using select case statement to produce a value for Q2ClevelandRC. This will therefore only be active when question 2 is visible, since Q2 cannot be updated unless it is visible.
If however they change their mind and make question 1 = yes. Question 2,3 and 4 are updated and their value is now null. They will then be required to answer those questions then causing the after update event of those questions to produce the recoded value.
Does this make sense?