Você está na página 1de 15

MEN PERSONALIZADO CON ACCESS 20101

INTRODUCCIN
A travs de este ejemplo veremos cmo: Podemos crear un men personalizado en la cinta de opciones Podemos crear un men contextual para determinados objetos de Access. Todo lo anterior utilizando macros. Ya os advierto que este es un proceso bastante laborioso, por lo que este ejemplo se desarrollar con unas pocas opciones de men. De todas maneras, una vez entendis la sistemtica no hay mayor secreto (quiz el nico problema que nos pueda surgir es saber cmo hacer determinadas cosas con macros, pero eso ya se sale del objetivo de este ejemplo. Habr que buscarse la vida con la ayuda que nos d Access o que podamos encontrar por Internet). Dicho lo anterior os planteo la idea general: vamos a crearnos un men personalizado para realizar algunas tareas comunes al trabajar con formularios. Y, aprovechando la sistemtica, nos crearemos un men contextual personalizado para trabajar sobre un campo en concreto de un informe. Aprovecharemos la ocasin tambin para ver cmo podemos aadir notas accesorias a un registro en concreto a travs de un formulario, utilizando macros tambin. Vamos a preparar el terreno...

PREPARANDO NUESTRA BD
Vamos a crearnos una tabla, a la que llamaremos TDatos, simplemente para tener material para poder crear un formulario y un informe. Esta tabla ser muy simple, y tendr la siguiente estructura:

La rellenamos con algunos datos. Por ejemplo:

La BD de ejemplo os la podis bajar aqu.

Vistame en http://neckkito.eu5.org

Vamos a crearnos un formulario en blanco, al que llamaremos FMenu. Este formulario ser nuestro panel de control. En este formulario vamos a insertar tres botones de comando, que nos servirn para abrir FDatos, RDatos y RNotas. Insertamos pues un primer botn de comando, sacamos sus propiedades y nos vamos a la pestaa Otras Nombre, y ah le escribimos cmdAbreFDatos. Ahora nos vamos a la pestaa Eventos Al hacer click, y le generamos el siguiente cdigo2: Private Sub cmdAbreFDatos_Click() DoCmd.Close acForm, Me.Name DoCmd.OpenForm "FDatos" End Sub Ahora podemos aadir un segundo botn de comando, al que pondremos de nombre cmdAbreRDatos (Propiedades Pestaa Otras Nombre) y en el evento Al hacer click (Propiedades Pestaa Eventos) le generamos este otro cdigo: Private Sub cmdAbreRDatos_Click() DoCmd.OpenReport "RDatos", acViewReport End Sub

Ojo! Es importante que el informe se abra en Vista Informe (acViewReport) para poder
operar con los datos del informe. Al ltimo botn le llamamos cdmAbreRNotas y su cdigo ser: Private Sub cmdAbreRNotas_Click() DoCmd.OpenReport "RNotas", acViewPreview End Sub Creamos un formulario basado en TDatos, que llamaremos FDatos. Nos debera quedar una cosa as:

Para generar cdigo nos ponemos en la parte en blanco junto al evento que queramos, y veremos cmo nos aparece un pequeo botn de puntos suspensivos. Si hacemos click sobre l nos aparecer una ventana. Le decimos que queremos generar cdigo. Se nos abrir el editor de VB, con dos lneas por defecto (Private Sub... y End Sub). Esas dos lneas no deben tocarse. El cdigo lo escribimos entre dichas lneas

Vistame en http://neckkito.eu5.org

Finalmente nos creamos un informe, que llamaremos RDatos, basado en la tabla TDatos. A m me ha quedado una cosa as:

Para el tema de las notas vamos a crearnos una nueva tabla, que llamaremos TNotas. Tendr la siguiente estructura:

Sobre esta tabla crearemos un formulario, llamado FNotas, al cual aplicaremos las siguientes propiedades: Pestaa Pestaa Pestaa Pestaa Pestaa Pestaa Formato Estilo de los bordes Dilogo Formato Selectores de registro No Formato Botones de desplazamiento No Formato Ttulo Alta nueva nota Otras Emergente S Otras Modal S

Yo lo he dejado as:

Vistame en http://neckkito.eu5.org

Ya tenemos la infraestructura. Vamos a por nuestros mens.

CREANDO UN MEN PARA FORMULARIOS


El proceso de creacin de un men (y tambin para un men contextual) pasa por dos fases: Crearnos una macro donde se recojan las acciones que va a contener dicho men Crearnos una macro que cree en tiempo de ejecucin el anterior men como men (valga la redundancia).

PRIMERA MACRO
Vamos a confeccionar primero nuestras opciones de men. Supongamos que las opciones deben ser las siguientes: Abrir FMenu, cerrando el formulario FDatos Aadir un nuevo registro en FDatos Aadir una nueva nota relacionada con la venta que estamos dando de alta Exportar las ventas a Excel

Programemos pues estas opciones en nuestra macro. Creamos una nueva macro en vista diseo. La guardaremos con el nombre de mcrMenuFDatos. La primera accin era cerrar el formulario FDatos y abrir FMenu. As pues, agregamos una nueva accin, que ser: Submacro : Volver a MENU

Y detro de esta submacro aadimos las siguientes acciones: CerrarVentana Tipo de objeto: Formulario Nombre de objeto: FDatos Guardar: S AbrirFormulario Nombre del formulario: FMenu 4

Vistame en http://neckkito.eu5.org

Aqu finalizara nuestra submacro. Para separar las categoras, dentro de los mens, podemos crear otra submacro, y utilizar un guin como nombre, por ejemplo. As pues aadimos una lnea de guiones como nombre de la submacro.

Sigamos: vamos a programar una nueva submacro para aadir un nuevo registro. En nombre de submacro escribimos Aadir venta Y como acciones seleccionamos las siguientes opciones: IrARegistro Tipo de objeto: Formulario Nombre del objeto: FDatos Registro: Nuevo

Y aqu finaliza nuestra submacro Aadimos nuestra siguiente opcin de men, que ya es un poco ms interesante, puesto que estar condicionada. Como nombre de submacro ponemos: Aadir nota Y establecemos lo siguiente: Si EsNulo([Formularios]![FDatos].[Id].[Valor]) entonces Accin: CuadroDeMensaje Mensaje: No hay ninguna venta para dar de alta una nota Bip: S Tipo: Aviso: ! 5

Vistame en http://neckkito.eu5.org

Ttulo: SIN VENTA Accin: DetenerMacro Y aqu finaliza nuestro Si. Por si nos hemos perdido debera quedarnos una cosa as:

Ahora hemos programado la macro para realizar una accin si no haba una venta dada de alta todava. Vamos a seguir programndola para el supuesto que s haya una venta. S No EsNulo([Formularios]![FDatos].[Id].[Valor]) entonces Accin: Abrir Formulario Nombre del formulario: FNotas

Y aqu finaliza nuestro s Accin: Ir a registro Tipo de objeto: Formulario Nombre del objeto: FNotas Registro: Nuevo Accin: Establecer valor Elemento: [Formularios]![FNotas].[IdVta] Expresin: =[Formularios]![FDatos].[Id] Accin: IrAControl Nombre del control: Nota

Y aqu finaliza nuestra submacro. A continuacin podemos crear otra submacro de guiones para separar el grupo Es decir, desde el principio:

Ya slo nos falta programar la ltima opcin de men: aadamos pues un nuevo nombre de macro, que ser: Exportar a Excel y las acciones sern las siguientes:

Vistame en http://neckkito.eu5.org

Vistame en http://neckkito.eu5.org

Vamos a aadir la ltima submacro, de nombre Exportar a Excel que tendr las siguientes caractersticas: Accin: ExportarConFormato Tipo de objeto: Tabla Nombre del objeto: TDatos Formato de resultados: Libro de Excel (*.xlsx) Autoinicio: S

Y aqu finaliza nuestra submacro. En definitiva, nuestra macro de men debera finalizar as:

Vistame en http://neckkito.eu5.org

SEGUNDA MACRO
Vamos a programar nuestra segunda macro. As, creamos una nueva macro y la guardamos con el nombre de mcrAgregaMenuFDatos En esta macro slo tendremos que crear una accin, que ser la siguiente: Accin: AgregarMen Nombre del men: Men FDatos Nombre de macro del men: mcrMenuFDatos

Es decir:

APLICAR EL MEN A NUESTRO FORMULARIO


Slo nos queda aplicar el men creado a nuestro formulario. Para ello abrimos FDatos en vista diseo, sacamos las propiedades del men y nos vamos a la pestaa Otras Barra de mens, y ah le escribimos el nombre de nuestra segunda macro: mcrAgregaMenuFDatos

PROBANDO NUESTRO MEN


Vamos a situar nuestro formulario FDatos en vista Formulario. Veremos que: Aparece un nuevo men, en la parte superior, que se denomina Complementos Dentro de ese men encontraremos nuestro men para el formulario Si hacemos click sobre nuestro men se desplegarn las opciones que hemos programado

Vistame en http://neckkito.eu5.org

SEGUNDA PARTE DEL EJEMPLO: MEN CONTEXTUAL


Vamos a realizar un men contextual, que ser un men de filtros, para aplicar a nuestro informe RDatos. Veremos algunas particularidades para realizar determinadas acciones de filtro (que pueden ser extrapolables sin problemas a otras situaciones). Vmonos...

PRIMERA MACRO
Creamos una macro en blanco, que llamaremos mcrMenuFiltros. Configuramos las opciones de la siguiente manera: Nombre de submacro: Quitar filtros Accin: EjecutarComandoDeMen Comando: QuitarFiltroYOrden Finalizar submacro Nombre de submacro: Igual a... Accin: EjecutarComandoDeMen Comando: FiltroPorSeleccin Finalizar submacro Nombre de macro: Menor o igual a... Accin: DefinirVariableTemporal Nombre: vImporte Expresin: =[Informes]![RDatos].[ImpVta] AplicarFiltro Condicin WHERE: [ImpVta]<=[Variables temporales]![vImporte] QuitarVariableTemporal Nombre: vImporte Finalizar submacro Nombre de submacro: Mayor o igual a... Accin: DefinirVariableTemporal Nombre vImporte Expresin=[Informes]![RDatos].[ImpVta] AplicarFiltro Condicin WHERE: [ImpVta]>=[Variables temporales]![vImporte] QuitarVariableTemporal Nombre: vImporte Finalizar submacro

Debera habernos quedado as:

Vistame en http://neckkito.eu5.org

10

SEGUNDA MACRO
Creamos una macro en blanco y la guardamos con el nombre mcrAgregaMenuFiltros Con las siguientes caractersticas: Accin: AgregarMenu Nombre del men: Filtros Nombre de macro de men: mcrMenuFiltros 11

Vistame en http://neckkito.eu5.org

Es decir,

APLICAR EL MEN CONTEXTUAL A NUESTRO INFORME


Abrimos RDatos en vista diseo y seleccionamos el campo [ImpVta] (ojo, la etiqueta no; el campo) y sacamos sus propiedades. Nos vamos a la pestaa Otras Barra de mens contextuales y le escribimos el nombre de nuestra macro, es decir, mcrAgregaMenuFiltros

PROBANDO NUESTRO MEN CONTEXTUAL


Vamos a situar RDatos en vista Informe. Nos situamos sobre cualquier registro, dentro del campo [ImpVta], y hacemos click derecho con el ratn...

UN PASO MS. ELIMINAMOS LOS MENS DE ACCESS


Vamos a hacer que no salgan los mens predeterminados de Access.

Importante: desde el momento en que desactivemos las opciones que se explicarn ms


adelante, pensad que para poder operar plenamente con la BD tendremos que abrirla manteniendo la tecla Shift (Maysculas) pulsada. Hacemos click sobre el botn de Archivo y a continuacin clickamos sobre el boton Opciones.

Vistame en http://neckkito.eu5.org

12

Seleccionamos la opcin Base de Datos Actual, y nos vamos al apartado Opciones de barra de herramientas y de la cinta de opciones, y desmarcamos los checks de Permitir...

Vistame en http://neckkito.eu5.org

13

Si hubiramos confeccionado un men general, o un


men contextual general, podramos especificarlos en las opciones que podemos ver, de nombre Barra de mens y Barra de mens contextual. Si desmarcamos tambin, en el apartado Exploracin la opcin Mostrar panel de exploracin lgicamente tampoco podramos ver dicho panel. Aceptamos y nos saldr un mensaje de advertencia, dicindonos que debemos cerrar la BD para aplicar los cambios. Si la cerramos y la volvemos a abrir veremos que slo se nos permite el men de Inicio. Si abrimos FDatos veremos cmo tambin nos aparece nuestro men Complementos, con nuestro men para FDatos. Adems, si hacemos click sobre el botn de Office veremos que se han desactivado prcticamente todas sus opciones. Y si hacemos click con el botn derecho del ratn sobre cualquier formulario veremos que ya no tenemos mens contextuales (ms que los que hubiramos podido programar nosotros).

FINALIZANDO EL EJEMPLO
Para aquellos que no tengan muy claro cmo obtener un informe con las notas que hayamos podido escribir en las ventas os explico a continuacin cmo podra hacerse: 1.- Creamos, en vista diseo, una consulta, a la que pondremos de nombre CNotas. Aadimos las tablas TDatos y TNotas. 2.- De TDatos, seleccionamos el campo [Id] y lo arrastramos sobre el campo [IdVta] de la tabla TNotas. Se debera haber creado una lnea de relacin.

3.- En el grid de la consulta situamos los campos que queramos. Por ejemplo, mi consulta ha quedado as:

4.- Creamos un informe sobre nuestra consulta CNotas. Lo guardaremos como RNotas. 14

Vistame en http://neckkito.eu5.org

Como ya tenemos nuestro botn en FMenu programado slo tendremos que hacer click sobre l para ver nuestro informe.

Y eso es todo. Espero que hayis entendido la mecnica de cmo funciona esto, y lo podis adaptar sin problemas a vuestras BD's. Un saludo, y... suerte!

Vistame en http://neckkito.eu5.org

15

Você também pode gostar