RE:controlar el cierre del formulario
Para cerrar un formulario, lo haces por el cásico ALT-F4 o el clic en la "X", también existe el método o instrucción Unload.
Ahora, para detectar que el formulario se está cerrando, está el evento Unload del Form
En este evento se usa una variable llamada Cancel, de tipo entero, si a esta variable le das el valor de 1, el formulario no se cierra, si le das un valor de 0, el formulario se cierra
Asi que para controlar el cerrado de un formulario, pon en este evento una condición para que controles el cerrado... por ejemplo
Private Sub Form_Unload(Cancel As Integer)
If QuieresCerrar then
Cancel = 0
' el formulario se quita
Else
Cancel = 1
' el formulario no se quita
End If
End Sub
Te pongo lo que dice la ayuda acerca de "Cancel": Un entero que determina si el formulario se quita de la pantalla. Si cancelar es 0, el formulario se quita. Establecer cancelar a cualquier valor distinto de cero impide que el formulario se quite
Espero esto te sea útil, saludos.