Archivo de la categoría: Informatica,Internet y Diseño Grafico

Crear menus y botones en la cinta de opciones (RIBBON) de access 2007 y 2010 ACTUALIZACION

Esta vez explico como hacer una Cinta de botones o un Ribbon en access 2007 y 2010 pero utilizando un archivo con extension xml. IMPORTANTE: el archivo xlm debe estar ubicado en la misma carpeta q la base de datos.

Toda instruccion de access sera llamada desde un boton, sin importar si el boton esta dentro de un menu, dentro de un grupo, dentro de una Ribbon, al final todo formulario, reporte, function, etc. Será llamado desde un botón xml.
Crear un boton xml:

<button

                              id = “idAgent”                

                               size = “large”

                               label = “Agents”

                               imageMso = “ResourcesAddMenu”

                               onAction = “=agentesForm()”

                />

Analisis:

Id: valor unico en toda la cinta de opciones.

Size: puede tener dos valores “large” o “small” esto le indica a Access mostrar grande o pekeño el tamaño del botón

Label: este es el identificador q se mostrara en la cinta o ribbon (imagen02)

imageMso: Es la imagen que se mostrara en la Cinta o Ribbon. No se puede usar cualquier imagen, solo las imágenes prediseñadas de Office.
El archivo http://sdrv.ms/14UoFKe contiene la lista de imágenes q pueden utilizarse en access2007 ; ver imagen q muestra como setear el archivo descargado

Access03ExcelOption


El archivo http://sdrv.ms/14UoTkE contiene la lista de imágenes q pueden utilizarse en access2010. para la version 2010 es utiliza un archivo de word, ver imagen q muestra como ver la lista de imagenes prediseñadas.

Access04WordOptions


onAction: comando o secuencia ejecutada al hacer clic en el botón correspondiente, Aki se puede agregar varios comandos para llamar una acción, yo prefiero utilizar funciones ya q en una función se pueden agregar multiples instrucciones, la función debe llamarse de la siguiente forma: “=nombre_funcion()”

Como vincular un archivo *.xml

Primero creamos la funcion LoadRibbon

Crear la funcion:

Public Function LoadRibbons()

‘Para correr este proceso crear una macro llamada AUTOEXEC con la Action: Runcode y en Arguments: LoadRibbons ()

‘En Access Option/Current Database/Ribbon and ToolBar Option/Ribbon Name:

On Error GoTo Error1

Dim f As Long

Dim strText As String

Dim strOut As String

f = FreeFile

‘Nombre del archivo  *.xml fisico q debe ser guardo en la misma carpeta q contiene

Open CurrentProject.Path & “\ConfigSys.xml” For Input As f

Do While Not EOF(f)

Line Input #f, strText

strOut = strOut & strText

Loop

‘NOMBRE DEL Ribbon q sera digitado en: Access Option/Current Database/Ribbon and ToolBar Option/Ribbon Name:

Application.LoadCustomUI “menu”, strOut

Error1_Exit:

On Error Resume Next

Close f

Exit Function

Error1:

Select Case Err

Case 32609

Case Else

MsgBox “Error: ” & Err.Number & vbCrLf & _

Err.Description, vbCritical, _

“Error”, Err.HelpFile, Err.HelpContext

End Select

Resume Error1_Exit

End Function

Segundo Crear una macro con el nombre AUTOEXEC en donde:

Action: Runcode

Function Name: LoadRibbons ()

Por ultimo en Access Option / Current Database/ Ribbon and Toolbar Option

La opcion Ribbon name debe tener el valor: menu

Access01Option

Se creo una base ejemplo basada en Access 2007; descargar ejemplo http://sdrv.ms/YgdNnn

También se debe descargar el archivo xlm desde este link http://sdrv.ms/YgdXes

Aclaro este post es un refuerzo o actualización de la publicación http://76areal.wordpress.com/2011/05/10/menus-y-botones-para-access-2007-y-2010/

En donde explico paso a paso como crear una Ribbon mejor estructurada.

IMPORTANTE:  todos los archivos sugeridos en los links deben descargarse para q funcionen correctamente.


Access 2007 en modo exclusivo

New Picture clic en logo de Office y despues clic en ACCESS OPTIONS
clic en advance despues en Default Open Mode marcar para modo exclusivo EXCLUSIVE y marcar para modo compartido SHARED New Picture (1)

Crear menus y botones en la cinta de opciones (RIBBON) de access 2007 y 2010

A continuación explico cómo crear un menú y algunos botones en Access 2007 de una forma práctica y funcional sin tanta vuelta, ni tanto invento y sin mucha complicación, de hecho el codificar en XML ya es tedioso. Este ejemplo lo he tomado de una aplicación que desarrolle para la empresa en que laboro. Esta aplicación está siendo utilizada por 70 usuarios aproximadamente, pocos en relación a las grandes corporaciones q hoy en día existen, pero suficientes para demostrar es un ejemplo q funciona al 100%.

image

Lo primero q se debe hacer es crear una tabla en la base de datos actual con el nombre USysRibbons con la siguiente estructura:

campo ID recomiendo q sea automatico

campo RibbonName de tipo texto y el número de caracteres 50 (field Size) al fin solo es para digitar un nombre asignado a la cinta de opciones

campo RibbonXml debe ser de tipo memo con la propiedad Text Format: Plain Text

image

El código para el campo RibbonXml es el siguiente (se explica cada estructura y al final se muestra el código terminado):

El siguiente código siempre de debe incluirse:

<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui”&gt;

</customUI>

Este codigo debe ir en cada cinta de opciones o Ribbon por q ? porque si, explicarlo no tiene mucha relevancia solo agregalo.

El siguiente código debe ser:

<tabs>

</tabs>

Esta etiqueta indica el comienzo del desarrollo de nuevas fichas en la cinta de opciones; en la siguiente imagen se pueden ver 3 fichas: SHORTCUTS, FICHA02 Y FICHA03

image

Para crear cada ficha se utiliza la siguiente etiqueta:

<tab id=”ficha02″ label=”FICHA02″ visible=”true”>

</tab>

En donde tab id=”ficha02” indica un id único en todo el código xml necesario para crear cada cinta de opciones.

Label=”FICHA02” indica el nombre que el usuario final vera en la pantalla de Access. Se recomienda q este nombre sea el mismo q el nombre de tab Id

Visible=”true” muestra u oculta la ficha.

Hasta aquí el código debe estar asi:

<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui”&gt;

<tabs>

<tab id=”shortcutsID” label=”SHORTCUTS” visible=”true”>

</tab>

<tab id=”ficha02″ label=”FICHA02″ visible=”true”>

</tab>

<tab id=”ficha03″ label=”FICHA03″ visible=”true”>

</tab>

</tabs>

</customUI>

La siguiente etiqueta es:<group id=”aplicacion” label=” APPLICATION”></group>Este etiqueta agrupa botones o menues y su nombre se visualiza debajo de la cinta de opciones, en la siguiente imagen se muestra en círculos rojos el nombre de cada grupo.
image

Dentro de la etiqueta GROUP se crea cada botón y/o menú con la siguiente etiqueta:

<button id=”RiskID”

size=”large”

label=”IMPORTING”

imageMso=”DefinePrintStyles”

onAction=”MENURIBBON.ANALISIS”

screentip=”IMPORTING TITLE 31″

supertip=”Import from Excel the Title31 generated by FxClient”

/>

En donde:

Botton id=”identificador único para el boton”

Size=”large”; esta etiqueta solo se utiliza cuando se quiere ver grande el botón casi siempre para que se muestre mejor el icono o imagen, cuando no se quiere mostrar grande el botón simplemente no se digita esta etiqueta o se coloca en Size=“normal”

Label=”nombre q vera el usuario”

imageMso=”nombre de la imagen q se mostrara en la cinta de opciones”; mas adelante se extiende la explicación para esta etiqueta

onAction=”código q se ejecutara al presionar el boton” mas adelante se extiende la explicación de esta etiqueta

screentip=”una pequena referencia para el usuario final”

supertip=”Un pequeño resumen sobre esta función dentro de la base de datos”

En la siguiente imagen ver botón ACR

image
El código para el botón ACR es el siguiente:<button id=”acr”size=”large”label=”ACR”imageMso=”ChartShowData”

onAction=”nombreDeMacroOfuncion”

screentip=”UPDATE ACR”

supertip=”Open and update basic information to ACR according title 31 information”

/>

Este codigo tambien se puede agregar en una solo linea

Para obtener el nombre de las imágenes Microsoft tiene un libro de Excel en este momento no tengo dicho link pero lo subi a mi skydrive el link es:

http://cid-c8c51ba9513ed58a.office.live.com/self.aspx/P%c3%bablico/Office2007IconsGallery.xlsm

aclaro este libro de Excel contiene macros pero son de Microsoft no son mias no tienen ningún riesgo.

Este libro el nombre de las imágenes de las aplicaciones de office para ver el nombre te vas a la ficha Developer, haces clic en cada galería y dentro de cada galería están todas las imágenes de Office hace un clic en cada imagen y aparece una ventana o cuadro de dialogo con el nombre de cada imagen. Este nombre debe escribirse dentro de la etiqueta imageMso=”QueryAppend”. Debe escribirse igual como se muestra en la ventana imageMso, respetando mayúsculas y minúsculas.

mSo

Este proceso nos limita a q solo podemos utilizar las imágenes de office en otras palabras solo las imágenes de estas 9 galerias en el libro Office2007IconsGallery.xlsm.

Para poder utilizar nuestras imágenes o imágenes q no estén en estas galerías debemos utilizar la siguiente función:

Function ObtenerPicture(control As IRibbonControl, ByRef image)

Select Case control.Id

Case “idBoton”

Set image = LoadPicture(CurrentProject.Path & “\nombredelpicture.jpg”)

End Select

End Function

En donde:

Cada case el nombre que se agrego en cada id de cada etiqueta (button ID=”ACR”).

Por ejemplo agregaremos un botón a la cinta opciones asi:

<button id=”logo”

size=”large”

label=”Ria Envia”

getImage=”ObtenerPicture”

onAction=”accion”

screentip=”Logo de la Empresa”

supertip=”Este es el identificador de la Empresa q está utilizando esta aplicacion”

/>

Analizando este código podemos ver q la línea de código imageMso=”ChartShowData” cambio a getImage=”onGetImages”; arriba en negrita, en donde getImage indica q se debe leer una función y ObtenerPicture es el nombre de la función q ya creamos anteriormente q devuelve una imagen. El resultado es el siguiente:

clip_image002

El primer botón tiene una imagen propia de la empresa (getImage=”ObtenerPicture”) y el otro botón tiene una imagen prediseñada de Office (imageMso=”ChartShowData”).

Para darle acción a cada botón la forma más fácil q yo conozco es crear macros y asignarlas a la etiqueta OnAction de cada botón.

Ejemplo se crea una macro con diferentes opciones o con submacros o un depositario para macros asi:

clip_image004

Después a cada boton en la etiqueta OnAction se le coloca en nombre de la macro y de la submacro asi:

OnAction= “MacroPrincipal.submacro”

OnAction = “MenuRibbon.country”

<button id=”acr”

size=”large”

label=”ACR”

imageMso=”ChartShowData”

onAction=” MenuRibbon.ACR”

screentip=”UPDATE ACR”

supertip=”Open and update basic information to ACR according title 31 information”

/>

Para crear un menú de la siguiente forma

clip_image006

El código es:

<menu id=”MyMenu” size=”large” imageMso=”TabOrder” label=”Stadistics” itemSize=”normal”>

<menu id=”AVGID” label=”AVERAGE” itemSize=”normal”>

<button id=”avgbysender”

label=”Average by Sender Name”

imageMso=”FilePrepareMenu”

onAction=”menuRibbon.BYSENDERN”/>

<button id=”avgbysenderadd”

label=”Average by Sender Address”

imageMso=”FilePrepareMenu”

onAction=”menuRibbon.BYSENDERAD”/>

<button id=”avgbybenef”

label=”Average by Paying Country”

imageMso=”FilePrepareMenu”

onAction=”menuRibbon.BYCOUNTRY”/>

</menu>

</menu>

Las indicaciones para las etiquetas son las mismas q ya se explicaron anteriormente a diferencia de la etiquteta itemSize=”normal” o itemSize=”large” q mostrara los iconos de diferente tamaño.

El resultado será el siquiente:

clip_image008

El código desarrollado hasta aquí es el siguiente:

<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui”&gt;

<ribbon startFromScratch=”true”>

<tabs>

<tab id=”shortcutsID” label=”SHORTCUTS” visible=”true”>

<group id=”aplicacion” label=” APPLICATION”>

<button id=”logo” size=”large”

label=”Ria Envia”

getImage=”onGetImages”

onAction=”accion”

screentip=”Logo de la Empresa”

supertip=”Este es el identificardor de la Empresa q esta utilizando esta aplicacion” />

<button id=”acr”

size=”large”

label=”ACR”

imageMso=”ChartShowData”

onAction=”nombreDeMacroOfuncion”

screentip=”UPDATE ACR”

supertip=”Open and update basic information to ACR according title 31 information”

/>

<menu id=”MyMenu” size=”large” imageMso=”TabOrder” label=”Stadistics” itemSize=”normal”>

<menu id=”AVGID” label=”AVERAGE” itemSize=”normal”>

<button id=”avgbysender”

label=”Average by Sender Name”

imageMso=”FilePrepareMenu”

onAction=”menuRibbon.BYSENDERN”/>

<button id=”avgbysenderadd”

label=”Average by Sender Address”

imageMso=”FilePrepareMenu”

onAction=”menuRibbon.BYSENDERAD”/>

<button id=”avgbybenef”

label=”Average by Paying Country”

imageMso=”FilePrepareMenu”

onAction=”menuRibbon.BYCOUNTRY”/>

</menu>

</menu>

</group>

</tab>

<tab id=”ficha02″ label=”FICHA02″ visible=”true”>

</tab>

<tab id=”ficha03″ label=”FICHA03″ visible=”true”>

</tab>

</tabs>

</ribbon>

</customUI>

Para un resultado mas estetico se pueden utilizar una par de etiquetas:

<box id=”myBox1_v” boxStyle=”vertical”>

Lo mas relevante de esta etiqueta es q permite ordenar de forma horizontal o vertical los botones para lograr este efecto se cambia el valor de la etiqueta boxStyle=”horizontal” o boxStyle=”vertical”.

Otra etiqueta es: <separator id=”MySeparator01″/> esta etiqueta crea un separado entre una y otra etiqueta de tipo box. Estas dos etiquetas se utilizan después de la etiqueta GROUP y antes de la etiqueta BUTTON

el código es el siguiente:

<group id=”aplicacion” label=” APPLICATION”>

<box id=”myBox1″ boxStyle=”vertical”>

Botones

</box>

<separator id=”MySeparator01″/>

<box id=”myBox2″ boxStyle=”vertical”>

</box>

La cinta de opciones lucira asi:

clip_image010

El único cambio q se visualiza es una línea entre los botones y el menú para ver una diferencia notable deberíamos tener mas botones y no de tamaño large. A continuación muestro una cinta de Opciones o Ribbon de otra aplicación q desarrolle en donde podremos ver la diferencia de utilizar la etiqueta BOX y SEPARATOR. Véase botones Department, Status y Job Titles

clip_image012Etiqueta box con el valor BoxStyle=”horizontal” clip_image014Etiqueta box con el valor BoxStyle=”vertical”

Otro ejemplo de menú con el atributo itemSize=”large” :

clip_image016

Hasta aquí tenemos la información suficiente para crear una barra de opciones. De aquí en adelante se explican detalles para mejorar la aplicación.

El siguiente código oculta la cinta de opciones de Access y solo muestra nuestra cinta de opciones

<ribbon startFromScratch=”true”>

Q se digita después de la etiqueta <customUI xmlns …

También el siguiente código es necsario para ocultar la ficha CREATE de la cinta de opciones de access

<tab idMso=”TabCreate” visible=”false” />

Se digita después de la etiqueta <tabs>

Con el siguiente código se habilitan y deshabilitan la opción del menú de Office:

clip_image018 <officeMenu><button idMso=”FileBackupDatabase”visible=”true”/><button idMso=”FileCompactAndRepairDatabase” visible=”true”/>

<button idMso=”FileNewDatabase” visible=”false”/>

<splitButton idMso=”FileSaveAsMenuAccess” visible=”false”/>

</officeMenu>

Este código se digita después de la etiqueta <ribbon startFromScratch=”true”> esto deshabilita las opciones avanzada q solo deberían estar habilitadas para el desarrollador y deja solo las herramientas necesarias a mi criterio para el usuario final:

clip_image020

La etiqueta

<commands>

<command idMso=”ApplicationOptionsDialog” enabled=”true”/>

</commands>

Habilita o deshabilita el boton Access Options ver imagen anterior solo es necesario cambiar el valor enable=”false”, este boton es mejor deshabilitarlo cuando tenemos usuarios finales q se creen usuarios avanzados y después de joder, perdón des configurar la aplicación nos llaman diciendo q no saben por q se arruino el sistema. Este código se debe digitar antes de la etiqueta <ribbon startFromScratch=”true”>

IMPORTANTE:

Para activar la ficha Developer o Programador en Excel: http://www.youtube.com/watch?hl=es&v=BrvUV3hqdf4

EL CODIGO FINAL SERA:

<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui”&gt;

<commands>

<command idMso=”ApplicationOptionsDialog” enabled=”true”/>

</commands>

<ribbon startFromScratch=”true”>

<officeMenu>

<button idMso=”FileBackupDatabase” visible=”true”/>

<button idMso=”FileCompactAndRepairDatabase” visible=”true”/>

<button idMso=”FileNewDatabase” visible=”false”/>

<splitButton idMso=”FileSaveAsMenuAccess” visible=”false”/>

</officeMenu>

<tabs>

<tab idMso=”TabCreate” visible=”false” />

<tab id=”shortcutsID” label=”SHORTCUTS” visible=”true”>

<group id=”aplicacion” label=” APPLICATION”>

<box id=”myBox1_v” boxStyle=”vertical”>

<button id=”logo” size=”large” label=”Ria Envia” getImage=”onGetImages” onAction=”accion”

screentip=”Logo de la Empresa” supertip=”Este es el identificardor de la Empresa q esta utilizando esta aplicacion” />

<button id=”acr”

size=”large”

label=”ACR”

imageMso=”ChartShowData”

onAction=”nombreDeMacroOfuncion”

screentip=”UPDATE ACR”

supertip=”Open and update basic information to ACR according title 31 information”

/>

</box>

<separator id=”MySeparator01″/>

<box id=”myBox2_v” boxStyle=”vertical”>

<menu id=”MyMenu” size=”large” imageMso=”TabOrder” label=”Stadistics” itemSize=”normal”>

<menu id=”AVGID” label=”AVERAGE” itemSize=”normal”>

<button id=”avgbysender”

label=”Average by Sender Name”

imageMso=”FilePrepareMenu”

onAction=”menuRibbon.BYSENDERN”/>

<button id=”avgbysenderadd”

label=”Average by Sender Address”

imageMso=”FilePrepareMenu”

onAction=”menuRibbon.BYSENDERAD”/>

<button id=”avgbybenef”

label=”Average by Paying Country”

imageMso=”FilePrepareMenu”

onAction=”menuRibbon.BYCOUNTRY”/>

</menu>

</menu>

</box>

</group>

</tab>

<tab id=”ficha02″ label=”FICHA02″ visible=”true”>

</tab>

<tab id=”ficha03″ label=”FICHA03″ visible=”true”>

</tab>

</tabs>

</ribbon>

</customUI>

Existen mas objetos, etiquetas, otras formas de llamar funciones y demás objetos de access q se pueden utilizar en una cinta de Opciones pero con estos es mas que suficiente para crear un sistema de menues y accesos directos (botones) para q el usuario final tenga acceso a las diferentes funciones de la base de datos.

Aclaro que esta es solo una forma de crear Ribbon y he tratado de hacerlo de una forma sencilla, si tenes alguna pregunta publicala en este articulo y con gusto te contesto.

Actualizacion de este Articulo: http://wp.me/p16zEv-19

 


Recursos para Photoshop funcionan con CS3

pscs3
Estos son un par de recursos q podran bajar free: Shapes o Formas y styles o estilos para Photoshop
y mejorar sus diseños y pinturas digitales, que los disfruten.[funcionan con CS3]
 
 
 
 

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.