Вы находитесь на странице: 1из 54

MANUAL DEL CURSO METODOLOGA DE LA PROGRAMACIN ORIENTADA A ACCESS

NDICE DE CONTENIDOS

CAPTULO 1: INTRODUCCIN

1.1 1.1.1 1.1.2

CU NDO UTILIZAR UNA MACRO Y CUNDO VISUAL BASIC PARA APLICACIONES ....... 1 CUNDO UTILIZAR UNA MACRO........................................................................ 2 CUNDO UTILIZAR VISUAL BASIC..................................................................... 2

CAPTULO 2: MACROS

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.15.1 2.16 2.17 2.17.1 2.17.2

QU ES UNA MACRO? .................................................................................... 4 ACCIN APLICARFILTRO .................................................................................. 5 ACCIN CERRAR ............................................................................................ 7 ACCIN ELIMINAROBJETO ............................................................................... 8 ACCIN BUSCARREGISTRO .............................................................................. 8 ACCIN BUSCARSIGUIENTE........................................................................... 10 ACCIN IRACONTROL ................................................................................... 11 ACCIN IRAREGISTRO .................................................................................. 12 ACCIN CUADROMSJ .................................................................................... 13 ACCIN SALIR............................................................................................. 14 ACCIN NUEVACONSULTA ............................................................................. 15 ACCIN ESTABLECERVALOR........................................................................... 16 QU ES UN GRUPO DE MACROS? ................................................................... 17 ACCIONES CONDICIONALES........................................................................... 18 ARGUMENTOS DE ACCIN ............................................................................. 19 SUGERENCIAS PARA ESTABLECER ARGUMENTOS DE ACCIN .............................. 19 ASIGNAR UNA ACCIN O UNA SERIE DE ACCIONES A UNA TECLA ........................ 20 CONVERTIR MACROS A VISUAL BASIC ............................................................. 20 CONVERTIR MACROS DE UN FORMULARIO O INFORME ....................................... 20 CONVERTIR MACROS GENERALES A VISUAL BASIC ............................................ 21

EJERCICIOS

Ejercicio 1: IMPORTAR TABLAS Y APLICAR UN FILTRO .............................................. 22 Ejercicio 2: CAMBIAR LA PROPIEDAD DE UN CONTROL ............................................. 23 Ejercicio 3: CREAR UNA MACRO CONDICIONAL........................................................ 24

Manual de Metodologa de la Programacin Orientada a Access

CAPTULO 3: MDULOS

3.1 3.2 3.2.1 3.2.2 3.3 3.4 3.4.1 3.4.1.1 3.4.2 3.4.3 3.4.4 3.5 3.6 3.6.1 3.6.2

AYUDA DE VBA ............................................................................................ INTRODUCCIN A LOS MDULOS Y SUBRUTINAS .............................................. PARA CREAR UN MDULO NUEVO ................................................................... CREACIN DE UNA SUBRUTINA ...................................................................... VARIABLES.................................................................................................. USO DE EXPRESIONES .................................................................................. EXPRESIONES ARITMTICAS .......................................................................... PRIORIDAD DE OPERADORES ......................................................................... CONCATENACIN DE CADENAS ...................................................................... OPERADORES DE COMPARACIN .................................................................... OPERADORES LGICOS ................................................................................. COMENTARIOS EN EL CDIGO........................................................................ ENTRADA Y SALIDA DE DATOS ....................................................................... LA FUNCIN MSGBOX ................................................................................... LA FUNCIN INPUTBOX .................................................................................

26 28 28 31 34 36 36 36 36 37 37 38 39 39 41

EJERCICIOS

Ejercicio 4: CONCATENAR Y CALCULAR .................................................................. 43


CAPTULO 4: CONTROL DEL FLUJO DE EJECUCIN: SENTENCIAS CONDICIONALES

4.1 4.2 4.3 4.4

SENTENCIA SENTENCIA SENTENCIA SENTENCIA

IF THEN .................................................................................. IF THEN ELSE ....................................................................... IF THEN ELSEIF ELSE .......................................................... SELECT CASE ..............................................................................

44 45 45 46

EJERCICIOS

Ejercicio 5: LOS MESES DEL AO .......................................................................... 48 Ejercicio 6: MAYOR, MENOR O IGUAL ..................................................................... 49
CAPTULO 5: CONTROL DEL FLUJO DE EJECUCIN: SENTENCIAS REPETITIVAS

5.1 5.2 5.3 5.4

SENTENCIA SENTENCIA SENTENCIA SENTENCIA

WHILE WEND ........................................................................... DO LOOP ................................................................................. FOR NEXT................................................................................ FOR EACH NEXT .......................................................................

50 51 52 53

EJERCICIOS

Ejercicio 7: SENTENCIA REPETITIVA ...................................................................... 55


CAPTULO 6: LLAMADAS A SUBRUTINAS, PASO DE ARGUMENTOS Y FUNCIONES

6.1 6.2 6.3 6.4 6.5 6.5.1 6.5.2 6.5.3 6.6 6.6.1 6.6.2 6.6.3

LLAMADAS A SUBRUTINAS ............................................................................. PASO DE ARGUMENTOS................................................................................. FUNCIONES ................................................................................................. FUNCIONES INTEGRADAS.............................................................................. FUNCIONES MATEMTICAS ............................................................................ FUNCIN ABS .............................................................................................. FUNCIONES INT y FIX ................................................................................... FUNCIN SQR.............................................................................................. FUNCIONES DE TEXTO .................................................................................. FUNCIN LCASE........................................................................................... FUNCIN LEFT ............................................................................................. FUNCIN LEN ..............................................................................................

56 57 58 59 59 59 59 60 60 60 61 61
II

Manual de Metodologa de la Programacin Orientada a Access

6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.7.5 6.7.6 6.7.7 6.7.8 6.8 6.8.1 6.8.2 6.9 6.10 6.10.1

FUNCIN MID.............................................................................................. FUNCIN RIGHT ........................................................................................... FUNCIONES DE FECHA .................................................................................. FUNCIN DATE ............................................................................................ FUNCIN DATEDIFF ...................................................................................... FUNCIN MONTH ......................................................................................... FUNCIN MONTHNAME.................................................................................. FUNCIN NOW............................................................................................. FUNCIN TIME............................................................................................. FUNCIN WEEKDAY ...................................................................................... FUNCIN WEEKDAYNAME .............................................................................. FUNCIONES DE COMPROBACIN DE TIPO......................................................... FUNCIN ISDATE ......................................................................................... FUNCIN ISNUMERIC.................................................................................... FUNCIONES DE CONVERSiN DE DATOS .......................................................... FUNCIONES PERSONALIZADAS ....................................................................... ARGUMENTOS POR REFERENCIA Y POR VALOR..................................................

61 62 62 62 62 64 64 64 65 65 65 66 66 66 67 67 68

EJERCICIOS

Ejercicio 8: AUTENTICIDAD DE E-MAIL................................................................... 71 Ejercicio 9: FUNCIN PERSONALIZADA .................................................................. 72


CAPTULO 7: PROGRAMACIN ORIENTADA A EVENTOS

7.1 7.2 7.2.1 7.2.1.1 7.2.1.2 7.2.1.3 7.2.1.4 7.2.1.5 7.2.1.6 7.2.2 7.2.2.1 7.2.2.2 7.2.2.3 7.2.2.4 7.2.2.5 7.2.2.6 7.2.2.7 7.3 7.3.1 7.3.2 7.4 7.5 7.5.1 7.5.2 7.5.3

ASIGNAR EVENTOS A LOS ELEMENTOS DE UN FORMULARIO................................ EVENTOS .................................................................................................... EVENTOS DE FORMULARIO ............................................................................ AL ABRIR .................................................................................................... AL CARGAR ................................................................................................. AL ACTIVAR REGISTRO .................................................................................. AL ELIMINAR ............................................................................................... AL DESCARGAR............................................................................................ AL CERRAR.................................................................................................. EVENTOS DE CONTROL ................................................................................. AL HACER CLIC ............................................................................................ AL HACER DOBLE CLIC .................................................................................. AL RECIBIR EL ENFOQUE ............................................................................... AL PERDER EL ENFOQUE ................................................................................ AL CAMBIAR................................................................................................ AL NO ESTAR EN LA LISTA............................................................................. ANTES DE ACTUALIZAR Y DESPUS DE ACTUALIZAR.......................................... OBJETOS .................................................................................................... PROPIEDADES ............................................................................................. MTODOS ................................................................................................... UTILIZACIN DE PROPIEDADES Y MTODOS..................................................... MATRICES (ARRAYS)..................................................................................... CAMBIAR EL LMITE INFERIOR........................................................................ ALMACENAR VALORES VARIANT EN MATRICES .................................................. UTILIZAR MATRICES CON MLTIPLES DIMENSIONES .........................................

76 77 77 77 77 78 78 78 79 79 79 79 79 79 80 80 80 80 81 81 81 83 83 84 84

Manual de Metodologa de la Programacin Orientada a Access

III

SOLUCIONES

Solucin Solucin Solucin Solucin Solucin Solucin Solucin Solucin Solucin

al al al al al al al al al

ejercicio ejercicio ejercicio ejercicio ejercicio ejercicio ejercicio ejercicio ejercicio

1 ......................................................................................... 2 ......................................................................................... 3 ......................................................................................... 4 ......................................................................................... 5 ......................................................................................... 6 ......................................................................................... 7 ......................................................................................... 8 ......................................................................................... 9 .........................................................................................

85 87 89 91 92 93 94 95 96

Manual de Metodologa de la Programacin Orientada a Access

IV

CAPTULO 1: INTRODUCCIN

La programacin en Access nos permite disponer de funcionalidades en nuestras bases de datos que de otro modo no sera posible utilizar. Para ello contamos con dos elementos fundamentales, las macros y los mdulos. Las macros son acciones almacenadas que podemos ejecutar cuando se de un cierto evento (pulsar un botn por ejemplo). Su funcionalidad se basa en los elementos de Access (abrir un formulario, ejecutar una consulta) y por lo tanto est limitada a las caractersticas de Access. Los mdulos son pequeos trozos de programas escritos en un lenguaje de programacin que se basan en los objetos de Access. El lenguaje utilizado es Visual Basic for Applications, un dialecto del conocido Visual Basic y gracias a l dispondremos de todas las caractersticas de los lenguajes de programacin, junto con la comodidad de Access.

1.1

CUNDO UTILIZAR APLICACIONES

UNA

MACRO

CUNDO

VISUAL

BASIC

PARA

En Microsoft Access, es posible llevar a cabo numerosas tareas mediante macros o a travs de la interfaz de usuario. En muchos otros programas de base de datos, es necesario programar para realizar esas tareas. La eleccin de una macro o de Microsoft Visual Basic para Aplicaciones depende generalmente de lo que se desee hacer.

Manual de Metodologa de la Programacin Orientada a Access

1.1.1

CUNDO UTILIZAR UNA MACRO

Las macros son un mtodo sencillo para controlar tareas simples como abrir y cerrar formularios, y ejecutar informes. Permiten vincular fcil y rpidamente los objetos de la base de datos creados, ya que no es necesario recordar mucha sintaxis; los argumentos de cada accin se muestran en la ventana Macro . Adems de la facilidad de uso, deber utilizar macros para: Realizar asignaciones globales de teclas. Ejecutar una accin o una serie de acciones cuando se abre por primera vez una base de datos. No obstante, se puede usar el cuadro de dilogo Inicio para que se realicen determinadas operaciones cuando se abra una base de datos, por ejemplo, que se abra un formulario.

1.1.2

CUNDO UTILIZAR VISUAL BASIC

Utilice Visual Basic en lugar de macros para: Facilitar el mantenimiento de la base de datos. Puesto que las macros son objetos independientes de los formularios y los informes que las utilizan, puede resultar difcil mantener una base de datos que contenga muchas macros que respondan a eventos de formularios e informes. Por el contrario, los procedimientos de eventos de Visual Basic se integran en la definicin del formulario o informe. Si mueve un formulario o un informe de una base de datos a otra, se movern con l procedimientos de evento incorporados en el formulario o el informe. Utilizar funciones integradas o crear funciones propias. Access tiene muchas funciones integradas, como la funcin Inters, que calcula el pago de intereses. Puede utilizar estas funciones para realizar clculos sin necesidad de crear expresiones complicadas. Mediante Visual Basic, puede crear sus propias funciones para realizar clculos que superen la capacidad de una expresin o reemplacen expresiones complejas. Adems, puede utilizar las funciones que cree en expresiones para aplicar una operacin comn a ms de un objeto. Administrar mensajes de error. Cuando ocurre algo inesperado mientras el usuario trabaja con la base de datos y Access muestra un mensaje de error, el mensaje puede resultar bastante desconcertante para el usuario, especialmente si no conoce Access. Con Visual Basic, podemos detectar el error cuando se produce y mostrar nuestro propio mensaje o realizar alguna accin. Crear o trabajar con objetos. En la mayora de los casos, observar que es ms fcil crear y modificar un objeto en la vista Diseo de ese objeto. Sin embargo, en algunas situaciones, es posible que desee manipular la definicin de un objeto en cdigo. Utilizando Visual Basic, puede manipular todos los objetos de una base de datos, as como la base de datos propiamente dicha. Realizar acciones a nivel de sistema. Puede utilizar la accin EjecutarAplicacin en una macro para ejecutar desde su aplicacin otro programa basado en Microsoft Windows o Microsoft MS-DOS, pero una macro no sirve para hacer mucho ms fuera de Access. Con Visual Basic, puede comprobar si un archivo est en el sistema, emplear Automatizacin o DDE (Intercambio dinmico de datos) para comunicar con otras aplicaciones basadas en Windows, como Microsoft Excel, y lla mar a funciones de bibliotecas de vnculos dinmicos (DLL) de Windows. Trabajar con los registros de uno en uno. Puede emplear Visual Basic para explorar un conjunto de registros de uno en uno y realizar una operacin en cada registro. Al contrario, las macros trabajan con conjuntos de registros completos a la vez.

Manual de Metodologa de la Programacin Orientada a Access

Pasar argumentos a los procedimientos de Visual Basic. Se pueden establecer argumentos para acciones de macro en la parte inferior de la ventana Macro dura nte su creacin, pero no se pueden cambiar cuando la macro est en ejecucin. Sin embargo, con Visual Basic, se pueden pasar argumentos al cdigo en el momento en que se ejecuta o se pueden utilizar variables para los argumentos, lo que no es posible con las macros. Esto ofrece una gran flexibilidad a la manera en que se ejecutan los procedimientos de Visual Basic.

Manual de Metodologa de la Programacin Orientada a Access

CAPTULO 2: MACROS

Las macros de Access no se diferencian, en concepto, de las macros de otros programas de Microsoft Office XP, como pueden ser Word o Excel. Como ya se me ncion anteriormente, se tratan de comandos almacenados que se ejecutan cuando se produzca un cierto evento. Para ello primero crearemos la macro a travs de la seccin lateral Macros y la opcin Nuevo. Posteriormente introduciremos la sucesin de comandos que comp onen nuestra macro y la guardaremos. Para finalizar deberemos asignar el evento que desencadenar la macro, por ejemplo, la pulsacin de un botn en un formulario. Las macros se disean de forma similar a las tablas o consultas, es decir, disponemos de una pantalla desde la que introducir los comandos que compondrn la macro de forma grfica.

2.1

QU ES UNA MACRO?

Una macro es un conjunto de una o ms acciones que realiza una operacin d eterminada, como abrir un formulario o imprimir un informe. Las macros pueden ayudar a automatizar las tareas comunes. Por ejemplo, puede ejecutar una macro que imprima un informe cuando el usuario haga clic en un botn de comando.

Manual de Metodologa de la Programacin Orientada a Access

Cuando se crea una macro, las acciones que se desean realizar se escriben en esta parte de la ventana Macro .

En esta parte de la ventana se puede especificar los argumentos de una accin. Una macro puede ser una macro compuesta de una secuencia de acciones, o puede ser un grupo de macros (coleccin de macros relacionadas que se almacenan juntas bajo un nico nombre de macro. A menudo, se hace referencia a la coleccin simplemente como una macro.). Tambin se puede usar una expresin condicional para determinar si se llevar a cabo una accin en algunos casos cuando se ejecute la macro. A continuacin vamos a exponer de manera detallada algunas de las acciones de macro ms importantes y/o ms utilizadas. 2.2 ACCIN APLICARFILTRO

Puede usar la accin AplicarFiltro para aplicar un filtro, una consulta o una clusula WHERE de SQL a una tabla, formulario o informe para limitar u ordenar los registros en la tabla, o los registros de la tabla o consulta base del formulario o informe. En el caso de los informes, slo puede utilizar esta accin en una macro especific ada por la propiedad de e vento AlAbrir (OnOpen) del informe. Slo puede usar esta accin para aplicar una clusula WHERE de SQL al aplicar un filtro del servidor. Un filtro del servidor no puede aplicarse a un origen de registros de un procedimiento almacenado.

Manual de Metodologa de la Programacin Orientada a Access

La accin AplicarFiltro utiliza los siguientes argumentos:

Argumento de accin Nombre filtro

Descripcin

del Nombre de un filtro o consulta que limita u ordena los registros de la tabla, formulario o informe. Puede introducir el nombre de una consulta ya existente, o un filtro que se haya guardado como consulta en el cuadro Nombre del filtro en la seccin Argumentos de a ccin de la ventana Macro. Nota: Al usar esta accin para aplicar un filtro del servidor, el argumento Nombre del filtro debe estar en blanco. Una clusula WHERE de SQL vlida (sin la palabra WHERE) o una expresin que restringe los registros de la tabla, formulario o informe Nota: En una expresin de argumento Condicin WHERE, el lado izquierdo de la expresin contiene normalmente un nombre de campo de la tabla o consulta base del formulario o informe. El lado derecho de la expresin contiene normalmente los criterios que desea aplicar a este campo para limitar u ordenar los registros. Por ejemplo, los criterios pueden ser el nombre de un control de otro formulario que contiene el valor con el que desea que coincidan los registros del primer formulario. El nombre del control debe estar totalmente cualificado, por ejemplo: Forms!nombreformulario!nombrecontrol Los nombres de los camp os deben ir entre comillas tipogrficas y las cadenas entre comilla sencilla. La longitud mxima del argumento Condicin WHERE es de 255 caracteres. Si necesita especificar una clusula WHERE de SQL ms larga, utilice el mtodo ApplyFilter del objeto DoCmd en Microsoft Visual Basic. En Visual Basic puede introducir instrucciones con clusulas WHERE de SQL de hasta 32.768 caracteres.

Condicin WHERE

Puede utilizar el argumento Nombre del filtro si ya ha definido un filtro que proporciona los datos apropiados. Puede utilizar el argumento Condicin WHERE para introducir directamente los criterios de restriccin. Si utiliza ambos argume ntos, Microsoft Access aplica la clusula WHERE a los resultados del filtro. Puede utilizar uno o ambos argumentos.

Puede aplicar un filtro o consulta a un formulario en la vista Formulario o en la vista Hoja de datos. El filtro y la condicin WHERE aplicados se convertirn en los valores de la propiedad Filtro (Filter) o FiltroDeServidor (ServerFilter) del informe o el formulario. Para las tablas y los formularios, esta accin es parecida a hacer clic en Aplicar filtro u ordenar o Aplicar filtro de servidor del men Registros. El comando del men aplica el filtro creado ms recientemente a la tabla o formulario, mientras que la accin AplicarFiltro aplica un filtro o consulta especficos. En una base de datos de Access, si selecciona Filtro en el men Registros y hace clic en Filtro u orden avanzado despus de haber ejecutado la accin AplicarFiltro, la ventana Filtro u orden avanzado muestra los criterios de filtrado que haya seleccionado con esta accin. Para quitar un filtro y mostrar todos los registros de una tabla o un formulario de una base de datos de Access, puede usar la accin MostrarTodosRegistros o el comando Quitar filtro u orden del men Registros.
Manual de Metodologa de la Programacin Orientada a Access 6

Cuando guarda una tabla o formulario, Access guarda cualquier filtro definido actualmente en ese objeto, aunque no aplica el filtro de forma automtica la prxima vez que abra el objeto (s aplica de manera automtica cualquier orden que se haya aplicado al objeto antes de que se guardara). Si desea aplicar un filtro de forma automtica cuando se abre un formulario por primera vez, especifique una macro utilizando la accin AplicarFiltro o un procedimiento de evento utilizando el mtodo ApplyFilter del objeto DoCmd como valor de la propiedad del evento OnOpen del formulario. Tambin puede aplicar un filtro mediante la accin AbrirFormulario o AbrirInforme, o sus mtodos correspondientes. Para aplicar un filtro de forma automtica al abrir una tabla por primera vez, puede abrir la tabla mediante una macro que contenga la accin AbrirTabla, seguida inmediatamente por una accin AplicarFiltro. 2.3 ACCIN CERRAR

Puede utilizar la accin Cerrar para cerrar una ventana determinada de Microsoft Access o la ventana activa si no se especifica ninguna. La accin Cerrar utiliza los siguientes argumentos. Argumento de accin Descripcin

Tipo de objeto El tipo de objeto cuya ventana desea cerrar. Haga clic en Tabla , Consulta, Formulario , Informe, Macro, Mdulo, Pgina de acceso a datos, Vista de servidor, Diagrama, Procedimiento almacenado o Funcin en el cuadro Tipo de objeto de la seccin Argumentos de accin de la ventana Macro. Para seleccionar la ventana activa, deje este argumento en blanco. Nota: Si cierra un mdulo en el Editor de Visual Basic , debe usar Mdulo en el argumento Tipo de objeto. Nombre objeto del El nombre del objeto que se va a cerrar. El cuadro Object Name (Nombre de objeto) muestra todos los objetos en la base de datos del tipo seleccionado por el argumento Tipo de objeto. Haga clic en el objeto que se va a cerrar. Si deja en blanco el argumento Tipo de objeto, deje tambin en blanco este argumento. Indica si se guardan o no los cambios del objeto cuando ste se cierra. Puede hacer clic en S (guardar el objeto), No (cerrar el objeto sin guardarlo) o Preguntar (preguntar al usuario si debe o no guardar el objeto). El valor predeterminado es Preguntar. La accin Cerrar funciona sobre todos los objetos de la base d e datos que el usuario puede abrir o cerrar de forma explcita. Esta accin tiene el mismo efecto que seleccionar un objeto y luego cerrarlo haciendo clic en Cerrar en el men Archivo, hacer clic en Cerrar en el men Control de la ventana del objeto, o hacer clic en el botn Cerrar del objeto. Si el argumento Guardar se establece en Preguntar y el objeto no se ha guardado antes de que la accin Cerrar se haya llevado a cabo, un cuadro de dilogo pregunta al usuario si desea guardar el objeto antes de cerrar la macro. Si ha establecido el argumento Activar advertencias de la accin EstablecerAdvertencias en No, no se muestra el cuadro de dilogo y el objeto se guarda de manera automtica. Para ejecutar la accin Cerrar en Microsoft Visual Basic, utilice el mtodo Close del objeto DoCmd.

Save

Manual de Metodologa de la Programacin Orientada a Access

2.4

ACCIN ELIMINAROBJETO

La accin EliminarObjeto se utiliza para eliminar un objeto de base de datos determinado. La accin EliminarObjeto utiliza los siguientes argumentos. Argumento de accin Tipo de objeto Descripcin El tipo de objeto a eliminar. Haga clic en Tabla , Consulta, Formulario , Informe, Macro , Mdulo, Pgina de acceso a datos, Vista de servidor, Diagrama, Procedimiento almacenado o Funcin en el cuadro Tipo de objeto de la seccin Argumentos de accin de la ventana Macro. Para eliminar el objeto seleccionado en la ventana Base de datos, deje este argumento vaco. El nombre del objeto a eliminar. El cuadro Nombre del objeto muestra todos los objetos en la base de datos del tipo seleccionado por el argumento Tipo de objeto. Si deja en blanco el cuadro Tipo de objeto, deje este cuadro tambin en bla nco. Si ejecuta una macro que contenga la accin EliminarObjeto en una base de datos de biblioteca, Microsoft Access busca el objeto con este nombre en primer lugar en la base de datos de biblioteca, y luego en la base de datos activa.

Nombre del objeto

Si deja en blanco los cuadros Tipo de objeto y Nombre del objeto, cuando Access encuentra la accin EliminarObjeto, elimina el objeto seleccionado en la ventana Base de datos sin mostrar ningn mensaje de advertencia. La accin EliminarObjeto se utiliza para eliminar los objetos temporales que ha creado mientras se ejecuta la macro. Por ejemplo, podra utilizar la accin AbrirConsulta para ejecutar una consulta de creacin de tabla que crea una tabla temporal. Cuando haya acabado de usar la tabla temporal, puede utilizar la accin EliminarObjeto para eliminarla. Esta accin tiene el mismo efecto que seleccionar un objeto en la ventana Base de datos y luego presionar la tecla SUPR o hacer clic en Eliminar en el men Edicin. Para ejecutar la accin EliminarObjeto en Visual Basic, puede usar el mtodo DeleteObject del objeto DoCmd. 2.5 ACCIN BUSCARREGISTRO

Puede usar la accin BuscarRegistro para buscar la primera instancia de datos que cumplan los criterios especificados por los argumentos de BuscarRegistro. Estos datos se pueden encontrar en el registro activo, en un registro anterior o posterior, o en el primer registro. Puede buscar registros en la hoja de datos de la tabla, en la hoja de datos de la consulta, en la hoja de datos del formulario o en el formulario que se encuentre activo. La accin BuscarRegistro utiliza los siguientes argumentos. Argumento de accin Buscar Descripcin Especifica los datos que desea buscar en el registro. Introduzca el texto, nmero o fecha que desea buscar, o escriba una expresin, precedida de un signo igual (=), en el cuadro Buscar de la seccin Argumentos de accin de la ventana Macro.
8

Manual de Metodologa de la Programacin Orientada a Access

Puede usar caracteres comodn. Este argumento es necesario. Coincidir Especifica dnde estn ubicados los datos en el campo. Puede especificar una bsqueda de datos en cualquier parte del campo (Cualquier parte del campo), datos que llenen todo el campo (Campo completo) o datos ubicados al principio del campo (Comienzo del campo). El valor predeterminado es Campo completo. Especifica si en la bsqueda se hace distincin de maysculas y minsculas. Haga clic en S (llevar a cabo una bsqueda en la que coincidan las maysculas y minsculas) o No (buscar sin que coincidan exactamente las letras m aysculas y minsculas). El valor predeterminado es No. Especifica si la bsqueda se produce desde el registro activo hacia el principio de los registros (Arriba); hacia abajo hacia el final de los registros (Abajo); o desde el registro activo hacia el final de los registros y luego desde el principio de los registros hasta el registro activo, de forma que se busque en todos los registros (Todos). El valor predeterminado es Todos. Especifica si la bsqueda incluye los datos con formato. Haga clic en S (Microsoft Access busca los datos segn tienen el formato y se presentan en el campo) o No (Access busca los datos tal como estn almacenados en la base de datos, que no siempre coincide con lo que se muestra). El valor predeterminado es No. Puede utilizar esta caracterstica para limitar la bsqueda de los datos de un formato particular. Por ejemplo, haga clic en S y escriba 1.234 en el argumento Buscar para buscar un valor de 1.234 en un campo con formato para incluir puntos. Haga clic en No si desea escribir 1234 para buscar los datos de este campo. Si desea buscar fechas, haga clic en S para buscar una fecha respetando su formato, por ejemplo, 09-Marzo-2001. Si hace clic en No, debe escribir la fecha para el argumento Buscar en el formato establecido en la configuracin regional del Panel de control de Windows. El formato se muestra en el cuadro Formato de fecha corta de la ficha Fecha de Configuracin regional. Por ejemplo, si el cuadro Formato de fecha corta se est ablece en d/MM/aa, puede escribir 3/12/91, y Access buscar todas las entradas de un campo Fecha que se correspondan con Marzo 9, 1991, independientemente del formato que tenga el campo. Nota: El argumento Buscar con formato slo tiene efecto si el campo actual es un control dependiente, el argumento Coincidir est establecido en Hacer coincidir todo el campo, el argumento Slo el campo activo est establecido en S y el argumento Maysculas y mi nsculas est establecido en No. Si establece Maysculas y minsculas en S o Slo el campo activo en No, tambin debe establecer Buscar con formato en S. Especifica si la bsqueda se limita al campo actual de cada registro o si incluye todos los campos de cada registro. La bsqueda del campo activo es ms rpida. Haga clic en S (limitar la bsqueda al campo actual) o No (buscar en todos los campos de cada registro). El valor predeterminado es S. Especifica si la bsqueda comienza en el primer registro o en el registro activo. Haga clic en S (empezar por el primer registro) o No (empezar en el registro activo). El valor predeterminado es S.
9

Maysculas y minsculas

Buscar

Buscar con formato

Slo el campo activo

Buscar primero

Manual de Metodologa de la Programacin Orientada a Access

Cuando una macro ejecuta la accin BuscarRegistro, Access busca los datos especificados en los registros (el orden de la bsqueda viene determinado por el valor del argumento Buscar). Cuando Access encuentra los datos especific ados, los datos se seleccionan en el registro. La accin BuscarRegistro es equivalente a hacer clic en Buscar en el men Edicin y sus argumentos son los mismos que las opciones del cuadro de dilogo Buscar en campo, disponible al hacer clic en Buscar en el men Edicin. Si establece el argumento BuscarRegistro en la ventana Macro y a continuacin ejecuta la macro, ver las opciones correspondientes seleccionadas en el cuadro de dilogo Buscar en campo cuando haga clic en Buscar. Access conserva los argumentos ms recientes de BuscarRegistro durante una sesin de la base de datos, de forma que no es necesario escribir repetidas veces los mismos criterios cuando se realizan operaciones posteriores de BuscarRegistro. Si deja un argumento en blanco, Access utiliza el valor ms reciente del argumento, tal como se haya establecido por una accin previa BuscarRegistro o en el cuadro de dilogo Buscar en campo. Cuando desee buscar un registro mediante una macro, utilice la accin BuscarRegistro, no la accin EjecutarComando con el argumento establecido para ejecutar el comando Buscar. Mientras que la accin BuscarRegistro se corresponde con el comando Buscar del men Edicin para tablas, consultas y formularios, no se corresponde con el comando Buscar del men Edicin de la ventana Cdigo. No puede utilizar la accin BuscarRegistro para buscar texto en los mdulos. Si el texto seleccionado actualmente es el mismo que el texto seleccionado en el momento en el que se ejecuta la macro BuscarRegistro, la bsqueda se inicia inmediatamente siguiendo la seleccin en el mismo campo que la seleccin y en el mismo registro. En caso contrario, la bsqueda se inicia al principio del registro actual. Esto le permite buscar mltiples instancias de los mismos criterios de bsqueda que pudieran aparecer en un nico registro, mientras que en la versin 2.0 de Microsoft Access, estaba limitado a buscar slo la primera instancia de los criterios de bsqueda en un registro. Para ejecutar la accin BuscarRegistro en Visual Basic, use el mtodo FindRecord del objeto DoCmd. 2.6 ACCIN BUSCARSIGUIENTE

Puede usar la accin BuscarSiguiente para buscar el siguiente registro que cumpla los criterios especificados por la accin BuscarRegistro anterior o el cuadro de dilogo Buscar en campo, disponible al hacer clic en Buscar en el men Edicin. Puede usar la accin BuscarSiguiente para buscar registros de manera repetida. Por eje mplo, puede moverse sucesivamente a travs de todos los registros de un cliente determinado. La accin BuscarSiguiente no utiliza argumentos. La accin BuscarSiguiente busca el siguiente registro que cumple los criterios establecidos por la accin BuscarRegistro o en el cuadro de dilogo Buscar en campo. Los argumentos de la accin BuscarRegistro coinciden con las opciones que se pueden especificar en el cuadro de dilogo Buscar en campo. Para establecer los criterios de bsqueda, use la accin BuscarRegistro. Normalmente, se introduce la accin BuscarRegistro en una macro y a continuacin se usa la accin BuscarSiguiente para buscar los subsiguientes registros que cumplen los mismos criterios.
Manual de Metodologa de la Programacin Orientada a Access 10

Para buscar registros que slo cumplan ciertas condiciones, puede escribir una expresin condicional en la columna Condicin de la fila de accin de la accin BuscarSiguiente. Esta accin tiene el mismo efecto que usar el botn Buscar siguiente en el cuadro de dilogo Buscar en campo. Mientras que la accin BuscarRegistro se corresponde con el comando Buscar del men Edicin para tablas, consultas y formularios, no se corresponde con el comando Buscar del men Edicin de la ventana Cdigo. No se pueden usar las acciones BuscarRegistro o BuscarSiguiente para buscar texto en los mdulos. Si ha establecido el argumento Slo el campo activo de la accin BuscarRegistro en S, puede que necesite usar la accin IrAControl para mover el enfoque al control que contiene los datos que est buscando antes de utilizar la accin BuscarSiguiente. Si el texto seleccionado actualmente es el mismo que el texto seleccionado en el momento en el que se ejecuta la macro BuscarSiguiente, la bsqueda se inicia inmediatamente despus de la seleccin, en el mismo campo que la misma y en el mismo registro. En caso contrario, la bsqueda se inicia al principio del registro actual. Esto le permite buscar mltiples instancias de los mismos criterios de bsqueda que pudieran aparecer en un nico registro, mientras que en la versin 2.0 de Microsoft Access, estaba limitado a buscar slo la primera instancia de los criterios de bsqueda en un registro. Sin embargo, observe que si usa un botn de comando para ejecutar una macro que contenga la accin BuscarS iguiente, se buscar de forma repetida la primera instancia de los criterios de bsqueda. Este comportamiento se produce porque, al hacer clic en el botn del comando, se quita el enfoque del campo que contiene el valor coincidente. La accin BuscarSiguiente empezar la bsqueda, por tanto, desde el principio del registro. Para evitar este problema, ejecute la macro usando una tcnica que no cambie el enfoque, como un botn de barra de herramientas personalizadas o una combinacin de teclas definida en una macro AutoKeys. Alternativamente, puede establecer el enfoque de la macro en el campo que contiene los criterios de bsqueda antes de llevar a cabo la accin BuscarSiguiente. El mismo comportamiento se produce si se utiliza un botn de comando para ejecutar una macro que contenga la accin BuscarRegistro con el argumento Buscar primero establecido en No. Para ejecutar la accin BuscarSiguiente en Visual Basic, use el mtodo FindNext del objeto DoCmd.

2.7

ACCIN IRACONTROL

Puede usar la accin IrAControl para mover el enfoque al campo o control especificado en el registro activo del formulario abierto, la hoja de datos del formulario abierto, la hoja de datos de la tabla abierta o la hoja de datos de la consulta abierta. Puede utilizar esta accin cuando desee que un campo o control determinado tenga el enfoque. Despus, este campo o control se puede utilizar para las acciones de comparacin o las acciones de BuscarRegistro. Tambin puede utilizar esta accin para desplazarse por un formulario de acuerdo con ciertas condiciones. Por ejemplo, si el usuario introduce No en un control Casado de un formulario de seguro de enfermedad, el enfoque puede, de forma autom tica, saltarse el control Nombre esposa y moverse al siguiente control.

Esta accin no est disponible para las pginas de acceso a datos.

Manual de Metodologa de la Programacin Orientada a Access

11

La accin IrAControl utiliza el siguiente argumento. Argumento de accin Nombre control Descripcin del El nombre del campo o control donde desea el enfoque. Introduzca el nombre del campo o control en el cuadro Nombre del control de la seccin Argumentos de accin de la ventana Macro. ste es un argumento requerido. Escriba slo el nombre del campo o control en el argumento Nombre del control, no el identificador completo, como Forms!Products![IdProducto].

No puede utilizar la accin IrAControl para trasladar el enfoque a un control de un formulario oculto.

Puede utilizar la accin IrAControl para moverse a un subformulario, que es un tipo de control. Despus puede usar la accin IrARegistro para trasladarse a un registro determinado del subformulario. Tambin puede moverse a un control en un subformulario usando la accin IrAControl para moverse primero al subformulario y luego al control del subformulario. Para ejecutar la accin IrAControl en Visual Basic, utilice el mtodo GoToControl del objeto DoCmd. Tambin puede utilizar el mtodo SetFocus para mover el enfoque a un control de un formulario o a alguno de sus subformularios o a un campo de una tabla, consulta u hoja de datos del formulario que est abierto.

2.8

ACCIN IRAREGISTRO

Puede usar la accin IrARegistro para hacer que el registro especificado sea el registro activo en una tabla o formulario abierto o el conjunto de resultados de una consulta. La accin IrARegistro utiliza los siguientes argumentos. Argumento de accin Tipo de objeto Descripcin El tipo de objeto que contiene el registro que desea hacer actual. Haga clic en Tabla , Consulta, Formulario , Vista de servidor, Procedimiento almacenado o Funcin en el cuadro Tipo de objeto de la seccin Argumentos de accin de la ventana M acro. Deje este argumento en blanco para seleccionar el objeto activo. del El nombre del objeto que contiene el registro al que desea hacer el registro actual. El cuadro Nombre del objeto muestra todos los objetos en la base de datos actual del tipo seleccionado por el argumento Tipo de objeto. Si deja en blanco el argumento Tipo de objeto, deje tambin en blanco este argumento. El registro a convertir en el registro activo. Haga clic en Anterior, Siguiente, Primero , ltimo, Ir a o Nuevo en el cuadro Registro. El valor predeterminado es Siguiente. Un nmero entero o expresin que se evala como un nmero entero. Una expresin debe estar precedida por un signo igual (=). Este argumento especifica el registro que pasa a ser el registro activo. Puede usar Desplazamiento de dos formas:
12

Nombre objeto

Registro

Desplazamiento

Manual de Metodologa de la Programacin Orientada a Access

Cuando el argumento Registro es Siguiente o Anterior, Microsoft Access mueve hacia adelante o hacia atrs el nmero de registros especificados en el argumento Desplazamiento. Cuando el argumento de Registro es Ir a, Access se desplaza al registro que tenga el mismo nmero que el argumento Desplazamiento. El nmero de registro se muestra en el cuadro de nmero de registro en la parte inferior de la ventana. Si usa el valor Primero , ltimo o Nuevo en el argumento Registro, Access omite el argumento Desplazamiento. Si especifica un argumento Desplazamiento que sea demasiado grande, Access muestra un mensaje de error. No puede introducir nmeros negativos para el argumento Desplazamiento. Si el enfoque est en un control determinado de un registro, esta accin lo deja en el mismo control que el del nuevo registro. Puede usar el valor Nuevo en el argumento Registro para desplazarse al registro en blanco al final de un formulario o tabla, de manera que pueda escribir nuevos datos. Esta accin es similar a hacer clic en Ir a en el men Edicin. Los subcomandos Primero, ltimo, Siguiente, Anterior y Nuevo registro del comando Ir a tienen el mismo efecto en el objeto seleccionado que los valores Primero, ltimo, Siguiente, Anterior y Nuevo en el argumento Registro. Tambin puede moverse a los registros usando los botones de desplazamiento de la parte inferior de la pantalla. Puede usar la accin I rARegistro para hacer que un registro de un formulario oculto sea el registro activo si especifica el formulario oculto en los argumentos Tipo de objeto y Nombre del objeto. Para ejecutar la accin IrARegistro en Microsoft Visual Basic, use el mtodo GoToRecord del objeto DoCmd.

2.9

ACCIN CUADROMSJ

Algunos de los contenidos de este tema pueden no ser aplicables a algunos idiomas. Puede usar la accin CuadroMsj para mostrar un cuadro de mensaje que contenga una advertencia o un mensaje de informacin. Por ejemplo, puede usar la accin CuadroMsj con macros. Cuando un control o registro no cumple una condicin de validacin en la macro, un cuadro de mensaje puede mostrar un mensaje de error y proporcionar instrucciones acerca de la clase de datos que debera introducir. La accin CuadroMsj utiliza los siguientes argumentos. Argumento de accin Mensaje Descripcin El texto en el cuadro de mensaje. Introduzca el texto del mensaje en el cuadro Mensaje en la seccin Argumentos de accin de la ventana Macro. Puede escribir hasta 255 caracteres o introducir una expresin (precedida por un signo igual). Especifica si el altavoz de su equipo emite un sonido cuando se muestra el mensaje. Haga clic en S (emitir el sonido) o No (no emitir el sonido). El valor predeterminado es S.
13

Beep

Manual de Metodologa de la Programacin Orientada a Access

Type

El tipo del cuadro de mensaje. Cada tipo tiene un icono distinto. Haga clic en Ninguno, Crtico, Aviso?, Aviso! o Informacin. El valor predeterminado es Ninguno. El texto presentado en la barra de ttulo del cuadro de mensaje. Por ejemplo, puede hacer que la barra de ttulo presente "Validar Identificacin del cliente". Si deja este argumento en blanco, se muestra "Microsoft Access".

Title

Puede utilizar la accin CuadroMsj para crear un mensaje de error con formato similar a los mensajes de error integrados de Access. La accin CuadroMsj le permite proporcionar un mensaje en tres secciones para el argumento Mensaje. Separe las secciones con el carcter "@". El siguiente ejemplo muestra un cuadro de mensaje con formato con un mensaje en secciones. La primera seccin del texto del mensaje se muestra como encabezado en negrita. La segunda seccin se muestra como texto normal bajo ese encabezado. La tercera seccin se muestra como texto normal bajo la segunda seccin, con una lnea blanca entre ellos. Introduzca lo siguiente en el argumento Mensaje: Botn equivocado!@Este botn no funciona.@Pruebe otro botn.

Si est visible el Ayudante de Office, el mensaje se muestra en el globo del Ayudante en lugar de en un cuadro de mensaje separado.

En Microsoft Visual Basic no puede ejecutar la accin CuadroMsj. En su lugar, utilice la funcin MsgBox. 2.10 ACCIN SALIR

Puede utilizar la accin Salir para salir de Microsoft Access. La accin Salir tambin puede especificar una d e las distintas opciones para guardar los objetos de base de datos antes de salir de Access. La accin Salir tiene el siguiente argumento: Argumento de accin Opciones Descripcin Especifica qu ocurre con los objetos no guardados cuando sale de Access.
14

Manual de Metodologa de la Programacin Orientada a Access

Haga clic en Preguntar (para presentar los cuadros de dilogo que preguntan si se desea guardar cada objeto), Guardar todo (para guardar todos los objetos sin mostrar los cuadros de dilogo) o Salir (para abandonar sin guardar ningn objeto) en el cuadro Opciones de la seccin Argumentos de accin de la ventana objetos de la macro. El valor predeterminado es Guardar todo.

Access no ejecuta ninguna accin que siga a la accin Salir de una macro.

Puede utilizar esta accin para salir de Access sin que se muestren los cuadros de dilogo Guardar utilizando un comando de men personalizado o un botn de formulario. Por ejemplo, puede tener un formulario modelo que se utilice para presentar los objetos de su puesto de trabajo personalizado. Este formulario podra tener un botn Salir que ejecutase una macro que contenga la accin Salir con el argumento Opciones establecido en Guardar todo. Esta accin tiene el mismo efecto que hacer clic en Salir desde el men Archivo. Si, al hacer clic en este comando, tiene algn objeto que no se haya guardado, los cuadros de dilogo que aparecen son los mismos que los que se presentan cuando se utiliza Preguntar para el argumento Opciones de la accin Salir. Puede utilizar la accin Guardar en una macro para guardar un objeto determinado sin tener que salir de Access o cerrar el objeto. Para ejecutar la accin Salir en Visual Basic, utilice el mtodo Quit del objeto DoCmd. 2.11 ACCIN NUEVACONSULTA

Puede utilizar la accin NuevaConsulta para actualizar los datos de un determinado control del objeto activo consultando de nuevo el origen del control. Si no se especifica ningn control, esta accin requiere el origen del propio objeto. Utilice esta accin para asegurarse de que el objeto activo o uno de sus controles presenta los datos ms actuales. La accin NuevaConsulta tiene el siguiente argumento:

Argumento de accin Nombre del control

Descripcin Nombre del control que desea actualizar. Escriba el nombre del control en el cuadro Nombre del control en la seccin Argumentos de accin de la ventana Macro. Slo debera utilizar el nombre del control, no el identificador completo, (como Forms!NombreFormulario!NombreControl). Deje este argumento en blanco para consultar de nuevo el origen del objeto activo. Si el objeto activo es una hoja de datos o un conjunto de resultados de una consulta, debe dejar este argumento en blanco.

La accin NuevaConsulta realiza alguna de las acciones siguientes: Ejecuta de nuevo la consulta en la que est basada el control o el objeto. Presenta cualquier registro nuevo o modificado y quita cualquier registro eliminado de la tabla en la que est basado el control o el objeto. La accin NuevaConsulta no afecta a la posicin del puntero del registro.
Manual de Metodologa de la Programacin Orientada a Access 15

Los controles basados en una consulta o tabla son: Cuadros de lista y cuadros combinados. Controles del subformulario. Objetos OLE, tales como grficos. Controles que contengan funciones agregadas de dominio, como DSuma (DSum). Si el control especificado no se basa en una consulta o tabla, esta accin fuerza a calcular de nuevo el control. Si deja el argumento Nombre del control en blanco, la accin NuevaConsulta tiene el mismo efecto que presionar MAYS+F9 cuando el objeto tiene el enfoque. Si un control de un subformulario tiene el enfoque, esta accin vuelve a consultar slo el origen del subformulario (exactamente lo que hace al presionar MAYS+F9). La accin NuevaConsulta requiere el origen del control u objeto. Por el contrario, la accin RepintarObjeto repinta los controles del objeto especificado pero no vuelve a consultar la base de datos ni a mostrar los nuevos registros. La accin MostrarTodosRegistros no slo vuelve a consultar el objeto activo, sino que tambin quita los filtros que se hayan aplicado; esto no lo hace la accin NuevaConsulta. 2.12 ACCIN ESTABLECERVALOR

Puede utilizar la accin EstablecerValor para establecer el valor de un campo, control o propiedad en un formulario, una hoja de datos de un formulario o un informe de Microsoft Access.

No puede utilizar la accin EstablecerValor para establecer el valor de una propiedad de Access que devuelve un objeto. La accin EstablecerValor tiene los siguientes argumentos: Argumento de accin Elemento Descripcin Nombre del campo, control o propiedad cuyo valor desea establecer. Introduzca el nombre del campo, control o propiedad en el cuadro Elemento en la seccin Argumentos de accin de la ventana Macro. Debe utilizar la sintaxis completa para hacer referencia a este elemento, como controlname (para un control del formulario o informe desde el que se llam a la macro) o Forms!formname!controlname. ste es un argumento requerido. Expresin que Access utiliza para establecer el valor de este elemento. Siempre debe utilizar la sintaxis completa para hacer referencia a los objetos de la expresin. Por ejemplo, para incrementar el valor de un control Salario del formulario Empleados en un 10 por ciento, utilice Forms!Empleados!Salario*1. 1. ste es un argumento requerido. Nota: No debe utilizar un signo igual (=) delante de la expresin de este argumento. Si lo hace, Access evala la expresin y luego utiliza este valor como la expresin de este argumento. Esto puede producir resultados inesperados si la expresin es una cadena. Por ejemplo, si escribe ="Cadena1" en este argumento, Access evala primero la expresin como Cadena1.
Manual de Metodologa de la Programacin Orientada a Access 16

Expresin

Luego utiliza Cadena1 como la expresin de este argumento, esperando encontrar en el formulario o informe que llam la macro un control o propiedad con el nombre Cadena1.

En una base de datos de Access (.MDB), haga clic en el botn Generar a la derecha del cuadro Elemento o Expresin para utilizar el Generador de expresiones con el fin de crear una expresin para cualquiera de estos argumentos. Puede utilizar esta accin para establecer un valor de un campo o control d e un formulario, una hoja de datos de un formulario o un informe. Tambin puede establecer el valor de casi todas las propiedades de control, formulario e informe en cualquier vista. Para averiguar si una propiedad determinada puede establecerse mediante una macro y en qu vistas puede establecerse, vea el tema de Ayuda correspondiente a esa propiedad. Para cambiar el valor de un control, puede utilizar la accin EstablecerValor en una macro especificada por la propiedad de evento DespusDeActualizar (AfterUpdate) del control. No obstante, no puede utilizar la accin EstablecerValor en una macro especificada por la propiedad de evento AntesDeActualizar (BeforeUpdate) del control para cambiar el valor de un control (aunque puede utilizar EstablecerValor para cambiar el valor de los otros controles). Tambin puede usar la accin EstablecerValor en una macro especificada por las propiedades AntesDeActualizar (BeforeUpdate) o DespusDeActualizar (AfterUpdate) de un formulario para cambiar el valor de cualquiera de los controles del registro actual. No puede utilizar la accin EstablecerValor para establecer el valor de los siguientes controles: Los controles dependientes y los controles calculados de los informes. Los controles calculados de los formularios. Puede utilizar la accin EstablecerValor para ocultar o mostrar un formulario en la vista Formulario. Introduzca Forms! nombreformulario.Visible en el cuadro Elemento y No o S en el cuadro Expresin. Esta accin no est disponible en Microsoft Visual B asic. Establezca el valor directamente en Visual Basic.

2.13

QU ES UN GRUPO DE MACROS?

Cuando se tienen muchas macros, el reunir las que estn relacionadas en grupos de macros puede simplificar la administracin de la base de datos. Por ejemplo, el siguiente grupo de macros, denominado Botones, se compone de tres macros relacionadas: Empleados, Productos y Representantes. Cada macro realiza la accin AbrirFormulario y, adems, la macro Productos realiza la accin DesplazarTamao.

Manual de Metodologa de la Programacin Orientada a Access

17

El nombre en la columna Nombre de macro identifica a cada macro. Cuando se ejecuta una macro en un grupo de macros, Microsoft Access lleva a cabo la accin de la columna Accin y cualquier otra accin que siga inmediatamente con una columna Nombre de macro en blanco. Para ejecutar una macro de un grupo de macros en un evento o procedimiento de evento, escriba el nombre del grupo de macros seguido de un punto y del nombre de la macro. En el ejemplo anterior, para hacer referencia a la macro Empleados en el grupo de macros Botones, escribira Botones.Empleados.

2.14

ACCIONES CONDICIONALES

En algunos casos, puede desear llevar a cabo una accin o serie de acciones en una macro solamente si se cumple una condicin (parte del criterio que debe cumplir un campo cuando se realiza una bsqueda o se aplica un filtro.) concreta. Por ejemplo, si est utilizando una macro para validar los datos de un formulario, puede desear presentar un mensaje en respuesta a un conjunto de valores introducidos en un registro y otro mensaje en respuesta a otro conjunto diferente de valores. En casos como stos, puede utilizar las condiciones para controlar el flujo de la macro. Una condicin es una expresin (cualquier combinacin de operadores matemticos o lgicos, constantes, funciones y nombres de cam pos, controles y propiedades que evala a un solo valor. Las expresiones pueden realizar clculos, manipular caracteres o probar datos.) lgica que se evala como Verdadero/Falso o S/No. La macro sigue trayectorias diferentes dependiendo de si la condic in es verdadera o falsa. Cuando ejecuta la macro, Microsoft Access evala la primera expresin condicional. Si la condicin es verdadera, Microsoft Access lleva a cabo la accin en esa fila y cualquiera de las acciones inmediatamente posteriores que vayan precedidas por puntos suspensivos (...) en la columna Condicin.

Manual de Metodologa de la Programacin Orientada a Access

18

Microsoft Access ejecuta entonces cualquier accin adicional en la macro que tenga una columna de Condicin en blanco, hasta que alcance otra expresin, un nombre de macro o el final de la macro. Si la condicin es falsa, Microsoft Access omite la accin y cualquier otra accin inmediatamente posterior que vaya precedida por puntos suspensivos en la columna Condicin. Despus, se desplaza a la siguiente fila de accin que contenga otra condicin o una columna Condicin en blanco.

2.15

ARGUMENTOS DE ACCIN

Los argumentos de accin son datos adicionales necesarios para algunas acciones de macro, por ejemplo, el objeto que se ver afectado por la accin o las condiciones especiales en las que la accin se ejecuta. Despus de agregar una accin a una macro se establecen los argumentos de la accin en la parte inferior de la ventana Macro. Estos argumentos dan a Microsoft Access informacin adicional sobre cmo llevar a cabo la accin.

2.15.1 SUGERENCIAS PARA ESTABLECER ARGUMENTOS DE ACCIN En general, es una buena idea establecer los argumentos de la accin en el orden en el que estn listados, porque las opciones de un argumento pueden determinar las opciones de los argumentos que le siguen. Si para agregar una accin a una macro se arrastra un objeto de base de datos desde la ventana Base de datos, Microsoft Access establece automticamente los argumentos correspondientes para esa accin. Si una accin tiene un argumento que requiere el nombre de un objeto de la base de datos, puede establecer de forma automtica el argumento y el tipo de objeto correspondiente arrastrando el objeto desde la ventana Base de datos al cuadro del argumento. Puede usar una expresin (cualquier combinacin de operadores matemticos o lgicos, constantes, funciones y nombres de campos, controles y propiedades que evala a un solo valor. Las expresiones puede realizar clculos, manipular caracteres o probar datos.) precedida de un signo igual (=) para establecer muchos argumentos de accin.
Manual de Metodologa de la Programacin Orientada a Access 19

2.16

ASIGNAR UNA ACCIN O UNA SERIE DE ACCIONES A UNA TECLA

Puede asignar una accin o un conjunto de acciones a una tecla o una combinacin de teclas especfica creando un grupo de macros denominado AutoKeys. Cuando presione la tecla o la combinacin de teclas, Microsoft Access ejecutar la accin. Si asigna una accin a una combinacin de teclas de Access (por ejemplo, CTRL+C es la combinacin de teclas para Copiar), la accin que asigne a esa combinacin de teclas sustituir a la asignacin de teclas de Access. La tabla siguiente muestra las combinaciones de teclas que puede utilizar para realizar asignaciones de teclas en un grupo de macros AutoKeys. Estas combinaciones de teclas son un subconjunto de la sintaxis empleada en la instruccin EnviarTeclas de Microsoft Visual Basic. Sintaxis de EnviarTeclas ^A or ^4 {F1} ^{F1} +{F1} {INSERT} ^{INSERT} +{INSERT} {SUPR} o {SUPR} ^{SUPR} o ^{ SUPR } +{SUPR} o +{ SUPR } 2.17 CONVERTIR MACROS A VISUAL BASIC Combinacin de teclas CTRL+A o CTRL+4 F1 CTRL+F1 MAYS+F1 INS CTRL+INS MAYS +INS SUPR CTRL+SUPR MAYS+SUPR

Microsoft Access puede convertir automticamente macros en procedimientos de evento o mdulos de Microsoft Visual Basic que realicen acciones equivalentes usando cdigo de Vis ual Basic. Se puede convertir las macros de un formulario o informe, o convertir macros generales que no estn asociados a un formulario o informe determinado.

2.17.1 CONVERTIR MACROS DE UN FORMULARIO O INFORME Abra el formulario o el informe en la vista Diseo. Seleccione Macro en el men Herramientas y, a continuacin, haga clic en Convertir macros del formulario a Visual Basic o en Convertir macros del informe a Visual Basic.

Manual de Metodologa de la Programacin Orientada a Access

20

2.17.2 CONVERTIR MACROS GENERALES A VISUAL BASIC En la ventana Base de datos, haga clic en Macros, bajo Objetos. Haga clic en el nombre de la macro que desea convertir. En el men Archivo, haga clic en Guardar como. En el cuadro de dilogo Guardar como, haga clic en Mdulo en el cuadro de texto inferior y haga clic en Aceptar. En el cuadro de dilogo Convertir macro , seleccione las opciones que desee y haga clic en Convertir.

Manual de Metodologa de la Programacin Orientada a Access

21

Ejercicio 1: IMPORTAR TABLAS Y APLICAR UN FILTRO


INSTRUCCIONES: Importa las tablas de la base de datos Metodologa.mdb, situada en G:\Curso\Metodologa de la programacin, o copia el archivo a tu disco duro. Crea una macro que abra la tabla Empleados, y aplica un filtro para mostrar aquellos registros cuya poblacin sea Madrid.

Manual de Metodologa de la Programacin Orientada a Access

22

Ejercicio 2: CAMBIAR LA PROPIEDAD DE UN CONTROL


INSTRUCCIONES: Crear un formulario agregando un control de tipo Cuadro de texto, y otros 2 de tipo Botn de comando. Crear un grupo de macros para qu al pulsar el Botn1, muestre el texto Comunidad de Madrid dentro del cuadro de edicin, y al pulsar sobre el Botn2 borre el texto.

Manual de Metodologa de la Programacin Orientada a Access

23

Ejercicio 3: CREAR UNA MACRO CONDICIONAL


INSTRUCCIONES: Crear un formulario basado en tabla Empleados, escogiendo los campos dsNombre, dsApellidos y cdPoblacin. Aplicando la distribucin Tabular, y el diseo Estndar. Ponerle por nombre Formulario Empleados. Agregar en el Pie del Formulario un control del tipo Grupo de Opciones, con cuatro Botones de Alternar, con las letras A, B, C y Mostrar Todos. Crear una macro condicional para que dependiendo del botn pulsado, aplique un filtro sobre el campo dsApellidos para que empiece con la letra que le corresponde, o en ltimo caso, desactive el filtro que est aplicado en el formulario.

Manual de Metodologa de la Programacin Orientada a Access

24

CAPTULO 3: MDULOS

Como ya se mencion con anterioridad, para la programacin de mdulos se utiliza el lenguaje de progra macin Visual Basic for Aplications, ms conocido por sus siglas VBA. La mecnica a seguir a la hora de introducir cdigo programado en Access es la siguiente: nosotros dispondremos nuestro elemento que desencadenar el cdigo (por ejemplo un botn en un formulario). A continuacin, desplegaremos su men contextual, nos situaremos en la pestaa eventos y le indicaremos que al producirse el evento deseado (hacer clic suele ser el ms habitual) nos abra el generador de cdigo (pulsaremos el botn con 3 puntitos) desde este generador introduciremos el cdigo que queremos que se ejecute cuando se produzca ese evento. Pero de esta forma tendremos un trozo de cdigo asociado a un botn, si nosotros quisiramos asociar de nuevo ese cdigo a otro botn de otro formulario por ejemplo deberamos repetir toda la operacin de generacin de cdigo. Para solucionar esto tenemos la posibilidad de crear subrutinas. Las subrutinas son trozos de cdigo que ejecutan una cierta accin y que se pueden guardar para su posterio r utilizacin. Para guardar las subrutinas disponemos de los mdulos. Por lo tanto podemos definir un mdulo como una coleccin de subrutinas relacionadas de algn modo. Y qu ocurre con el cdigo que introducimos directamente al crear el evento? Bien, e ste cdigo permanece almacenado dentro del formulario en el que se encuentra el botn con el cdigo asociado, de tal forma que si borramos el formulario tambin borraremos todo el cdigo. Por lo tanto mediante los mdulos con subrutinas podemos crear cdigo independiente de los formularios y almacenarlos en elementos independientes de Access.

Manual de Metodologa de la Programacin Orientada a Access

25

No se preocupe el lector si no le han quedado claro todos los conceptos expuestos hasta ahora, debido a su densidad, estos conceptos se explicaran con ms profundidad en los captulos siguientes. 3.1 AYUDA DE VBA

Para acceder a la ayuda de Visual Basic antes de nada debemos abrir el editor de Visual Basic. Para ello creamos un nuevo formulario en vista de diseo y colocamos un elemento al que asignar un trozo de cdigo, el elemento ms habitual suele ser un botn. Una vez tengamos nuestro botn en el formulario pulsaremos sobre l con el botn derecho y nos situaremos en la pestaa eventos. En esta pestaa disponemos de una entrada para cada posible desencadenador de evento (hacer clic, hacer doble-clic...), eligiendo el que ms nos convenga. Para abrir el editor de Visual Basic deberemos pulsar el botn con los 3 puntos y en el men emergente elegir la opcin generador de cdigo. Tras realizar los pasos anteriores deberemos tener una pantalla similar a la siguiente:

En esta ventana, si pulsamos sobre el men ayuda - > ayuda de Microsoft Visual Basic entraremos a la ayuda de Visual Basic. Otra forma, quiz ms adecuada, es mediante la ayuda contextual. Para acceder a la ayuda contextual seleccionamos la palabra de la cual deseamos obtener la ayuda (por ejemplo el nombre de una funcin) y pulsamos la tecla F1, la ayuda de Visual Basic abre el tema de ayuda correspondiente a dicha palabra.

Manual de Metodologa de la Programacin Orientada a Access

26

Para poder utilizar la ayuda de Visual Basic de forma eficaz es recomendable conocer las convenciones utilizadas, estas son: Sintaxis Palabras clave Argumentos de la funcin Argumentos opcionales, que se pueden incluir u omitir Convencin de formato En negrita con la primera letra en maysculas Palabras en cursiva Corchetes Ejemplo Sub Array(listaDeArgumentos) Mid(cadena, inicio [, longitud])

Veamos un ejemplo para aclarar lo anterior. Escribimos la palabra msgbox y pulsamos F1 tenindola seleccionada, con lo cual la ayuda nos mostrar la siguiente pantalla

Que nos indica que MsgBox es una funcin que admite hasta 5 argumentos de los cuales el nico obligatorio es el primero. Adems la ayuda nos muestra informacin adicional sobre el significado de los argumentos, un ejemplo detallado del uso de esa funcin y otras funciones que pudieran estar relacionadas con la anterior. Adems de la ayuda, Visual Basic nos facilita la tarea de introduccin de cdigo, pues al introducir el nombre de un objeto o una funcin nos aparecer un recuadro amarillo indicndonos las propiedades disponibles o los argumentos necesarios.

Manual de Metodologa de la Programacin Orientada a Access

27

3.2

INTRODUCCIN A LOS MDULOS Y SUBRUTINAS

Como ya se coment con anterioridad cuando nosotros introducimos cdigo lo hacemos mediante instrucciones dentro de subrutinas. Estas subrutinas pueden estar incluidas en un formulario o informe, o bien en un mdulo independiente. Por lo tanto las subrutinas estn formadas por instrucciones. Una instruccin es una lnea de cdigo que realiza una tarea. Con una instruccin podemos asignar un valor a una variable, realizar un clculo o abrir un formulario. Ejemplo: Con esta instruccin lo que hacemos es multiplicar el contenido de la variable precio por el de la variable cantidad y el resultado se lo asignamos a la variable total. Por lo tanto una subrutina es un conjunto de instrucciones que conjuntamente realizan una tarea ms compleja. Ejemplo : Solicitamos al usuario informacin sobre el precio y la cantidad y le mostramos el total. Para ello necesitamo s instrucciones para mostrar mensajes al usuario (Introducir el precio y la cantidad), instrucciones para almacenar esos valores en variables, instrucciones para realizar el clculo (la instruccin del ejemplo anterior) y para finalizar instrucciones para mostrar el resultado. El resultado en cdigo VBA es el siguiente:

Como ver las instrucciones se componen de palabras y/o operadores. Hay ciertas palabras especiales, denominadas palabras clave, que tienen un significado especial, por ejemplo la palabra Dim que sirve para definir variables. Los mdulos son grupos de subrutinas con funcionalidades relacionadas de alguna forma (subrutinas matemticas, de consultas). Los mdulos nos sirven para almacenar subrutinas independientemente de los formularios o los informes. Los mdulos son similares al resto de objetos de la base de datos, es necesario guardarlos y darles un nombre.

3.2.1

PARA CREAR UN MDULO NUEVO En la ventana principal de la Base de Datos, en la barra objetos haga clic en mdulos.

Manual de Metodologa de la Programacin Orientada a Access

28

Una vez situado en la seccin mdulos haga clic en nuevo para crear un nuevo mdulo.

Se abrir el editor de Visual Basic y aparecer la ventana cdigo.

Manual de Metodologa de la Programacin Orientada a Access

29

Cuando finalice la creacin del mdulo, introduciendo la/s subrutinas que lo formarn deber guardarlo. Para ello: Haga clic en guardar, mediante la barra de herramientas o a travs de la opcin de men Archivo - Guardar

Escribimos el nombre del mdulo y hacemos clic en Aceptar.

Manual de Metodologa de la Programacin Orientada a Access

30

Despus de guardado, un mdulo puede ser abierto de nuevo para modificarlo de algn modo o revisar el cdigo que ha escrito, para ello en la seccin mdulos haga doble clic sobre el modulo que quiera abrir o seleccinelo con un clic y pulse el botn diseo.

Del mismo modo, para eliminar un mdulo lo seleccionamos y pulsamos la tecla SUPR o bien el botn eliminar.

3.2.2

CREACIN DE UNA SUBRUTINA

Las subrutinas pueden utilizarse para tareas que vayan a ser compartidas o realizadas varias veces. Para crear una subrutina utilizamos la palabra reservada Sub o function (de momento trataremos las subrutinas sub), un nombre, que ser el nombre de la subrutina y unos argumentos entre parntesis (los argumentos los trataremos con posterioridad). Al finalizar la subrutina es necesario utilizar las palabras End Sub, aunque estas las inserta el editor automticamente.

Manual de Metodologa de la Programacin Orientada a Access

31

Las instrucciones que componen la subrutina irn colocadas entre Sub y End Sub segn el siguiente esquema: Sub NombreSubrutina([Argumentos]) Instrucciones End Sub Veamos un ejemplo: Cree una nueva base de datos y pngale un nombre.

En la seccin mdulos haga clic en nuevo para crear un nuevo mdulo

Debe aparecer la frase Option Compare Database compararse las cadenas de texto en este mdulo.
Manual de Metodologa de la Programacin Orientada a Access

que indica cmo deben de


32

Debajo de la frase anterior escriba Sub saludo y pulse intro.

Deben de haberse escrito los parntesis vacos (nuestra subrutina no tiene argumentos), adems de la frase End Sub y el cursor se debe de haber colocado entre las dos frases.

Escriba la instruccin MsgBox (Hola mundo)

La instruccin anterior consta de la funcin MsgBox, que sirve para mostrar mensajes y el argumento Hola mundo que es la frase a mostrar, pero al ser un texto debe de ir entre comillas. Con esto hemos terminado nuestra primera subrutina, solamente nos falta ejecutarla para probar que funciona, para ello pulsamos el botn ejecutar sub/user form de la barra de tareas.
Manual de Metodologa de la Programacin Orientada a Access 33

Si en nuestro mdulo hubiera ms de una subrutina se ejecutara aquella en la que estuviera el cursor o si ste no est en ninguna subrutina nos mostrara un dialogo en el cual elegiramos la que queremos ejecutar.

3.3

VARIABLES

Una variable es un trozo de memoria en el que podemos almacenar valores. Podemos imaginarnos las variables como cajas que contienen datos en su interior. Para poder utilizar una variable, lo primero que debemos hacer es declararla. Declarar una variable consiste en darle un nombre e indicar el tipo de datos que puede contener. Para ello utilizamos la palabra reservada Dim de la siguiente forma: Dim NombreVariable As TipoDeDatos Los nombres de variable deben comenzar con un carcter alfabtico, deben ser nicos dentro del mismo mbito (no puede haber dos variables con el mismo nombre en la misma subrutina), no deben contener ms de 255 caracteres y no pueden contener un punto o carcter de declaracin de tipo. Para indicar los tipos de datos de las variables se utilizan palabras reservadas. Existe una concordancia entre los tipos de datos para los campos y los tipos de datos de las variables:

Tipo de datos de campo Texto Nmero

Si/No Fecha/Hora Moneda

Tipos de datos de variables String Integer Long Double Single Bolean Date Currency

Existe un tipo especial de datos, el tipo Variant. En una variable de tipo variant puede almacenar cualquier tipo de datos, nmeros, texto Este tipo necesita ms memoria que el resto y es el que se aplica si no se indica nada. Es recomendable declarar las variables del tipo ms adecuado y slo usar variant cuando sea necesario, con el fin de ahorrar memoria. Como se ha indicado anteriormente, antes de usar una variable es necesario declararla, si bien Visual Basic no nos obliga a ello. No declarar variables no es aconsejable pues se pueden producir errores, para ello y con el fin de obligar siempre a declarar las variables podemos usar la instruccin Option Explicit al principio del mdulo. Tambin se puede configurar Visual Basic para que incluya esta instruccin en todos los mdulos nuevos.

Manual de Metodologa de la Programacin Orientada a Access

34

Para asignar un valor a una variable, esto es, almacenar ese valor en la variable, se debe usar la siguiente sintaxis: NombreDeVariable = valor Donde valor es un nmero, cadena de caracteres, o cualquier otro valor constante o bien el contenido de otra variable. Ejemplos: VariableEjemplo = 5 VariableEjemplo = Las cadenas de texto deben de ir entrecomilladas VariableEjemplo = OtraVariable Es conveniente que justo despus de declarar una variable se la inicialice, esto es, asignarle un valor inicial. Esta prctica es muy recomendable porque una variable no inicializada tendr un valor predeterminado, que depende de su tipo de datos. Para evitar problemas es recomendable seguir la siguiente estructura en nuestras subrutinas:

Sub NuestraSubrutina( ) Declaracin de las variables necesarias Inicializacin de las variables anteriores Instrucciones necesarias para la realizacin de la subrutina End Sub

Si a pesar de lo anterior decidimos no inicializar las variables que utilizaremos, es conveniente al menos conocer el valor predeterminado que les asigna Visual Basic, el cual se corresponde con la siguiente tabla: Tipo de datos String Date Integer, Long, Double, Valor predeterminado (cadena vaca) 30 de diciembre de 1899 0
35

Manual de Metodologa de la Programacin Orientada a Access

Single Boolean

False

3.4

USO DE EXPRESIONES

Muchas operaciones de Access usan expresiones. Una expresin es una combinacin de identificadores de variables, de campos, controles, smbolos que producen un resultado. Ya hemos visto algunas expresiones sencillas en los ejemplos anteriores. Las expresiones pueden ser aritmticas, de cadenas, de asignacin y de comparacin.

3.4.1

EXPRESIONES ARITMTICAS

Las expresiones aritmticas son iguales a las expresiones a las que estamos acostumbrados, as disponemos de los operadores suma, resta, multiplicacin Los operadores aritmticos los podemos usar con variables o con valores constantes, pero han de ser de un tipo vlido. No podemos sumar una variable cuyo contenido sea una cadena de caracteres con el nmero 5 por ejemplo. A continuacin se muestra una tabla con los distintos operadores y un ejemplo de utilizacin:

Operador + -

Significado Suma Resta

Ejemplo 75 + Total Ingresos Gastos 13 * 5 Beneficios / 5 29 mod 3 -

* / Mod

Multiplicacin Divisin Resto

Explicacin Suma 75 al contenido de la variable Total Resta el contenido del contenido de la variable Ingresos el contenido de la variable Gastos Multiplica el nmero 13 por 5 Divide el contenido de la variable Beneficios entre 5. Calcula el resto de la divisin de 29 entre 3, que en este caso es 2.

3.4.1.1 PRIORIDAD DE OPERADORES Debemos de tener en cuenta la prioridad de los operadores, esto es, el orden en el que se ejecutan las operaciones. El orden de prioridad de los operadores es el siguiente: Expresiones entre parntesis Multiplicacin y divisin Suma y resta Ejemplo: Total = 4+3*2, primero se multiplica 3*2, que da 6 y luego se le suman 4, con lo que la variable Total tendra un valor de 10. Si quisiramos sumar primero y multiplicar despus deberamos usar parntesis de la forma: Total = (4+3)*2, con lo que Total valdra 14.

3.4.2

CONCATENACIN DE CADENAS

La accin de juntar varias cadenas de caracteres en una sola se conoce como concatenacin. El operador utilizado para concatenar cadenas es el smbolo &.

Manual de Metodologa de la Programacin Orientada a Access

36

Ejemplo: cadResultado = cadena1 & cadena2 Suponiendo que el contenido de cadena1 es Hola y el de cadena2 es alumno, el resultado obtenido en la cadena cadResultado sera Holaalumno. Si quisiramos una separacin en el resultado la instruccin debera de haber sido: cadResultado= cadena1 & & cadena2 Se pueden concatenar datos que no sean cadenas de caracteres con datos de cadena, pues el resultado se convierte automticamente. As, la instruccin: cadResultado = Aula: & numAula Suponiendo que el contenido de la variable numAula es 5, el resultado obtenido en cadResultado sera Aula: 5

3.4.3

OPERADORES DE COMPARACIN

Las expresiones de comparacin sirven para comparar valores entre s, y devolver verdadero (true) o falso (false) en funcin de la expresin. Veamos un ejemplo:

Operador < > = <>

Significado Menor que Mayor que Igual a Distinto de

Ejemplo 10 < 5 Aula > 3 Apellido Garca cadena1 cadena2 10 <= 10 5 >= numero1 = <>

<= >=

Menor o igual que Mayor o igual que

Comentarios El resultado devuelto es false El resultado devuelto depende del valor de la variable Aula No confundir con el operador de asignacin El resultado depende de los valores de las variables cadena1 y cadena2. El resultado es true Depende del contenido variable numero1 de la

Si se intentan comparar datos distintos (una variable que contenga una cadena de caracteres con un nmero, por ejemplo) Visual Basic nos mostrar un mensaje de error. Es recomendable cerciorarse de que los datos que se comparan son del mismo tipo.

3.4.4

OPERADORES LGICOS

Al igual que ocurre en Access, en VBA tambin disponemos de operadores lgicos que sirven para comparar expresiones booleanas (expresiones verdadero/falso). Los operadores lgicos son AND, OR, XOR y NOT. El operador AND nos devuelve verdadero cuando las dos expresiones a comparar son verdaderas y falso en caso contrario. Su tabla de funcionamiento es la siguiente: Expresin 1 False False False True Expresin 2 False False
37

Resultado

Manual de Metodologa de la Programacin Orientada a Access

True True

False True

False True

El operador OR nos devuelve verdadero si al menos una de las dos expresiones es verdadera y falso si las dos son falsas. Su tabla de funcionamiento es la siguiente: Expresin 1 False False True True False True False True Expresin 2 False True True True Resultado

El operador NOT devuelve verdadero si la expresin es falsa y falso en caso de que la expresin sea verdadera. Su tabla de funcionamiento es la siguiente: Expresin False Trae True False Resultado

El operador XOR devuelve verdadero en caso de que solo una expresin sea verdadera y falso en caso de que las dos sean falsas o las dos sean verdaderas. Su tabla es: Expresin 1 False False True True False True False True Expresin 2 False True True False Resultado

3.5

COMENTARIOS EN EL CDIGO

A veces las subrutinas son difciles de entender a medida que se hacen ms complicadas y grandes, para facilitar su lectura por parte de otros usuarios, o por nosotros mismos ms adelante, es conveniente agregar comentarios. Los comentarios nos sirven para explicar el porqu de las instrucciones y las expresiones utilizadas. Puede agregar comentarios en cualquier lugar de una subrutina, para ello inserte un apstrofe y Visual Basic ignorar todo lo que haya despus y hasta el final de la lnea. Si necesita insertar comentarios de varias lneas no olvide incluir un apstrofe al principio de cada una. Ejemplo:

Los comentarios son fcilmente identificables, pues el editor de Visual Basic los pone de color verde (en este manual los marcaremos en gris) para as distinguirlos claramente del cdigo normal.
Manual de Metodologa de la Programacin Orientada a Access 38

3.6

ENTRADA Y SALIDA DE DA TOS

A menudo es necesario realizar tareas que requieran mostrar informacin al usuario o bien solicitar de ste algn dato. Para ello disponemos de instrucciones que nos permiten la entrada y salida de datos, InputBox y MsgBox respectivamente.

3.6.1

LA FUNCI N MSGBOX

La sintaxis de esta funcin es la siguiente: MsgBox( pregunta [, botones] [, ttulo] [, archivoDeAyuda, contexto]) Como ya sabemos los corchetes son argumentos opcionales de las funciones, por lo tanto el nico argumento necesario por esta funcin es el argumento pregunta. Este argumento se corresponde con la frase que se le mostrar al usuario. Un ejemplo tpico lo vimos anteriormente con la instruccin: MsgBox (Hola mundo). Esta instruccin muestra la frase elegida como argumento en un cuadro de dialogo, junto con el botn de aceptar.

Como vimos anteriormente, tambin disponemos de un argumento botones en el que le informamos a la funcin de qu botones, iconos y tipo de dialogo debe mostrar. Los posibles valores de este argumento son los siguientes: Constante VbOKOnly VbOKCancel VbAbortRetryIgnore VbYesNoCancel VbYesNo VbRetryCancel VbCritical VbQuestion VbExclamation VbInformation VbDefaultButton1 VbDefaultButton2 VbDefaultButton3 VbDefaultButton4 VbApplicationModal Valor 0 1 2 3 4 5 16 32 48 64 0 256 512 768 0 Descripcin Muestra solamente el botn Aceptar. Muestra los botones Aceptar y Cancelar. Muestra los botones Anular, Ignorar. Reintentar e

Muestra los botones S, No y Cancelar. Muestra los botones S y No. Muestra los botones Reintentar y Cancelar. Muestra el icono de mensaje crtico. Muestra el icono de pregunta de advertencia . Muestra el icono de mensaje de advertencia . Muestra el icono de mensaje de informacin. El primer botn es el predeterminado. El segundo botn es el predeterminado. El tercer botn es el predeterminado. El cuarto botn es el predeterminado. Aplicacin modal; el usuario debe responder al
39

Manual de Metodologa de la Programacin Orientada a Access

cuadro de mensajes antes de poder seguir trabajando en la aplicacin actual. VbSystemModal 4096 Sistema modal; se suspenden todas las aplicaciones hasta que el usuario responda al cuadro de mensajes. Agrega el botn Ayuda al cuadro de mensaje. Especifica la ventana del cuadro de mensaje como la ventana de primer plano. El texto se alnea a la derecha. Especifica que el texto debe aparecer para ser ledo de derecha a izquierda en sistemas hebreo y rabe.

VbMsgBoxHelpButton VbMsgBoxSetForeground VbMsgBoxRight VbMsgBoxRtlReading

16384 65536 524288 1048576

El valor del argumento botones se puede indicar usando el nombre de la constante o el valor numrico correspondiente. Hay que tener en cuenta que los distintos tipos de botones, iconos se pueden agrupar, para ello es necesario sumar sus valores y especificar el resultado. Ejemplo: Nos puede interesar mostrar un dialogo con los botones de aceptar y cancelar, junto con el icono de mensaje de advertencia. Para ello sumamos los valores de la tabla anterior, 1 para los botones de aceptar y cancelar y 48 para el icono de advertencia, por lo tanto nuestra funcin quedara: MsgBox (Hola mundo, 49). Si probamos el ejemplo anterior comprobaremos que Visual Basic nos da un error, esto es as, por que si utilizamos la funcin MsgBox para mostrar dilogos con varios botones la funcin nos devuelve informacin sobre que botn se ha pulsado. Esta informacin se corresponde con la siguiente tabla: Constante vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo 1 2 3 4 5 6 7 Valor Descripcin Aceptar Cancelar Anular Reintentar Ignorar S No

Al igual que ocurra anteriormente podemos usar el valor numrico directamente o la constante correspondiente. Por lo tanto, como en este caso MsgBox nos devuelve un valor, necesitamos una variable en la cual almacenarlo (si lo necesitamos podremos consultar el valor de esta varia ble con posterioridad), quedando la sintaxis de la instruccin: ValorDeRetorno = MsgBox( pregunta [, botones] [, ttulo] [, archivoDeAyuda, contexto]) El argumento ttulo establece la cadena que se mostrar en la barra de ttulo del cuadro de dialogo.

Manual de Metodologa de la Programacin Orientada a Access

40

Los dos argumentos restantes identifican el archivo de ayuda y el tema que se mostrar en caso de que el usuario pulse la tecla F1. Para finalizar veamos un sencillo ejemplo de utilizacin de la funcin MsgBox con valor de retorno, mostrando un mensaje segn el botn pulsado:

Como ver el ejemplo anterior es muy sencillo, tan solo mostramos el cdigo numrico del botn que se ha pulsado. Lo realmente interesante es realizar una tarea si se pulsa un botn y otra distinta si se pulsa el otro, pero para esto necesitamos usar sentencias condicionales, que veremos con posterioridad.

3.6.2

LA FUNCIN INPUTBOX

La funcin InputBox muestra un cuadro de dialogo que nos solicita la entrada de datos. Cuando pulsamos el botn aceptar devuelve una cadena con el contenido del cuadro de texto. La sintaxis de esta funcin es la siguiente: ValorDeRetorno = InputBox(pregunta [,ttulo] [, valor predeterminado]) Los argumentos pregunta y ttulo son iguales a los descritos para la funcin MsgBox. El argumento valor predeterminado indica que el valor que aparecer inicialmente en el cuadro de texto. Existen otros argumentos, como el fichero de ayuda, el contexto y opciones para determinar la posicin del cuadro de dialogo, pero los ms relevantes son estos tres. En la variable ValorDeRetorno se almacena el valor que el usuario ha escrito en el cuadro de texto, pudindose usar con posterioridad en la subrutina. Veamos un ejemplo de utilizacin de la funcin InputBox:

Manual de Metodologa de la Programacin Orientada a Access

41

Observaremos que lo nico distinto en este ejemplo es la propia utilizacin de la funcin InputBox, para ello hemos indicado los dos argumentos de la pregunta y del ttulo con sendas cadenas de caracteres y no hemos utilizado el argumento opcional de valor predeterminado. Para terminar, hemos almacenado este valor en la variable respuesta. Posteriormente hemos juntado el contenido de la variable respuesta (el nombre que el usuario nos haya respondido) con el saludo.

Manual de Metodologa de la Programacin Orientada a Access

42

Ejercicio 4: CONCATENAR Y CALCULAR


INSTRUCCIONES: Crea un mdulo con el nombre Eje rcicios, definiendo una Subrutina llamada Clculo en el que declares 2 variables de tipo Integer, luego, debes solicitar al usuario que te introduzca dos nmeros, los cuales tendrs que multiplicar y mostrar como resultado lo siguiente:

Manual de Metodologa de la Programacin Orientada a Access

43

CAPTULO 4: CONTROL DEL FLUJO DE EJECUCIN: SENTENCIAS CONDICIONALES

Normalmente la ejecucin del cdigo contenido en una subrutina se realiza de arriba hacia abajo, es decir, las instrucciones se ejecutan una por una comenzando por la que est inmediantamente despus de Sub nombreSubrutina( ) hasta llegar a End Sub. Cmo ya se ha comentado anteriormente, en determinadas ocasiones nos interesa realizar una tarea si el usuario pulsa el botn aceptar y otra distinta si se pulsa el botn cancelar, para esto necesitamos una forma de dirigir la ejecucin por una va o por otra, en funcin de una condicin. Normalmente esta condicin es una expresin de comparacin que produce un valor verdadero o falso. El ejemplo anterior de la pulsacin de varios botones no es el nico en el que nos interesa realizar bifurcaciones de nuestro cdigo, para resolver ciertas subrutinas tambin son necesarias. Por ejemplo, para determinar si un nmero proporcionado por el usuario es par o impar podemos realizar el mdulo de dicho nmero entre 2 y si el resto es 0 el nmero es par e impar en caso contrario. La bifurcacin de nuestro cdigo lo conseguimos con la utilizacin de sentencias condicionales, en VBA existen cuatro tipos de sentencias condicionales: If Then If Then Else If Then Elseif Else Select Case Fjese el lector que tres de los tipos son variaciones de la estructura If. 4.1 SENTENCIA IF THEN

En general esta estructura se utiliza cuando queremos que se ejecuten ciertas instrucciones cuando se cumpla una condicin y que no se haga nada si no se cumple. La forma comn de uso de la sentencia If Then es la siguiente: If condicin Then Instrucciones End If Donde condicin es una expresin de comparacin. Obsrvese la necesidad de emplear las palabras reservadas End If para indicar el trmino de las instrucciones a ejecutar en caso de que la condicin se evale a verdadero.
Manual de Metodologa de la Programacin Orientada a Access 44

Estas palabras reservadas no son necesarias si nicamente debemos ejecutar una instruccin y lo hacemos en una misma lnea, utilizando la siguiente sintaxis: If condicin Then instruccin Un ejemplo de uso de la estructura If Then es el siguiente:

Como la estructura anterior consta tan solo de una instruccin podramos ponerlo todo en una sola lnea sin la necesidad de End If, de la siguiente forma: If x < 10 Then MsgBox(El contenido de la variable x es menor de 10) En cualquiera de los dos casos el resultado es el mismo, siendo la diferencia por tanto tan solo una reduccin del cdigo a emplear. Si observamos el ejemplo, el cuadro de dialogo con el mensaje tan solo se mostrar cuando el contenido de la variable x sea inferior a 10, si el contenido fuera 10 o superior no se mostrara nada.

4.2

SENTENCIA IF THEN ELSE

Como hemos visto, el caso anterior tiene utilidad cuando queramos ejecutar un cierto cdigo si se cumple una condicin y nada en caso contrario, pero a veces nos interesa ejecutar un trozo de cdigo si la condicin se evala a verdadero y otro trozo distinto si se evala a falso. Para ello usaremos esta variante de estructura If, cuaya sintaxis es la siguiente: If condicin Then Instrucciones en caso de condicin verdadera Else Instrucciones en caso de condicin falsa End If El ejemplo anterior lo podemos mejorar si mostrasemos adems un cuadro de dialogo informando de que el contenido de la variable es mayor de 10. Para ello pondramos el siguiente cdigo:

Si observamos detenidamente lo que hacemos es una bifurcacin en la ejecucin del cdigo, ste comenzar secuencialmente y al llegar a la estructura If se ejecutar un trozo u otro (nunca los dos a la vez) continuando secuencialmente despus del End If. 4.3 SENTENCIA IF THEN ELSEIF ELSE

Esta variacin es utilizada cuando las posibles alternativas en la ejecucin del cdigo son tres o ms. Su sintaxis es la siguiente:
Manual de Metodologa de la Programacin Orientada a Access 45

If condicin1 Then Instrucciones para la alternativa 1 ElseIf condicin2 Then Instrucciones para la alternativa 2 Else Instrucciones para la alternativa 3 End If Podemos insertar tantos bloques ElseIf como sean necesarios para reflejar todas las posibles alternativas. Siguiendo con el ejemplo anterior, puede que nos interesara mostrar un mensaje en caso de que el contenido de la variable fuera menor de 10, otro en caso de que fuera 10 y otro distinto si el contenido de la variable fuera mayor de 10, para ello el cdigo necesario sera:

En este caso tiene un ejemplo completo, observe la utilizacin de la instruccin InputBox para recoger informacin del usuario, los comentarios utilizados para mejorar la legibilidad y el uso de la estructura If The n ElseIf Else. Como se disponen de varias sentencias, es necesario una planificacin que determine el nmero de alternativas necesarias y por lo tanto que sentencia utilizar.

4.4

SENTENCIA SELECT CASE

La sentencia Select Case se utiliza cuando existen gran cantidad de alternativas. Aunque para ello podemos usar la estructura If Then ElseIf Else con varios bloques ElseIf, el cdigo resultante sera enrevesado y dificultoso de leer, por lo tanto disponemos de la estructura Select Case que es ms adecuada para estos casos. Esta estructura est especialmente indicada para probar el valor de una expresin en un intervalo de valores posibles. Su sintaxis es: Select Case expresin Case expresin1 Instrucciones para la alternativa 1 Case expresin2 Instrucciones para la alternativa 2 Case expresinN
Manual de Metodologa de la Programacin Orientada a Access 46

Instrucciones para la alternativa N Case Else Instrucciones para la alternativa no coincidente con ninguna anterior End Select El siguiente cdigo muestra como utilizar la sentencia Select Case, para ello solicitaremos el nombre de un pas al usuario y mostraremos su capital o la frase desconozco ese pas en caso de que el pas est mal escrito o no fuera una de las alternativas.

En el ejemplo anterior se hace uso del operador & para concatenar cadenas tal y como hemos visto. Observe adems que en el caso de que el pas introducido no coincida con ninguna de las alternativas propuestas se ejecutara la clusula Case Else.

Manual de Metodologa de la Programacin Orientada a Access

47

Ejercicio 5: LOS MESES DEL AO


INSTRUCCIONES: En el mdulo anterior generar una sentencia condicional, para que en funcin de la fecha introducida por el usuario, el programa nos muestre el da de la semana que le corresponde.

Manual de Metodologa de la Programacin Orientada a Access

48

Ejercicio 6: MAYOR, MENOR O IGUAL


INSTRUCCIONES: Crear una subrutina en el mismo mdulo para qu en funcin de dos valores introducidos por el usuario, nos devuelva como respuesta si un nmero es mayor que el otro, o bien, que ambos son iguales.

Manual de Metodologa de la Programacin Orientada a Access

49

Вам также может понравиться