en el proceso de simplificar Botones en mis Formularios, he quitado Botones de los que habia puesto y he añadido un Boton con la "Accion" Guardar, para tenerlo al menos, en los Forms que no ponga la Barra de Navegacion Prederteminada(para tener visibles, el Icono Prismaticos, para realizar posibles Busquedas de Registros, y quizas el de Actualizar Controles(para cuando introduzca algun dato nuevo en la tabAuxilar, y poder tenerlo disponible en el Control correspondienteen el momento de estar usando ese Form, por ejemplo en el FormSociasAlta)
Me he dado cuenta, que si por error, pulso el Boton Cerrar Formulario, sin haber previamente pulsado el Boton "Guardar" el formulario se cierra directamente sin guardar los cambios hechos en los registros, y se me ha ocurrido "adaptar" el Macro de CerrarBD(que si pregunta si deseas guardar los cambios en los Forms antes de cerrarlos) para usarlo en el boton de Cerrar Formulario y que se abra la ventana de dialogo "El formulario actual ha cambiado".
He intentado encontrar entre los Macros de OpenOficce el que hace esa funcion , pero no he sido capaz de encontrarlo(creo que tiene algo que uno que es "StoreForm" pero no he querido arriesgar, ya que en el codigo del Macro CerrarBD solo pone "Store"
Código: Seleccionar todo
If ThisDatabaseDocument.isModified = True Then ThisDatabaseDocument.Store
El problema lo tengo en la asignacion de Macros a dos de las Opciones.
Si no ando muy descaminado deberia quedar asi:
1- en la opcion (6), "Si", para guardar los cambios y cerrar el Formulario, se usaria el propio codigo del Macro CerrarBd
Código: Seleccionar todo
If opcion = 6 Then If ThisDatabaseDocument.isModified = True Then ThisDatabaseDocument.Store
ThisDatabaseDocument.CurrentController.CloseSubComponents() 'Cierra todos los formularios y pregunta si guarda los datos
Código: Seleccionar todo
ElseIf opcion = 7 Then '(ThisDatabaseDocument.Store) SUSTITUIR POR CERRAR SIN GUARDAR
Código: Seleccionar todo
ElseIf opcion = 2 Then '(ThisDatabaseDocument.Store) SUSTITUIR CERRAR MSGBOX SIN CERRAR FORMULARIO
Código: Seleccionar todo
'****** MACRO PARA Cerrar Forms Preguntando *******************
Sub CerrarFormPreguntando()'Poner en el botón para Cerrar Formulario
Dim opcion As integer
opcion = MsgBox ("¿El contenido del formulario actual ha cambiado, deseas guardar los cambios?",35,"Opcion Cerrar Formulario")
If opcion = 6 Then
If ThisDatabaseDocument.isModified = True Then ThisDatabaseDocument.Store
ThisDatabaseDocument.CurrentController.CloseSubComponents() 'Cierra todos los formularios y pregunta si guarda los datos
ElseIf opcion = 7 Then '(ThisDatabaseDocument.Store) SUSTITUIR POR CERRAR SIN GUARDAR
ElseIf opcion = 2 Then '(ThisDatabaseDocument.Store) SUSTITUIR CERRAR MSGBOX SIN CERRAR FORMULARIO
End if
End Sub
Un saludo y gracias