Abrir y cerrar formulario con una tecla específica

Cómo puedo abrir o cerrar un formulario usando una tecla específica, por ejemplo "Ctrl". He buscado y se puedehacer algo con Application. OnKey, pero no se dónde colocarlo y cómo llamarlo desde un formulario para abrir otro formulario.

Por ejemplo tengo el formulario de puento de ventas y una vez terminado de registrar los productos, quiero hacer click en la tecla Ctrly que se abra el formulario de pago, donde se ingresa el efectivo y se informa del cambio, etc.

2 Respuestas

Respuesta
2

Por partes, primero te aconsejaría que añadieras un cuadro de texto y en sus propiedades-eventos-al bajar una tecla crear un procedimiento de evento y entre Private Sub y End sub poner

msgbox keycode

Así, cuando pongas el cursor en el cuadro y pulses cualquier tecla o combinación te aparecerá un mensaje con el código que tiene. Una vez que sepas el número, en las propiedades del formulario, eventos-tecla de vista previa=Si y en el evento al bajar una tecla poner

If keycode=...( el numero que quieras) then

docmd.openform"clientes"

end if

Si fueras a usarlo para varios formulario o informe, entonces te convendría

select case keycode

case is 45

docmd.openform"clientes-1

case is=143

docmd.close....

end select

Perdona es para excel?

Si bien yo te contesto porque la han colgado en Access, es exactamente igual para Excel, ya que ambos están hechos en VB. Lo que pasa es que en Excel hay que hacerlo a través de macros y que ejecute el código.

El cuadro me da el valor de 17 para Ctrl, no obstante usé esto y n hace nada:

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = 17 Then

Pagofrm.Show

End If

End Sub

Creo que el problema es que el form debe tener el foco y al abrirlo hay otros controles que lo tienen, gracias

El código que tengo en un formulario

En este caso le he puesto el de la letra N

Si ahora abro el formulario

y pulso la tecla N

Y como tanto Excel como Access están hechos en VBA, por eso te decía que tiene que ser más o menos lo mismo.

Respuesta
1

Esto se usa para asignar macros a teclas

Aquí se usa el método SendKeys para salir de Excel
Application.SendKeys "% {F4}

Abre el editor de VBA

Application.SendKeys "%{F11}"
Abre la ayuda de Excel
Application.SendKeys "%{F1}" 
Edita una celda de Excel
Application.SendKeys "%{F2}

mira http://www.programarexcel.com/2014/02/sendkeys-simular-pulsaciones-de-teclas.html 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas