Botón de cancelar en ventana modal

Resuelto
ButteDuLac Mensajes publicados 534 Estado Miembro -  
ButteDuLac Mensajes publicados 534 Estado Miembro -
Hola,

En Access 2010, he creado una ventana modal que me sirve para añadir un registro a una tabla de lista (vinculada a un campo de una tabla madre).

Hay un botón Aceptar y un botón Cancelar. Estos dos botones son insertados automáticamente por Access.

El botón Cancelar debería, en teoría, cancelar el nuevo registro creado, pero no funciona. Al hacer clic en Aceptar o en Cancelar, es lo mismo, el registro se ha guardado.

¿Cómo puedo solucionar esta situación tan molesta?

¡Gracias!

2 respuestas

  1. le meruvien Mensajes publicados 1414 Estado Miembro 44
     
    Hola,
    Aparentemente, no conoces el VBA y el código.
    Entonces, a partir del formulario normal, no puedes hacer nada, debes ponerlo en modo creación, y ahí, seleccionas tu botón de cancelar, y en la ventana de propiedades, asegúrate bien de si la acción "al hacer clic" está asociada a un procedimiento. En este procedimiento debes ver:
    Forms![nombre del formulario].Undo
    o
    DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
    0
    1. ButteDuLac Mensajes publicados 534 Estado Miembro 41
       
      Ese es precisamente el problema. Si pudiera VER el código, podría verificarlo. Pero solo veo la ventana de la Macro (generador de macro) y no encuentro cómo mostrar el código.
      Si selecciono el botón y hago clic en Visualizar el código, aparece el código del formulario (todo lo que veo es Opción Comparar Base de Datos)
      Si hago clic en el botón del generador (los ...) a la derecha del área "Al hacer clic" en la ventana de propiedades del botón, obtengo la macro asociada al botón, pero todo lo que veo como operación es "Cerrar ventana" y "Guardar: con confirmación", como se describe en mi pregunta. He intentado cambiar a "Guardar: no", pero no da resultado.
      Me gustaría poder verificar los códigos y cambiarlos si es necesario, pero en esta situación precisa, no puedo acceder, no entiendo cómo hacerlo... incluso he intentado hacer clic derecho en el botón y “Crear código de evento”, pero también llego a la ventana del generador de macro.
      0
    2. le meruvien Mensajes publicados 1414 Estado Miembro 44
       
      Lo siento, desafortunadamente no conozco Access 2010, me quedé en el 2003
      Roger
      0
    3. ButteDuLac Mensajes publicados 534 Estado Miembro 41
       
      ¡Ah, vale! Gracias por intentar.
      Finalmente, eliminé por completo la macro, luego la reemplacé por una macro de Cancelar grabación, terminada con CerrarVentana, ¡y ahí funciona! Al principio, creía que no, pero es que aún no había introducido datos. Después de una prueba en una copia de prueba de mi BBDD, ¡funciona!
      0
    4. ButteDuLac Mensajes publicados 534 Estado Miembro 41
       
      ¡Ups!
      Hay un pequeño error. Si abro la ventana y no ingreso ningún registro, si hago clic en Cancelar, ocurre un error y Access me pregunta si quiero detener la macro.
      Para mí no hay problema, pero para el usuario que no tiene ningún conocimiento de programación (¡peor que yo!), ¡será un galimatías!
      Hay un botón X para cerrar la ventana, pero la gente a menudo tiene el reflejo de presionar OK o Cancelar.
      ¿Hay alguna manera de solucionar esto, ya sea en código o de otra manera?
      0
    5. castours > ButteDuLac Mensajes publicados 534 Estado Miembro
       
      Hola
      Para ver el código del botón, intenta ponerte en modo de creación, luego ve a tu botón, haz clic en él, luego en propiedades, luego en eventos. Deberías tener el procedimiento en clic.
      0
  2. Tessel75
     
    Hola,
    Me di cuenta hace bastante tiempo que las versiones recientes de Access ya no permiten "ver" las macros asociadas a los botones preconstruidos.
    Para salir de esta dificultad, el único medio que conozco es no usar este tipo de botón, sino colocar botones de indistintos y agregarles macros de construcción propia. La ventaja, además, es que es posible posteriormente convertir las macros en código VBA, y así aprender progresivamente cómo se escribe directamente código.
    0
    1. ButteDuLac Mensajes publicados 534 Estado Miembro 41
       
      ¡Aaaah! Eso es lo que hice. Bueno, eso no me permite cerrar la ventana, pero al menos, si hago clic en mi nuevo botón "Cancelar registro" ;) sin haber ingresado previamente datos, Access me avisa que la acción Cancelar un registro no está disponible por el momento, pero no me pide que detenga la macro. Creo que cualquiera podrá entender eso! ¡Es genial! ¡Gracias por guiarme hacia la autoconstrucción de mi botón, solo necesitaba un poco de confianza! :D
      0