Sunteți pe pagina 1din 15

MANUAL RIBBON

CAPTULO 11

ndice de contenido
INTRODUCCIN................................................................................................................................2
FASES DE CONSTRUCCIN DEL RIBBON...................................................................................2
XML.....................................................................................................................................................3
CONCEPTOS GENERALES..........................................................................................................3
CONCEPTOS ESPECFICOS........................................................................................................5
NUESTRAS PRIMERAS LNEAS DEL RIBBON........................................................................5
QU SOFTWARE NECESITO?........................................................................................................7
SOFTWARE SPER-LIGHT..........................................................................................................7
SOFTWARE LIGHT.......................................................................................................................8
SOFTWARE HEAVY......................................................................................................................8
CMO CONFIGURAR ACCESS?....................................................................................................8
DEFINICIN DE LA CINTA DE OPCIONES...............................................................................8
ASIGNACIN PARA TODA LA APLICACIN......................................................................9
ASIGNACIN A UN FORMULARIO......................................................................................9
ASIGNACIN A UN INFORME.............................................................................................10
ES IMPORTANTE RECORDAR QUE....................................................................................10
CREACIN DE LA TABLA QUE CONTENDR NUESTRO CDIGO..................................10
UN PEQUEO TRUCO PARA FACILITARNOS LA VIDA...................................................11
NUESTRO PRIMER CDIGO XML...............................................................................................13
UNAS RECOMENDACIONES FINALES.......................................................................................14
PARA FINALIZAR ESTE CAPTULO.............................................................................................14

La BD y archivos de ejemplo os los podis bajar aqu

Vistame en http://neckkito.siliconproject.com.ar

INTRODUCCIN
Trabajar con el ribbon, desde mi punto de vista, es un
autntico latazo. Y dicho esto pienso: Vaya una manera
de empezar un manual, verdad?
Pues creo que es un comentario afortunado (o no) por si
alguien piensa que basta con escribir un par de lneas de
cdigo y... ribbon en marcha sin problemas.
Para que el ribbon funcione hay que configurar Access, escribir
correctamente el cdigo XML (porque si no no se nos cargar el
ribbon), asignar cdigo VBA o macros (macros-objeto) a cada uno
de los botones... Tranquilos, que esto lo he dicho a lo rpido;
lgicamente lo ir explicando poco a poco a lo largo de este
manual.
Sin embargo, tambin hay que decir que si lo hacemos bien una aplicacin con nuestro ribbon
(uno o varios) bien configurado, con imgenes personalizadas y diferentes tipos de botones,
pues deviene en una aplicacin muy resultona. Eso s: hay que trabajrselo bastante
(hablando de ribbones ms o menos complejos, quiero decir).
Por si alguien se ha despistado, y antes de que siga con la lectura de este manual, el ribbon
aparece a partir de la versin 2007 de Access. Con ello quiero decir que si trabajamos con
Access 2003 este manual no nos servir para nuestra aplicacin, dado que Access 2003
funciona por mens y no por ribbon.
He de decir que he buscado informacin sobre el ribbon en diferentes fuentes (libros e
Internet, bsicamente), y que he encontrado algunas cosas muy curiosas con el ribbon. Toda
esta informacin la he mezclado con lo que yo ya saba del ribbon y... voil: he aqu este
manual.
Con lo anterior quiero decir que es posible (ms que posible), a pesar de que intentar hacer
el manual lo ms extenso, claro y sencillo posible, que os encontris por ah alguna otra
manera de configurar o programar el ribbon. Pues ante eso slo puedo decir... en la variedad
est el gusto . A lo anterior debo aadir que, a pesar de que considero que quien siga todos
los captulos del manual va a poder construirse una cinta de opciones muy completa, que no
voy a poder abarcar todas las particularidades de todos los elementos del ribbon (porque
incluso habr algunas que yo desconozca). En este caso os animo a buscar informacin
concreta sobre algn comando, atributo o accin: con toda probabilidad encontraris cosas que
no estn en manual.
Y dicho lo anterior entremos en materia.

FASES DE CONSTRUCCIN DEL RIBBON


Para empezar vamos a elevarnos sobre este mundo cruel y vamos a ver, de forma genrica,
cules podran ser la fases que debemos seguir para construir un ribbon. No os preocupis si
no entendis algo ahora: lo entenderis perfectamente (espero) al ir profundizando en el
manual.
Como deca, estas podran ser las fases que podemos seguir para configurar un ribbon, aunque
segn el ribbon que queramos algunas pueden obviarse:

Vistame en http://neckkito.siliconproject.com.ar

1. Planificacin del ribbon: al menos tener una pequea idea


inicial de qu mens vamos a necesitar, qu tipo de
controles vamos a querer, si vamos a utilizar imgenes
personalizadas o imgenes de la galera de Microsoft y qu
acciones van a desarrollar los elementos del ribbon (ojo,
que adems de controles se pueden configurar otro tipo de
elementos).
2. Preparacin de una carpeta con imgenes personalizadas:
lgicamente
si
hemos
decidido
utilizar
imgenes
personalizadas.
3. Preparar la configuracin en Access para que nuestro ribbon pueda ser cargado: ya sea
como ribbon general, ribbon accesorio a los ribbones que ya existen en Access, como
ribbon slo de formulario e informe...
4. Preparar el archivo xml con el cdigo de configuracin de nuestro ribbon.
5. Preparar el cdigo VBA o la macro (macro-objeto) para que se puedan ejecutar las
acciones asignadas a los elementos del ribbon.
Como veis, una actividad muy divertida... je, je...

XML
El lenguaje utilizado para programar el ribbon es XML (eXtensible Markup Language). Aunque
slo vamos a utilizar el XML para programar nuestro ribbon y no vamos a utilizar todo su
potencial, considero que es interesante que, al menos, tengamos unos conocimientos bsicos
de qu va este lenguaje.
Voy a utilizar, para explicarlo brevemente, conceptos extrados de este enlace, por si alguien
quiere profundizar un poco ms en el tema.

CONCEPTOS GENERALES
XML es un lenguaje estructurado de marcas extensible desarrollado por el World Wide Web
Consortium (W3C) y utilizado para almacenar datos de forma legible.
Veamos, de esta definicin, lo que nos interesa:
Es un lenguaje de marcas: esto significa que, valga la redundancia, se utilizan marcas para
determinar sus elementos. Ahora bien, podramos aadir que es un lenguaje estricto de
marcas. Que sea estricto significa que las marcas deben siempre abrirse y cerrarse, y que no
puede haber marcas abiertas sin un cierre.
Y qu significa que sea estructurado? Pues que tiene una estructura rgida que debe ser
respetada y que implica la idea de cajas chinas o muecas rusas.
Veamos un ejemplo: supongamos que yo defino una marca para el elemento Libro. Pues para
definirla tendra que escribir lo siguiente:
<libro>
Si queremos definir otra marca como Titulo escribira:

Vistame en http://neckkito.siliconproject.com.ar

<titulo>
Ya sabemos cmo definir una marca. Vamos a ver cmo
cerrarla.
Si queremos cerrar una marca debemos escribir el nombre
de la marca que queremos cerrar precedido de una barra
inclinada. As, para cerrar <libro> o <titulo> escribiramos:
</libro>
</titulo>
Tened en cuenta que XML es Case Sensitive; es decir, que distingue entre maysculas y
minsculas. Eso significa que <titulo> no es lo mismo que <Titulo>. Ojo con esta
caracterstica!
Ya sabemos abrir y cerrar marcas. Vamos a aadirle esto de estructura que hemos
comentado:
Primero, en formato terico: para ir cerrando marcas de un xml debemos ir cerrndolas en
orden inverso al de su apertura. Por ejemplo:
Si abrimos marcas as, entendiendo que cada inferior va dentro de el superior:
1.- A
2.- A1
3.- B
4.- B1
5.- B2
Debemos cerrarlas as:
5.- Cierro B2
4.- Cierro B1
3.- Cierro B
2.- Cierro A1
1.- Cierro A
Segundo, en formato prctico:
<libro>
<titulo>
<edicion>
</edicion>
</titulo>
</libro>
Vayamos a depurar un poco ms el cdigo anterior. Vamos a aadirle informacin. En este caso
aadiremos informacin entre apertura y cierre de las marcas.
<libro>
<titulo>
<nombreTitulo>Manual del Ribbon</nombreTitulo>
</titulo>
<edicion>
<anoEdicion>2014</anoEdicion>
<anoEdicion>2015</anoEdicion>

Vistame en http://neckkito.siliconproject.com.ar

</edicion>
</libro>
Si seguimos con nuestra definicin, decimos que es
extensible porque permite fcilmente la adicin de datos.
Supongamos que para nuestro manual, en el ao 2016 se
realiza otra edicin. Cmo lo podramos indicar? Pues
simplemente
cogiendo
nuestro
cdigo
original
y
aadindole una marca nueva, as:

<libro>
<titulo>
<nombreTitulo>Manual del Ribbon</nombreTitulo>
</titulo>
<edicion>
<anoEdicion>2014</anoEdicion>
<anoEdicion>2015</anoEdicion>
<anoEdicion>2016</anoEdicion>
</edicion>
</libro>

CONCEPTOS ESPECFICOS
Pasemos a otro concepto: nuestras marcas pueden tener atributos. Los atributos se especifican
dentro de la propia marca, a continuacin de la misma, y dentro de los delimitadores <>.
Por ejemplo, y ya introducindonos ligeramente en materia, supongamos que queremos crear
un botn en nuestro ribbon. Vamos a necesitar, para este ejemplo, tres atributos: un
identificador del botn, un ttulo y la accin que se va a realizar. Lo definiramos as:
<button id=miBotonId label=miBoton onAction=miAccion/>
Fijmonos en un par de detalles:
- Los nombres de los atributos se escriben sin separacin de ningn tipo, y, en nuestro caso,
son nombres estndar: id / label / onAction
- El valor de los atributos debemos enmarcarlo entre comillas dobles
- Ah vemos una nueva manera de cerrar la marca (siempre y cuando est dentro de la misma
lnea). Vemos pues que tambin podemos cerrarla con <... />

NUESTRAS PRIMERAS LNEAS DEL RIBBON


Para construir el ribbon debemos partir siempre de una marca inicial que se denomina
<customUI>. Al ser el primer elemento tambin se le denomina el elemento raz.
Esta primera lnea suele ser siempre la siguiente:
<customUI xmlns=http://schemas.microsoft.com/office/2006/01/customui>
Lgicamente, la ltima lnea de nuestro cdigo siempre deber ser:

Vistame en http://neckkito.siliconproject.com.ar

</customUI>
Esta primera lnea es la definicin de lo que se denomina
namespace (es propia de los cdigos xml, no slo del
ribbon).
Digo que suele ser la primera porque si queremos crear
un ribbon exclusivo para Access 2010, que no sea
interpretable por Access 2007, deberamos escribir:
<customUI

xmlns=http://schemas.microsoft.com/office/2009/07/customui>

Y tambin lgicamente nuestra ltima lnea ser:


</customUI>
Sigamos. Tras la definicin del namespace nuestra segunda lnea va a ser la siguiente:
<ribbon startFromScratch=true>
o bien
<ribbon startFromScratch=false>
Con el startFromScratch estamos indicando la manera en que va a comportarse nuestro
ribbon, los ribbones predeterminados de Access y algunos elementos de men.
Qu pasa si definimos el startFromScratch como true?

Se eliminan todos los ribbones que por defecto lleva Access.

El botn de Office altera sus opciones, dejndonos slo las siguientes (Access 2007;
Access 2010 tambin se modifica, pero hay que tener en cuenta que ya no utiliza el
botn de Office sino que utiliza un sistema que se denomina Backstage View2):

Para ms informacin podis consultar:


http://office.microsoft.com/en-au/access-help/what-and-where-is-backstage-view-HA010370584.aspx
Recuperado el 23/02/14]

Vistame en http://neckkito.siliconproject.com.ar

[En

lnea.

Y qu pasa si definimos el startFromScratch como false?

Nuestro ribbon aparece tras los ribbones predefinidos de Access y antes de los ribbones
de Add-ins.

Todas las opciones del botn de Office quedan activadas (slo Access 2007, dado que
Access 2010 ya no utiliza este botn).

Y por ahora no entraremos en ms detalles. Estas dos lneas que acabamos de explicar son
vitales y nos aparecern en todos los cdigos XML que vayamos a programar para nuestros
ribbones.

QU SOFTWARE NECESITO?
Lgicamente, el primer software que se necesita es tener Access... je, je...
Despus necesitamos un software para poder escribir cdigo XML. Os dejo un par de ideas:

SOFTWARE SPER-LIGHT
Si estamos convencidos de nuestras capacidades podemos utilizar cualquier software que
permita escribir texto. Es decir, que el primero de los sper-light sera el bloc de notas.
Evidentemente yo no lo recomiendo, pero est bien saber que escribir XML puede ser tan
sencillo como crear un notepad.
El que s recomiendo, siempre que seamos valientes, es un programa portable (lo mejor:
gratuito y que no requiere instalacin) que se denomina <Notepad++ Portable>. Lo podis
encontrar en este enlace, dentro de la seccin Development.
Digo esto de que seamos valientes porque, si bien con el Notepad++ podemos definir el
7

Vistame en http://neckkito.siliconproject.com.ar

lenguaje de programacin en el que estamos escribiendo, no tiene muchas opciones de


correccin, aunque nos ayuda con los colores.

SOFTWARE LIGHT
Si queremos aumentar nuestra seguridad al escribir XML podemos utilizar un programa que
Microsoft pone a nuestra disposicin, y que se denomina <Office Custom UI Editor>. Lo podis
descargar de esta pgina.
Tened en cuenta, a efectos informativos, que es un ejecutable y que instalar el programa en
nuestro ordenador.
Cmo podemos utilizarlo? Si os fijis, al abrirlo, se nos abre una ventana en blanco. En esa
ventana es donde podemos escribir el cdigo. Tenemos tambin un botn que nos verifica si el
cdigo que hemos escrito es correcto.
Yo no lo utilizo, por lo que no puedo dar ms pistas sobre el tema. Lo menciono porque en
varias pginas de las que he ido visitando suele aparecer con cierta asiduidad.

SOFTWARE HEAVY
A partir de lo anterior podemos irnos a programas ya ms profesionales de XML. La
contraprestacin es que suelen ser de pago
El programa que a veces yo he utilizado y que va bastante bien es XMLSpy, de Altova. Pero
bueno... una bsqueda por Google probablemente nos devuelva un buen nmero de
aplicaciones para este fin.

CMO CONFIGURAR ACCESS?


Veamos qu cositas necesitamos hacer en Access para poder tener nuestro ribbon operativo

DEFINICIN DE LA CINTA DE OPCIONES


Para configurar nuestra cinta de opciones de Access debemos tener en cuenta dos
posibilidades:

Primera: nuestro ribbon va a ser un ribbon genrico para toda la aplicacin.


Segunda: nuestro ribbon va a ser especfico para un formulario o formularios o para un
informe o informes.
Vamos a suponer que ya tenemos creado un ribbon, que hemos llamado miRibbon, que ser
el que utilizaremos para toda la aplicacin. A continuacin tenemos un ribbon llamado
8

Vistame en http://neckkito.siliconproject.com.ar

miRibbonForm, para un formulario, y un miRibbonReport, para un informe.

ASIGNACIN PARA TODA LA APLICACIN


Veamos cmo configurar la cinta de opciones para todo
Access:

Sacamos las opciones de Access y nos vamos a


Base de Datos Actual.

En la ventana que aparece nos situamos en la


seccin Opciones de barra de herramientas y cinta
de opciones y seleccionamos nuestro ribbon en la
opcin Nombre de la banda de opciones.

Reiniciamos Access para que los cambios surjan efecto.

ASIGNACIN A UN FORMULARIO
Para asignar el ribbon a un formulario lo que debemos hacer es:

Sacamos las propiedades del formulario


Nos vamos a la pestaa Otras
En la propiedad Nombre de la banda de opciones seleccionamos nuestro ribbon de
formulario.

Ahora, cuando abramos nuestro formulario, nos aparecer la cinta asociada a ese formulario.
Lgicamente, cuando cerremos el formulario nos desaparecer mi tab form.

Vistame en http://neckkito.siliconproject.com.ar

Un pequeo inciso: nos acordamos de la lnea de XML


<ribbon startFromScratch=true/false>? Pues bien, si la
definimos como false lo que haremos ser que nos
aparezca el ribbon de aplicacin (mi tab) ms mi ribbon
de formulario (mi tab form), tal y como aparece en la
ilustracin anterior.
Si la definimos como true lo que conseguiremos es que
desaparezca la cinta de aplicacin y nos quede slo visible
la de formulario (slo veramos mi tab form). Desde el
momento que cerremos el formulario nos volvera a
aparecer la cinta mi tab).

ASIGNACIN A UN INFORME
El proceso es prcticamente igual al del formulario:

Sacamos las propiedades del informes


Nos vamos a la pestaa Otras
En la propiedad Nombre de la banda de opciones seleccionamos nuestro ribbon de
informe.

Sirve lo mismo que lo comentado para el formulario: si el startFromScratch est definido como
false veremos las dos cintas; si est definido como true slo veremos la cinta del informe.

ES IMPORTANTE RECORDAR QUE...


Las modificaciones que hagamos sobre el cdigo XML con la BD abierta (a continuacin
veremos esto con ms detalle) no son automticas. Eso significa que no podemos quedarnos
con la boca abierta diciendo: Vaya! Esto no funciona!.
En pocas palabras, que ante cualquier modificacin que hagamos en el cdigo XML debemos
reiniciar la BD (o, ms rpido, compactarla) para que podamos ver nuestros cambios en
accin.
Ojo!

CREACIN DE LA TABLA QUE CONTENDR NUESTRO CDIGO


Para guardar nuestro cdigo necesitamos incluirlo en una tabla. Ahora bien, la primera
caracterstica de esta tabla es que va a ser una tabla de sistema.
Las tablas de sistema, salvo que indiquemos lo contrario, no estn visibles en el panel de
exploracin. Cmo podemos verlas, pues? Lo que tenemos que hacer es lo siguiente:

10

Vistame en http://neckkito.siliconproject.com.ar

1. Hacemos clic derecho en cualquier espacio en blanco sobre


el panel de exploracin
2. En el men emergente que nos aparece seleccionamos la
opcin Opciones de navegacin...
3. En la ventana que nos aparece marcamos la opcin
Mostrar objetos del sistema.

Hecho esto nos aparecern las tablas de sistema. El proceso para ocultarlas es el mismo, slo
que desmarcando la opcin Mostrar objetos del sistema
Las tablas de sistema propias de Access tienen el prefijo en su nombre MSys. Para las tablas
de sistema de usuario debemos aadirles el prefijo USys.
Teniendo claro lo anterior vamos a crearnos una tabla que llamaremos USysRibbons. La
estructura de esta tabla ser muy simple, sin clave principal, como la que os muestro en la
siguiente ilustracin:

El campo [RibbonName] contendr el nombre de nuestra cinta de opciones; el campo


[RibbonXML] contendr todo el cdigo XML que hayamos programado.

UN PEQUEO TRUCO PARA FACILITARNOS LA VIDA


Ya hemos comentado que para escribir el cdigo XML utilizaremos un programa externo a
Access. Una vez tenemos nuestro cdigo escrito nos vamos a nuestra tabla USysRibbons y la
rellenamos:

En [RibbonName] escribimos el nombre que queramos.


En [RibbonXML] hacemos un paste del cdigo XML.

Ms o menos nos podra quedar una cosa as:

11

Vistame en http://neckkito.siliconproject.com.ar

Como vemos (o mejor dicho, no lo vemos, pero lo


podremos comprobar en breve) si nos situamos sobre el
cdigo XML de cualquiera de los registros veremos que es
una autntica locura buscar una lnea en concreto y realizar
una pequea modificacin. Aqu diramos lo de: As no hay
quien trabaje!
Si tenemos que realizar grandes modificaciones en el cdigo
mi recomendacin es actuar directamente sobre el software
externo y volver a hacer un copy-paste en el campo memo.
Ahora bien, para pequeas modificaciones eso puede ser un rollo.
Lo que hago yo, por si os puede ser de utilidad, es lo siguiente:

Creo un formulario sobre USysRibbons. Yo lo llamo FUSysRibbons.


Redimensiono el campo memo lo ms grande que pueda.
Si no quiero que en un Access normal se vea el formulario fijo su atributo como
oculto.

En ese caso queda ms o menos a s, lo que, para pequeas modificaciones, es bastante ms


manejable:

Para fijar el atributo de un objeto de Access como oculto basta hacer clic derecho sobre el
objeto en cuestin y en el men emergente seleccionar la opcin Propiedades de vista. En la
ventana que nos aparece marcamos el check de oculto.

12

Vistame en http://neckkito.siliconproject.com.ar

Y cmo ocultarlo o mostrarlo? Pues siguiendo el mismo


procedimiento que os he explicado para mostrar los objetos
de sistema, slo que esta vez marcando o desmarcando el
check Mostrar objetos ocultos.

Veris que los objetos que tienen este atributo de oculto marcado aparecen como atenuados
en el panel de exploracin.

NUESTRO PRIMER CDIGO XML


Para que podamos practicar un poco todo lo que hemos visto en este primer captulo vamos a
crearnos un cdigo muy simple (que no comentaremos por ahora... Ya lo haremos en captulos
posteriores). El cdigo no nos va a hacer nada de nada, pero si lo analizamos veremos una
serie de elementos que deberan empezar a sernos familiares (y que, por lo dems, su
comprensin es bastante intuitiva).
El cdigo es el siguiente:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="true">
<tabs>
<tab id="miTab" label="mi tab">
<group id="miGrupo" label="mi grupo">
<button id="miBoton" label="mi botn"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

Y es el que yo he identificado en la tabla con el nombre de miRibbon, y es el que para toda la


explicacin he utilizado como cinta de opciones genrica.
El siguiente cdigo es exactamente igual con ligersimas modificaciones, y que he utilizado
para el formulario:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="true">
<tabs>
<tab id="miTabForm" label="mi tab form">
<group id="miGrupoForm" label="mi grupo form">
<button id="miBotonForm" label="mi botn form"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

13

Vistame en http://neckkito.siliconproject.com.ar

Y lo mismo, pero para el informe:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="true">
<tabs>
<tab id="miTabReport" label="mi tab report">
<group id="miGrupoReport" label="mi grupo report">
<button id="miBotonReport" label="mi botn report"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

UNAS RECOMENDACIONES FINALES


En realidad se trata, ms que de unas, realmente de una recomendacin final.
Sed muy cuidadosos con el cdigo XML. Unas comillas mal puestas, una palabra mal escrita,
una marca sin finalizar... En definitiva, cualquier pequeo error puede hacer que nuestro ribbon
no funcione.
Cul es el problema? Pues el problema es que estamos acostumbrados a que tanto Access
como VBA nos advierta con un mensaje de error, si no identificando el error al menos
dicindonos genricamente que hay un error.
Con el ribbon eso no ocurre: creamos nuestro cdigo, reiniciamos Access y... nuestro ribbon no
se carga, sin ms, sin advertencias de ninguna clase, ni mensajes de error, ni nuestro conocido
sonido de error crtico haciendo su blumb caracterstico...
Y lo cierto es que es realmente incmodo trabajar as, sin saber exactamente qu es lo que
est pasando.
Por eso... ojo con el cdigo XML!

PARA FINALIZAR ESTE CAPTULO


Bueno... creo que ms o menos nos hemos situado un poco y, al menos, ya podemos dar el
pego pareciendo que sabemos un montn sobre ribbones si presumimos delante de
nuestras amistades... je, je...
Bromas a parte, espero que hayamos entendido un poco la mecnica del cdigo XML, sus
caractersticas para adaptarlo a la construccin de un ribbon y cmo podemos implementarlo
en Access. S que este captulo quiz no sea demasiado atractivo en el sentido de poder
hacer cosas en Access, pero, como todo, creo que no tiene mucho sentido empezar cargando
14

Vistame en http://neckkito.siliconproject.com.ar

vuestros cocos de cdigos sin tener una base clara.


Espero que la explicacin os haya sido de utilidad.
Un saludo, y...
suerte!

15

Vistame en http://neckkito.siliconproject.com.ar

S-ar putea să vă placă și