ok, so, i've added error handling into your report open event. what it is doing now is returning a total of 11 errors throughout your code in access 2007 (most of them from Detail_Format).
i may not know much about record sets, but one rule of thumb is to ALWAYS have an error handler. please see attached for error-handling added to your sample, and a screenshot of all the error messages (saved in order of them appearing). the last error triggered on Report_Close.
most of them were error #91 - Object variable or With block variable not set.
and i don't know what that means, but at least you have another few clues as to what might be going on.
i'd say access 2007 is probably less forgiving of incorrect/sloppy/rushed code, so look at this as a good thing, where you will learn the correct method of performing what it is you want to perform.
that's my 2c.