It’s a good idea to set your form variables to Nothing to recoverall memory that was allocated for the form module. Executing SetForm1 = Nothing for a loaded form, however, will have no apparenteffect, but will leave the form module in a confused state. Youcan demonstrate this by executing:
Form2.ShowSet Form2 = NothingForm2.ShowMsgbox Forms.Count & " loaded forms"Unload Form2Unload Form2
The second line of this code seems to do nothing, but the seconduse of Form2’s Show method will in fact load and display a secondinstance of Form2. The forms collection will know about both instances,but only one of them will be unloaded with the Unload statement.
To avoid these problems, always be sure a form is unloaded beforesetting it to Nothing. While you cannot execute Set Me = Nothing,you can achieve the same effect in a form’s Unload event:
Form_Unload (Cancel As Integer) Dim Form As Form For Each Form In Forms If Form Is Me Then Set Form = Nothing Exit For End If Next FormEnd Sub