There have been no changes to Access that would have "broken" global variables, so that change must represent some structural difference. The ways folks USUALLY accomplish data sharing across forms and/or reports is
a) global variables in a general module or a user-defined class - very large numbers of variables possible, no constraint on data type except possible size limits for the module as a whole.
b) a hidden form with unbound text-box controls - large number of variables but might be constrained as to number and type of values; cannot do the same thing with a report, though.
c) TempVars - up to 255 variables, each of which is named but must be a numeric type or text; cannot be objects or data structures
d) A named dictionary object - can store any object except an array
e) open a single-record recordset to be used for temp storage - up to 255 variables, cannot be objects or arrays, total characters in a record is constrained to 4K bytes, may have sharing constraints if multiple writers
There might be other ways to do this, but the above should cover most of the common ways.