Access - Al pulsar F12...

   
Vista:

Al pulsar F12...

Publicado por Nomada (171 intervenciones) el 15/09/2007 12:17:12
Buenas.
Quiero que al pulsar la tecla F12 o cualquier otra tecla que yo asigne, se oculte un campo y si vuelvo a pulsarla que aparezca dicho campo.

Gracias y un saludo.
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:Al pulsar F12...

Publicado por Enrique (1299 intervenciones) el 15/09/2007 15:17:50
Pués aquí tienes la forma de hacerlo, con dos Procedimientos de Evento: "Al Cargar" y "Al Bajar unaTecla" y una Función: AnulaTecla :

Private Sub Form_Load()
'Sin esta línea que sigue no funciona
Me.KeyPreview = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
On Error GoTo Aviso
Select Case KeyCode
Case vbKeyF12
'Anula la acción "Guardar como" que Access
'tiene asociada a la Tecla de Función F12:
Call AnulaTecla(KeyCode, vbKeyF12)

If Campo.Visible = True Then
Campo.Visible = False
Else
Campo.Visible = True
End If
End Select
Exit Sub
Aviso:
If Err.Number = 2165 Then
MsgBox "No se puede ocultar el campo porque" & Chr(10) & _
"tiene el Foco. Cambie el Foco a otro" & Chr(10) & _
"control antes de intentar ocultarlo.", vbCritical, "Ocultar campo"
Exit Sub
Else
Resume Next
End If
End Sub

Function AnulaTecla(KeyCode As Integer, ParamArray Keys() As Variant) As Integer
Dim Tecla As Variant
For Each Tecla In Keys
If KeyCode = Tecla Then
KeyCode = 0
Exit Function
End If
Next
End Function

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:Al pulsar F12...

Publicado por Nomada (171 intervenciones) el 15/09/2007 18:45:49
Muchas gracias, lo he probado y funciona a la perfección. Me ha costado un poco, pero al final ha salido. Lo que ocurre es que ahora tengo que ir desmenuzando línea a línea para comprender realmente que es lo que hace.

Gracias de nuevo.
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:Al pulsar F12...

Publicado por Enrique (1299 intervenciones) el 15/09/2007 20:43:28
Me alegro y en cuanto a revisar linea por linea para comprender lo que hace, pués de eso se trata porque si solo te limitas cortar y pegar y simplemente comprobar si funciona o no, no aprenderías nada.
Como habrás intuido, puedes usar cualquier otra tecla de función y asignarle una tarea diferente a cada una con Select Case, pero es imprescindible anular antes la acción asociada a dichas teclas. Esto lo hace la Función AnulaTecla (esta función tambien la podrías poner en un Módulo, fuera del formulario), primero la anula y la deja disponible para después usarla con lo que necesitemos, ya que si no lo hacemos, por ejemplo con la Tecla F1, primero se abriría la Ayuda de Access y después ejecutaría nuestra acción, cosa que no deseamos que pase por pura estética.
La última parte del Evento controla el posible error que se produce si intentamos ocultar un campo que tiene el Foco, permitiendo poner nuestro propio mensaje en lugar del que mostraría Access y regresar sin que se detenga la ejecución.

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