You can do this without using public variables.
There seems to be a difference between show / hide and load / unload.
If you hide the form while it is loading, it will not be cleared, so you can refer to the state of the controls in the form.
For example, I used a date picker (called DTPicker1 ) on the form, my code in the module looks something like this:
Dim NewDay As Date Load FrmDayPicker FrmDayPicker.Show NewDay = FrmDayPicker.DTPicker1.Value Unload FrmDayPicker Debug.Print NewDay
In your form, you can simply use Me.Hide instead of Unload Me , and this should work
source share