Access - duplicados, afterupdate y deshacer

 
Vista:

duplicados, afterupdate y deshacer

Publicado por emporda (7 intervenciones) el 20/04/2006 09:17:44
Buenas,

En un campo indexado de un formulario he conseguido que al entrar un número de factura que ya estava entrado me diera un mensaje de "este registro está duplicado".

Pero intento que despues de darle el OK al mensaje me haga dos "deshacer" para que me borre lo escrito y me deshaga campo/registro activo; pero si en la macro, despues del "CuadroMsj" y del CancelarEvento le meto dos Deshacer no me funciona.

En cambio, si hago la macro sin los dos deshacer, voy al formulario, meto un duplicado, acepto el mensaje y le hago dos veces deshacer via edicion-deshacer, los deshacer que me hace son "deshacer escrivir" y "deshacer campo/registro activo". Que és lo que quiero conseguir que me haga de forma automatica.

Alguien me podria aconsejar como hacerlo? Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:duplicados, afterupdate y deshacer

Publicado por Enrique (1299 intervenciones) el 20/04/2006 19:41:40
Hola Emporda:
Indica que haces exactamente para detectar Nº Factura duplicado y como está compuesta la Macro, que seguro que hay una forma de automatizar el proceso. Es cuestión de usar adecuadamente el Evento AfterUpdate del campo NroFactura y seguramente no se necesita ni siquiera Macro.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:duplicados, afterupdate y deshacer

Publicado por emporda (7 intervenciones) el 21/04/2006 12:00:36
Buenas enrique,

Lo que hago es una macro con la acción CuadroMsj condicionada a que el registro ya esté entrado y un cancelar evento para que no me salga del campo (ya que por otro asunto tengo un actualizar al salir del campo y sin no cancelo el evento después me sale el error de campo duplicado por ser clave principal).

Adjunto el texto de la condición:
DBúsq("[NºAEF]";"[FacturesObra]";"[ NºAEF] = Form.[A3] ") Es Negado Nulo
Acción relacionada a la condición:
CuadroMsj
Condición segunda:
...
Acción relacionada a la condición segunda:
CancelarEvento

NºAEF es el campo de la tabla FacturasObra donde va a mirar si lo que se ha escrito en el cuadro combinado A3 ya está metido. En este caso, aparece el mensaje y al aceptar en mensaje no sale del cuadro combinado.

Lo que yo querría hacer es que automáticamente me borrara lo escrito (ya que no sirve al estar duplicado) y que desactivara el campo activo, para que el usuario pudiera irse sin problemas. Ya que si no lo hago, al ser clave principal, aunque borre el contenido del campo no me deja salir, ya que da el error de que la clave principal no puede ser nula.

Espero haberme explicado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:duplicados, afterupdate y deshacer

Publicado por Enrique (1299 intervenciones) el 21/04/2006 18:06:49
Hola Emporda:
Ya veo que lo tienes enfocado para realizar todo el proceso desde una Macro y yo hace mucho tiempo que no las uso nunca, antes se me daban bien pero ahora estoy desentrenado porque siempre uso código de VBA. En el mensaje de ayer decías que usabas el comando Deshacer y se me ocurre que podrías probar desde la misma Macro a enviar la Tecla ESC antes de ese Comando ya que creo que la pulsación de esa tecla equivaldría a la opción de Menú "Deshacer escribir". En la Macro sería:

Acción: EnviarTeclas
Pulsación de Teclas: {ESC}
Esperar: No
Acción: EjecutarComando
Comando: Deshacer

En VBA esto sería:
SendKeys "{ESC}, False
DoCmd.RunCommand acCmdUndo

No sé si funcionará, pero no pierdes nada por probarlo.

Un saludo
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:duplicados, afterupdate y deshacer

Publicado por emporda (7 intervenciones) el 26/04/2006 12:04:46
usando solo DoCmd.RunCommand acCmd ya me ha funcionado.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar