The first thing for you to do is accept that if you code
then the value of variable ACCESS is 'I ' -- period. There is nothing that will change this fact.
The second thing for you to do is to accept that if you are doing
after the previous code, and the value is NOT 'I ' then something
in your program has changed that value. This, too, is a fact.
The third thing for you to do is to start looking at your code for where you change the value of ACCESS. It almost certainly will not be easy to locate, but that is the nature of storage violations. You might try using compiler option SSRANGE for a start.