none
Cómo controlar el mensaje "¿Desea guardar los cambios en el diseño de formulario...?" en el control Navegación de Access 2010 RRS feed

  • Pregunta

  • Buenas,

    Estoy explorando la posibilidad de utilizar el nuevo control de Navegación de Access 2010 para crear un formulario que constituya el sistema de navegación principal de la aplicación integrando en él los diferentes formularios que constituyen la interfaz de usuario.

    Antecedentes sobre cómo opera Access con los formularios "Hoja de datos" y "Subformularios:

    Cuando abrimos cualquiera de estos formularios, ya sea desde el propio escritorio de Access o mediante Docmd.OpenForm... y modificamos aspectos del diseño (ancho de las columnas o posición de las mismas), los cambios se guardan al cerrar el formulario sin hacer preguntas. Si el formulario tuviera un "Subformulario", y en el encabezado tuviéramos un botón para salir del mismo, podríamos cerrarlo sin almacenar los cambios con Docmd.Close ,, AcSaveNo. Pero lo importante es que la modificación de aspectos como el ancho de las columnas o la alteración del orden de las mismas, no provoca ningún tipo de mensaje. Podéis probarlo.

    Lo que me sucede al incluir formularios de "Hoja de datos" en el control Navegación de Access 2010:

    He creado un formulario con un control de Navegación y he incluido en sus múltiples botones todos los formularios que constituyen la interfaz de usuario. Todo muy simple. Proceso el formulario de Navegación y navego por los diferentes formularios sin problemas. Cuando accedo a alguno de tipo "Hoja de datos" y modifico algún aspecto del diseño (ancho de las columnas o posición de las mismas), e intento abandonarlo para desplazarme a otro formulario, aparece el mensaje: "¿Desea guardar los cambios en el diseño de formulario...?" y te obliga a contesar a la pregunta.

    He intentado controlar el mensaje en el formulario "Hoja de datos" afectado mediante los eventos Deactivate, Unload y Close y no lo consigo. El mensaje se produce ANTES que estos eventos, por lo que no es posible interceptarlo. Como si fuera un error gestionado por el propio Access.

    He intentado controlar el mensaje desde los eventos del control Navegación, concretamente desde el evento Exit del subformulario del control Navegación, y no es posible. He intentado localizar alguna propiedad exclusiva de los controles Navegación que me permita controlar esto y no he localizado nada. No consigo controlar o evitar este mensaje.

    No puedo creer que una solución tan brillante y sencilla tenga un problema tan obvio. No puede haber superado los tests de desarrollo de Microsoft. Algo se me escapa.

    Alguien tiene una sugerencia?

    Gracias por vuestro tiempo.

    martes, 18 de marzo de 2014 16:33

Respuestas

  • Buenas,

    Ya que el mensaje no puede ser gestionado mediante eventos ni propiedades, podemos concluir que el mensaje es gestionado por Access y, por tanto, un mensaje de advertencia.

    Podemos responder afirmativamente a los mensajes generados por Access mediante Docmd.SetWarnings False.

    Esta no es la verdadera solución al problema, ya que, si el usuario consigue cerrar la aplicación eludiendo el control de salida establecido por el programador (un botón de salida, evento Close, etc.), la aplicación Access quedaría configurada con las advertencias desactivadas.

    Saludos.

    • Marcado como respuesta t102715 viernes, 28 de marzo de 2014 9:30
    viernes, 28 de marzo de 2014 9:29