Deshacer lo grabado / Autonuméricos

Hola expertos, tengo dos preguntas:
1.- Tengo una aplicación ACCESS en la que abro un primer formulario F1 que está ligado a una tabla T1. El formulario F1, mediante un botón, abre un formulario F2 el cual está ligado a una tabla T2. Imaginaros que el usuario graba un registro en la tabla T2 pero en el formulario F1 pulse el botón CANCELAR y no grabe en la tabla T1. ¿Es posible deshacer la grabación que se hizo en la tabla T2 mediante el formulario F2? ¿La única opción que tengo es borrar "a pelo" el registro que se grabó?
2.- Tengo una tabla en la que la Primary Key es un primer campo numérico y un segundo campo Autonumérico. Me gustaría que el valor del campo Autonumérico dependendiera del primer campo de la clave y no que cada vez que se intenta dar de alta un nuevo registro, se incrementa el autonumérico de manera absoluta. ¿Es posible hacer esto o tengo que buscarme la vida para llevar yo el contador?
Gracias por vuestro tiempo
Saludos
1

1 Respuesta

90.125 pts. Ingeniero en Informatica (5 años) Ingeniero Técnico en...
Me voy a ganar una puntuación baja, pero creo que mejor salir de dudas...
1.- Lo único que te queda es borrar a pelo. En el evento 'al hacer click' del botón cancelar, le pones un
currentdb.execute "delete from t2 where campoclave=loquesea"
2.- Para eso no valen los autonuméricos, que se crearon para garantizar que se crearan identificadores únicos, no para llevar contadores. De hecho, un autonumérico ni siquiera tiene porqué ser un número ascendente (propiedades del campo en la vista diseño) y además, no se pueden ligar a nada. Por tanto, en este caso la respuesta también es negativa. En el evento 'al perder el foco' del campo clave le puedes poner código como
me.campoorden=1+nz(dmax("campoorden","tabla","campoclave='" & me.campoclave & "'"),0)
Pero aviso desde ya que te puede fallar en multiusuario.
Lo siento, pero es Access. Lo fácil te lo da hecho, para lo complicado hay que currar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas