Botones Access no funcionan al reabrir formulario

Access y sus cosar raras. En esta ocasión si que no tengo ni idea. He creado dos botones en la ventana de diseño para borrar y para guardar entrada de formulario. Bien, creándolo en la ventana de diseño y volviendo al formulario, funciona sin problema. Pregunta si Guarda/Borra entrada y cierra el formulario.

Al reabrir el formulario, y pinchar en uno de los dos botones, guarda la entrada, sin preguntar (incluso dando a borrar entrada) y cierra la ventana.
No hay ningún macro más que pueda estar interfiriendo (que yo haya creado) y no entiendo por qué.

1 respuesta

Respuesta
2

Habría que saber en que evento has puesto las instrucciones, así como las propias instrucciones.

¡Gracias! :)
Pues el evento "On Click" [Embebbed Macro]; nada disparatado (Aparentemente)

Nada, ya entiendo lo que pasa. Obviamente, cuando relleno el formulario, se genera una nueva entrada. Aunque se cierre, la entrada se ha generado. 
Como solución, lo unico que he encontrado es comando borrar registro; el problema es que el formulario tiene subformularios, y aunque yo borre el registro del formulario, si hay alguna información en los subformularios, se queda guardada. 


Debí exigir integridad referencial cuando diseñé las tablas; ahora ya no me deja cambiarlo al haber mil formularios y consultas. 

Da exactamente igual. Vamos a suponer que en las tablas origen del formulario y del subformulario tienen un campo común, por ejemplo, EventId o CostumerId, o lo que sea. En el evento Al hacer clic del botón Eliminar crea un procedimiento de evento y entre Private Sub y End Sub puedes poner

docmd.runsql"delete * from tablaorigendelsubformulario where eventid=" & me.eventid & ""

Docmd.runsql"delete * from tablaorigendelformulario where eventid=" & me.eventid & ""

Me. Refresh

Me explico, la primera instrucción te borra aquellos registros de la tabla origen del subformulario que en el campo EventId tenga el mismo valor que figura en el control EventId del formulario. Luego te elimina ese registro del formulario y te "refresca" el formulario.

¡Gracias! Sin embargo me borra todos los registros. Así que imagino que el problema son los criterios. He puesto:
Where Event_ID=" & me.Event_ID & ""
Ese "me." tengo que sustituirlo por algo??
Es un campo numérico, si eso te dice algo??

La palabra Me equivale a nombre del formulario. Por eso cuando dices

Me. Event_id en realidad estás diciendo control Event_id del formulario Clientes

Otra forma, cuando quieres decirle que el origen del formulario sea... se le dice

me.recordsource=....

Que equivale a Formulario Clientes. Origen de registros

Por otro lado cuando un control o variable es numérico es

....=" & me.event_id & ""

Es decir comillas & y cierra & comillas comillas

Si el control o variable es texto sería

....='" & me.event_id & "'"

Es decir apostrofe comillas & y cierra & comillas apostrofe comillas

Si el control o la variable es tipo fecha sería

....= #" & me.event_id & "#" 

¡Gracias! Conseguí hacer esto a través del Macro Builder. Ahora solo me falta crear una msgbox con opciones, lo cual no me deja hacer a través del macro builder, pero algo es algo. :) Gracias por tu ayuda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas