En Ms access, ¿Cómo lanzar un ribbon personalizado según formulario?

Os comento, he logrado realizar el ribbon personalizado utilizando la explicación en http://office.microsoft.com/es-es/access-help/personalizar-la-cinta-de-opciones-HA010211415.aspx

Tengo un formulario "principal" que abre otros formularios mediante botón con programación tipo: DoCmd. OpenForm stDocName,,,,

A cada formulario estaba asignando una banda de opciones desde la Hoja de propiedades de cada formulario.

Ahora bien, lo que pretendo es poder asignar esa banda de opciones mediante código. Ya que dependiendo de lo que se quiera mostrar o quien use un determinado formulario, sea así la banda de opciones o ribbon que le aparezca.

¿Existirá alguna forma de lograrlo?

1 respuesta

Respuesta
1

Así es como lo hago yo:

1º/ Crea un módulo nuevo, o en el mismo que tienes los procedimientos y funciones para asignar las acciones a los botones del ribbon, y pon este procedimiento:

Public Sub subCargaRibbon(frmFormulario As Form)

Dim miRibbon as String
Select Case frmFormulario.Name
Case "frm01"
miRibbon = "rbnFrm01"
Case "frm02"
miRibbon = "rbnFrm02"
...
End Select
frmFormulario.RibbonName = miRibbon
End Sub

En donde frm01, frm02 tu tendrás que poner los nombres de tus formularios, y en rbnFrm01, rbnFrm02... el nombre del ribbon que le quieres asignar.

Tendras que poner tantos Case ... como formularios tengas.

2º/ Luego, en cada formulario, en el Evento Al Cargar (Form_Load), le generas este otro código:

Private Sub Form_Load

subCargaRibbon Me

End Sub

Y listo, así ya se te carga por vba cada ribbon personalizado con su formulario.

gracias por la pronta respuesta, voy a ponerle manos en practica y os comento, gracias por el aporte...

Saludos, excelente!!! funciona como se esperaba... y para aprovechar y esperando que no lo toméis como abuso otra consulta sobre lo mismo ya que trate de variar el "Case" con condiciones pero no lo logré, os explico...

Tengo dos formularios (uno es de "Inicio" y sin origen de datos y otro "Form1" con origen a una tabla) y tengo dos ribbons: Agregar y Consulta, cada ribbon con diferentes comandos y acciones.

En el de Inicio hay dos botones, uno "btn1" que abre el formulario "Form1" unicamente para agregar y "btn2" que abre "Form1" para consulta.

He tratado con una variable temporal para que aparezca el ribbon Agregar cuando es btn1 y consulta cuando es btn2 con el case pero no lo logro; por lo que la pregunta es:

¿Conoceis alguna forma de poder abrir un formulario con diferentes ribbon segun sea necesario?

Gracias y de antemano pura vida por cualquier respuesta.

Creo que te entiendo, a ver si voy bien:

En el módulo, debajo del option Compare database, escribe esto:

Public miOpcion as Integer

En el procedimiento que te decía arriba, pones, en el case del Form1

Case "Form1"

If miOpcion=1 Then

miRibbon="Agregar"

Else

miRibbon="Consulta"

End If

Y para acabar, en el botón btn1, en el código del evento al hacer click, le añades:

miOpcion=1

y en el del botón btn2:

miOpcion=2

Con esto debería hacer lo que buscas

Caballero... muchísimas gracias.... esto esta que buenísimo... me has ayudado un montón... hasta lo he logrado combinar para que con un formulario sin origen de registros me funcione dependiendo del perfil de administrador y un montón de cosas mas... simplemente perfecto... sois grande... PURA VIDA!!!! woooohoooo

No te olvides de puntuar y cerrar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas