My personal preference would be to use a custom form property. You can create properties in forms just as you would in a class module. The main benefit here is that the forms remain self-contained and you don't need a separate module to hold public variables.
The properties are accessed the same way as for normal form properties, eg
VB Code:
frmMain.MyProperty = strWhatever
Oh, and by the way, you can reference a form's custom property with needing to have the form loaded and accessing the property will NOT cause the form to load.
Very useful IMHO.
Pete
No trees were harmed in the making of this post, however a large number of electrons were greatly inconvenienced.