Ocultar el ribbon y el panel de exploración

Estoy realizando una BD de access dividida con control de usuarios. Quiero hacer que cuando un usuario se conecte y éste esté identificado como "usuario", no le permita ver la cinta (ribbon) ni el panel de exploración (aunque esta opción la tengo quitada a través del botón de Office -> Opciones de Access -> Base de datos actual -> Exploración "Mostrar panel de exploración, casilla desactivada) .

En una respuesta de Todoexpertos de SotoCaiba de fecha 4/10/2011, he podido observar que se puede utilizar lo siguiente:

' Ocultar Ribbon
Access. Application. DoCmd. ShowToolbar "Ribbon", acToolbarNo
'Ocultar ventana objetos Access 2007
Access. Application. DoCmd. SelectObject acForm, Me.Name, True Access. Application. DoCmd. RunCommand acCmdWindowHide

Lo he probado y funciona, pero el panel de exploración si pulsas la tecla F11, se vuelve a mostrar, lo cual ya me parece bien para un usuario tipo "administrador".

Hay alguna opción para que cuando un usuario de tipo "usuario" pulse la tecla F11, ¿no le muestre el panel de exploración?

Otra pregunta relacionada es, si cuando se desconectan (cierran su front-end) ¿Se debe volver a dejar todo como estaba al inicio?, es decir, activar de nuevo el ribbon con "acToolbarYes" y el panel de exploración con "acCmdWindowUnhide" o no es necesario.

Por último, hace un tiempo (no muy lejano) había una web llamada:

http://www.accessruncommand.com/code/codinga.htm

En la que se podía consultar las constantes del "DoCmd.RunCommand" con ejemplos de utilización, pero que ahora al parecer no está activa, ¿sabes de alguna web donde pueda ver estas constantes?.

Quedo a la espera de tu respuesta, si es posible.

Respuesta
2

Para desactivar la tecla F11, tienes que establecer en las propiedades de los formularios y/o informes "Tecla de vista previa" a Sí.(Está en la pestaña Eventos).

Luego programar en el evento "Al bajar una tecla" este código:

Private Sub xxxx_KeyDown(KeyCode As Integer, Shift As Integer)
Call AnulaTecla(KeyCode, vbKeyF11)
End Sub

Y por último, copiar esta función en el módulo :

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

Lo de volver a activar o no la cinta de opciones, no tengo un consejo que darte, es más bien a gusto tuyo.

Y para acabar, para ver las constantes de DoCmd. RunCommand, puedes usar la ayuda de vba: escribres DoCmd. RunCommand en cualquier parte del módulo vba, colocas el cursor encima de RunCommand, la das a F1 y te aparecen (sin ejemplos...)

Gracias por tu pronta respuesta.

En el tema de la tecla F11, pensaba que se podía inhabilitarla en el momento de conocer el tipo de usuario "usuario", pero para toda la aplicación. Por lo que deduzco de tus comentarios se debe poner en todos los formularios e informes, para que no se pueda utilizar.

Yo ya tengo puesto a nivel de formulario en el evento "al bajar una tecla", el código que te muestro a continuación:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
' hace que las teclas AvPag y RePag no tengan utilidad
Select Case KeyCode Case vbKeyPageUp, vbKeyPageDown KeyCode = 0 Case Else End Select
End Sub

para las teclas "AvPag" y "RePag", por lo que lo de la tecla F11 también se podría poner en esa procedure. Si crees que no, me lo dices.

y con el tema de "DoCmd.RunCommand", he abierto el editor de VBA, he pulsado la "Ayuda", he puesto que busque "DoCmd.RunCommand en cualquier parte del módulo vba" y me salen
diversas opciones, pero la que muestra las constantes del "RunCommand" no tienen ninguna explicación, o al menos siempre lo he visto así y por internet tampoco doy, después de buscar y buscar, con que se pueda ver la explicación de las constantes, aunque sea sin ejemplos, solo la explicación de lo que realiza la constante.


Bueno, si puedes me dices algo con el fin de poder cerrar la consulta y puntuar.

Gracias un saludo

En el procedimiento que comentas, también puedes añadir sin problema vbKeyF11. Tu procedimiento hace exactamente lo mismo que el que te propuse yo, pero con menos líneas de código.

No conozco la fomra de inhabilitarla al abrir la aplicación, así que sí, tendrás que programarlo en cada formulario e informe.

Con lo de las constantes de RunCommand no te puedo ayudar más, las únicas webs que vi son las de ayuda de microsoft, y se limitan a un listado de los mismos, sin ninguna explicación (aunque sabiendo un poco de ingles es fácil deducir lo que hacen), al igual que la ayuda que viste: http://msdn.microsoft.com/en-us/library/office/bb225843(v=office.12).aspx

Lamento no tener mejores noticias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas