** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Problema con Sendkeys
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Problema con Sendkeys

 Responder Responder Página  <123
Autor
Mensaje
jerbo Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Mayo/2018
Localización: Sevilla
Estado: Sin conexión
Puntos: 8
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita jerbo Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Junio/2018 a las 23:19
Gracias por tu respuesta.

  Usando sendkeys mediante scripting me funciona la pulsación "F1" del ejemplo, pero la que necesito, "ESC" dentro de un formulario Access, no me funciona en la circunstancia que la preciso:

  La uso dentro de una función que se llama al modificarse el contenido de un control de datos, en el evento BeforeUpdate del control (tras pulsa INTRO o salir del mismo). Dentro la función se pregunta si se quiere continuar con el cambio; si la repuesta es no, se usan las instrucciones siguentes (y solo en ese orden) para revertirlo:
 
        NombreControl.undo
         sendkeys "ESC", true

  Y con esto, se restaura el contenido anterior a la modificación, aunque se intente guardar el registro.
  Esto se podía hacer antes de la introducción en Windows del "Control de cuentas de usuario" (UAC) o desactivándo ese UAC.

  Si uso sendKeys de script, al guardar el registro (caso de entrar en un subformulario o pulsar en un botón para ello) no se restauran los datos anteriores del control, aunque se ejecuten las instrucciones antes indicadas, y esté o no desactivado el UAC.
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 651
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pitxiku Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 09/Junio/2018 a las 11:46
En vez de SendKeys, puedes usar la acción de macro DeshacerRegistro, o el método Undo del formulario:

- https://msdn.microsoft.com/es-es/vba/access-vba/articles/form-undo-method-access
Arriba
jerbo Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Mayo/2018
Localización: Sevilla
Estado: Sin conexión
Puntos: 8
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita jerbo Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 09/Junio/2018 a las 18:33
Así es, cuando nos dimos cuenta, al cabo del tiempo, de que sendkeys había dejado de funcionar tuvimos que recurrir a docmd.CancelEvent, que hace el mismo efecto; así no llegó la sangre al río...

También sería cuestión de probar con el método undo de formulario como has comentado y con el sendkes de script que comentó más arriba mihura para asuntos de pulsación de tecla por código.

Gracias.
Arriba
 Responder Responder Página  <123
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable