Anahis:
Nunca en esta, ni en otra vida utilices la instrucción END para finalizar un programa. Es un error común, lo he visto en libros muy serios, pero es un error. La instrucción End es heredada de QBasic, junto con instrucciones cono goto gosub, put, get, print y otras. Debería utilizarse sólo cuando se quiere salir de un programa sin formularios y luego de descargar hasta el último objeto. El hecho es que sale de la función sin terminar nada, deja todo en memoria sin posibilidar de acceder a ella de nuevo, al menos no sin utilizar el API. Te paso una nota que está en el MSDN acerca de la instrucción END, está en la ayuda de la instrucción y es una de esas notas que nadie lee:
"Nota La instrucción End detiene la ejecución bruscamente, sin llama a los eventos Unload, QueryUnload o Terminate, o cualquier otro código Visual Basic. El código que ha colocado en los eventos Unload, QueryUnload y Terminate de losformularios ymódulos de clase no se ejecuta. Se destruyen los objetos creados desde módulo de clase, se cierran los archivos abiertos utilizando el método Open y se libera la memoria utilizada por el programa. Se invalidan las referencias de objetos mantenidas por otros programas. "
"La instrucción End proporciona una manera de forzar la detención de un programa. Para la finalización normal de un programa Visual Basic, debe descargar todos los formularios. El programa se cierra en cuanto no haya otros programas que mantienen referencias a objetos creados en los módulos de clase públicos y se ejecute ningún código."
Resumiendo, para finalizar una aplicación, cerrás hasta el último formulario, vacias todas las imágenes en controles picturebos e image, cerrás todas las bases de datos, eliminas todos los objetos y el programa se cierra solo.
Saludos Ruri