me pareció ver hace algún tiempo que se puedeN seleccionar las opciones
disponibles de una barra de menú personalizada en función del formulario que
tiene el enfoque, pero no he encontrado el hilo.
Es decir, lo que tengo es una barra de menú para toda la base, y en algunas
casos (form activos) quiero que algunas de las opciones del menú estén como
"no disponibles".
¿Es esto posible? y ¿ cómo se haría?.
JUAN M AFAN DE RIBERA
=====================
Te pongo un ejemplo de código
commandbars("personalizada").controls(1).controls(1).enabled=false
esto desactivaría la opción primera del primer tema de la barra de
herramientas "personalizada"
MCPEGASUS
=========
Hola Marc, yop como siempre le tengo que poner más salsa, aquí lease código :))
Con este código consigues hacer solo visible la barra que necesites escondiendo el resto, hay también más posibilidades.
'Crea un módulo nuevo y pega este código. Nombre: basBarrasPersonalizadas
Option Compare Database
Option Explicit
Private Sub Demo_mcActivarBarrasHerramientas()
'**** Pulsar F5 para ejecutar el código en caso de no haber ninguna barra.
'Simular la variable pública que hay en las aplicaciones.
Dim pblnAplicaciónTerminada As Boolean
pblnAplicaciónTerminada = False
'Activar todas las barras de herramientas que estén activas
Call mc_ActivarBarrasHerramientas(True)
'Desactivar todas las barras de herramientas que estén Activadas
Call mc_ActivarBarrasHerramientas(False)
'Activar todas las barras de herramientas y Activar la personalizada.
Call mc_ActivarBarrasHerramientas(True, "bhPrincipal", True)
'Activar todas las barras de herramientas y Desactivar la personalizada.
Call mc_ActivarBarrasHerramientas(True, "bhPrincipal", False)
'Desactivar todas las barras de herramientas y Activar la personalizada.
Call mc_ActivarBarrasHerramientas(False, "bhPrincipal", True)
'Desactivar todas las barras de herramientas y Desactivar la personalizada.
Call mc_ActivarBarrasHerramientas(False, "bhPrincipal", False)
'Comprobar si la aplicación esta terminada o en modo de diseño.
If pblnAplicaciónTerminada Then
'Desactivar todas las barras de herramientas y Activar la personalizada.
Call mc_ActivarBarrasHerramientas(False, "bhPrincipal", True)
'Desactivar todas las barras de herramientas que estén Activadas
Call mc_ActivarBarrasHerramientas(False)
Else
'Activar todas las barras de herramientas y Activar la personalizada.
Call mc_ActivarBarrasHerramientas(True, "bhPrincipal", True)
End If
End Sub
Public Function mc_ActivarBarrasHerramientas(blnActivar As Boolean, _
Optional strNombreBarra As String, _
Optional blnActivarII As Boolean = True)
'Forma parte del Módulo: basFuncionesPúblicasMódulosMcV1497
'********************************************************************************************
'Actualización: 24/01/2003 Fecha Creación: 21/10/2001
'Autor: Copyright ©1999-2002 McPegasus
'Contacto: mcpegasus@mcpegasus.com, www.mcpegasus.com
'Propósito: Activa o desactiva las barras de herramientas personalizadas y estandar _
según los parámetros de entrada.
'Observaciones:
' Mientras se esta diseñando la aplicación, y dejamos visibles las barras personalizadas, _
estas aparecen junto a las habituales de access. Para evitar esto, cuando blnActivar es _
true, indicar también el nombre de la barra personalizada y se hará invisible.
'La sintaxis del Procedimiento o Función, consta de estos argumentos:
'Parte Descripción
'-------------------------------------------------------------------------------------------
'blnActivar Requerido. Expresión booleana que corresponde al trabajo a realizar, _
True, Activa todas las barras de herramientas. _
False, Desactiva todas las barras de herramientas.
'strNombreBarra Opcional. Nombre de la barra a activar o desactivar.
'blnActivarII Opcional. Expresión booleana que indica otro estado de visualización, _
True, Activa la barra de herramienta según strNombreBarra. _
False, Desactiva la barra de herramienta según strNombreBarra.
Dim objBarra As Object
For Each objBarra In CommandBars
If Not IsMissing(strNombreBarra) Then 'Si el argumento se ha pasado ...
If blnActivar Then
'Comprobar si la barra es la misma que el parámetro, hacer invisible.
If objBarra.Name = strNombreBarra Then objBarra.Visible = blnActivarII
objBarra.Enabled = blnActivar
Else
'Comprobar la coincidencia del nombre de la barra para hacerla visible.
If objBarra.Name = strNombreBarra Then
objBarra.Enabled = True
objBarra.Visible = blnActivarII
Else
objBarra.Enabled = blnActivar
End If
End If
Else 'No se ha pasado el argumento ...
'En caso de no pasar el segundo parámetro, [strNombreBarra]
objBarra.Enabled = blnActivar
End If
Next
End Function
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)