Introducción a la programación de Access

Al crear una nueva base de datos, se suele empezar creando varios objetos de base de datos como tablas, formularios e informes. Finalmente, llega a un punto en que necesita agregar alguna programación para automatizar ciertos procesos y mantener agrupados los objetos de base de datos. Este artículo proporciona orientación al usuario sobre las herramientas de programación en Access 2010.

 Nota   Puede agregar código de Visual Basic para aplicaciones (VBA) a una base de datos web; sin embargo, no puede ejecutar ese código mientras se ejecuta la base de datos en un explorador web. Si la base de datos web contiene código VBA, primero debe abrir la base de datos web mediante Access antes de ejecutar el código. Para realizar tareas de programación en una base de datos web, use macros de Access en su lugar.

Para obtener más información acerca de bases de datos web, vea el artículo sobre cómo crear una base de datos para compartir en la Web.

En este artículo


Qué es la programación

En Access, la programación es el proceso de agregar funcionalidad a la base de datos mediante el uso de macros de Access o código de Visual Basic para Aplicaciones (VBA). Por ejemplo, suponga que ha creado un formulario y un informe y desea agregar un botón de comando al formulario que, cuando se haga clic en él, abra el informe. En este caso, la programación es el proceso de crear una macro o un procedimiento de VBA y establecer a continuación la propiedad de evento AlHacerClic del botón de comando de manera que, al hacer clic en el botón de comando, se ejecute la macro o el procedimiento. En el caso de una operación sencilla, como abrir un informe, puede usar el Asistente para botones de comando para que realice todo el trabajo, o puede desactivarlo y realizar la programación usted mismo.

 Nota   Muchos programas de Microsoft Office usan el término "macro" para referirse a código de VBA. Esto puede inducir a confusión a los usuarios de Access porque, en Access, el término "macro" hace referencia a una colección con nombre de acciones de macro que puede reunir mediante el uso del Generador de macros. Las acciones de macro de Access representan únicamente un subconjunto de los comandos disponibles en VBA. El Generador de macros proporciona una interfaz más estructurada que el Editor de Visual Basic, permitiendo al usuario agregar programación a controles y objetos sin tener que aprender código de VBA. Debe recordar que, en los artículos de Ayuda de Access, las macros de Access reciben el nombre de macros. Sin embargo, el código, las funciones o los procedimientos de VBA se denominan código de VBA. El código de VBA está contenido en módulos de clases (que forman parte de formularios o informes individuales y que, normalmente, contienen código sólo para esos objetos) y en módulos (que no están vinculados a objetos específicos y que suelen contener código "global" que se puede usar en toda la base de datos).

Los objetos (por ejemplo, formularios e informes) y los controles (por ejemplo, botones de comando y cuadros de texto) tienen varias propiedades de evento a las que se pueden adjuntar macros o procedimientos. Cada propiedad de evento está asociada a un evento concreto, como hacer clic en un botón del mouse, abrir un formulario o modificar datos en un cuadro de texto. Los eventos también pueden ser desencadenados por factores externos a Access, como eventos del sistema, o por macros o procedimientos adjuntos a otros eventos. La base de datos puede aumentar su complejidad si se agregan numerosos procedimientos o macros a varias propiedades de evento de muchos objetos pero, en la mayoría de los casos, se pueden conseguir los resultados deseados usando muy poca programación.

Volver al principio Volver al principio

¿Se deben usar macros o código de VBA?

La decisión respecto de si usar macros, VBA o ambos depende principalmente de la forma en que se piense implementar o distribuir la base de datos. Por ejemplo, si la base de datos se almacena en su equipo y usted es el único usuario, y si se siente cómodo trabajando con el código de VBA, posiblemente decida usar VBA para desarrollar la mayoría de las tareas de programación. Sin embargo, si planea compartir la base de datos con otras personas y colocarla en un servidor de archivos, posiblemente prefiera evitar usar VBA por razones de seguridad. Si piensa publicar la base de datos como una aplicación web de Access, deberá usar macros en lugar de VBA para desarrollar las tareas de programación, porque VBA no es compatible con la característica de publicación en Web.

Aplicaciones web de Access    Las aplicaciones web de Access son una característica nueva de Access 2010 con la que puede publicar una aplicación en un servidor de Microsoft SharePoint que ejecute Access Services. Esto permite que otras personas puedan usar la base de datos a través de un explorador estándar de Internet, en lugar de necesitar tener Access instalado en sus equipos. Sin embargo, como el código de VBA no es compatible con la característica de publicación en Web, si planea publicar la aplicación como una aplicación web de Access, deberá usar únicamente macros para realizar tareas de programación.

Cuando se diseñen aplicaciones web de Access, se deberá comenzar por hacer clic en Base de datos web en blanco cuando se inicie Access por primera vez. Esto limita las características que se pueden usar para crear la base de datos, lo que permitirá asegurar que la aplicación web se publique correctamente.

Aplicaciones cliente    Si no planea publicar la aplicación en un servidor de Access Services, deberá basar la decisión de usar macros o código de VBA en dos aspectos: la seguridad y la funcionalidad que desee lograr. La seguridad es un aspecto problemático porque se puede usar VBA para crear código que comprometa la seguridad de los datos o dañe los archivos de su equipo. Cuando emplea una base de datos creada por otra persona, sólo debe habilitar el código de VBA si tiene la certeza de que la base de datos procede de una fuente de confianza. Cuando crea una base de datos que va a ser usada por otros usuarios, debe evitar incluir herramientas de programación que obliguen a dichos usuarios a otorgar específicamente el estado de confianza a la base de datos. Las técnicas generales para evitar que los usuarios necesiten tener confianza en la base de datos se exponen más adelante en esta sección.

Para garantizar la seguridad de la base de datos, debe usar macros cuando sea posible y emplear la programación de VBA sólo en operaciones que no se puedan realizar mediante acciones de macro. Además, sólo debe usar acciones de macro que no requieran la concesión del estado de confianza a la base de datos para poder ejecutarla. La limitación del uso de acciones de macro permite a los usuarios tener confianza en que la base de datos no contiene programación que pueda dañar sus datos u otros archivos de sus equipos.

Consideraciones sobre macros

Access 2010 contiene muchas acciones de macro nuevas que le permiten crear macros más eficaces que las que se pueden crear con las versiones anteriores de Access. Por ejemplo, ahora puede crear y emplear variables temporales globales mediante el uso de acciones de macro, así como controlar errores más fácilmente mediante las nuevas acciones de macro para el control de errores. En las versiones anteriores de Access, estos tipos de características solo están disponibles si se usa VBA. Además, puede incrustar una macro directamente en la propiedad de evento de un objeto o control. Una macro incrustada forma parte del objeto o control y permanece con el objeto o control si se mueve o se copia.

Las macros proporcionan un método sencillo para ocuparse de muchas tareas de programación, como la apertura y cierre de formularios y la ejecución de informes. Los objetos de base de datos (formularios, informes, etc.) que se han creado se pueden vincular rápida y fácilmente porque no es necesario recordar mucha sintaxis. Los argumentos para cada acción se muestran en el Generador de macros.

Además de la mayor seguridad y facilidad de uso que proporcionan las macros, debe usar macros para realizar las siguientes tareas:

  • Asignar una acción o un conjunto de acciones a una tecla. Esto requiere la creación de un grupo de macros denominado AutoKeys.
  • Realizar una acción o una serie de acciones cuando se abre una base de datos por primera vez. Esto requiere la creación de una macro denominada AutoExec.

 Nota    La macro AutoExec se ejecuta antes que cualquier otra macro o código de VBA, aunque haya designado un formulario de inicio en el cuadro de diálogo Opciones de Access y adjuntado una macro o código de VBA al evento AlAbrir o AlCargar de ese formulario.

Para obtener más información acerca de cómo crear macros, vea la sección Comprender macros.

Consideraciones de VBA

Debe usar programación de VBA en lugar de macros si desea realizar una de las acciones siguientes:

  • Usar funciones integradas o crear funciones propias    Access incluye muchas funciones integradas, como la función Interés, que calcula un pago de intereses. Puede usar estas funciones integradas para realizar cálculos sin tener que crear expresiones complicadas. Mediante el uso de código de VBA, también puede crear funciones propias para realizar cálculos que superen la capacidad de una expresión o para reemplazar expresiones complejas. Además, puede usar las funciones que cree en expresiones para aplicar una operación normal a más de un objeto.
  • Crear o manipular objetos    En la mayoría de los casos, verá que es más fácil crear y modificar un objeto en la vista Diseño de ese objeto. Sin embargo, en algunas situaciones, es posible que desee manipular la definición de un objeto en código. Mediante el uso de VBA, puede manipular todos los objetos de una base de datos y la propia base de datos.
  • Realizar acciones en el nivel de sistema    Puede realizar la acción EjecutarAplicación en una macro para ejecutar otro programa (como Excel) desde Access, pero no puede usar una macro para realizar muchas más cosas fuera de Access. Si emplea VBA, puede comprobar si existe un archivo en el equipo, usar la Automatización o el Intercambio dinámico de datos (DDE) para comunicarse con otros programas basados en Microsoft Windows, como Excel, y llamar a funciones en las Bibliotecas de vínculos dinámicos (DLL) de Windows.
  • Manipular registros de uno en uno    Puede usar VBA para recorrer un conjunto de registros, de uno en uno, y realizar una operación en cada registro. En contraposición, las macros funcionan con conjuntos completos de registros de una vez.

Volver al principio Volver al principio

Usar el Asistente para botones de comando para realizar tareas comunes de programación

Si va a agregar un botón de comando a un formulario, el Asistente para botones de comando puede ayudarle a introducirse en la programación. El asistente ayuda a crear un botón de comando que realiza una tarea específica. En un archivo de Access 2010 (.accdb), el asistente crea una macro que se incrusta en la propiedad AlHacerClic del botón de comando. En un archivo .mdb o .adp, el asistente crea código de VBA porque en estos formatos de archivo no hay disponibles macros incrustadas. En cualquiera de los casos, puede modificar o mejorar la macro o el código de VBA para que se adapte mejor a sus necesidades.

  1. En el Panel de navegación, haga clic con el botón secundario en el formulario al que desea agregar el botón de comando y, a continuación, haga clic en Vista Diseño.
  2. En la ficha Diseño, haga clic en la flecha abajo para mostrar la galería Controles y, a continuación, asegúrese de que Utilizar asistentes para controles esté seleccionado.
  3. En la ficha Diseño, en la galería Controles, haga clic en Botón.
  4. En la cuadrícula de diseño del formulario, haga clic en el lugar donde desee colocar el botón de comando.

Se inicia el Asistente para botones de comando.

  1. En la primera página del asistente, haga clic en cada categoría de la lista Categorías para ver qué acciones puede programar el asistente para que las realice el botón de comando. En la lista Acciones, seleccione la acción que desee y, a continuación, haga clic en Siguiente.
  2. Haga clic en la opción Texto o en la opción Imagen, dependiendo de si desea que se muestre texto o una imagen en el botón de comando.
    • Si desea que se muestre texto, puede editarlo en el cuadro situado junto a la opción Texto.
    • Si desea que se muestre una imagen, el asistente sugiere una imagen de la lista. Si desea seleccionar una imagen diferente, active la casilla de verificación Mostrar todas las imágenes para que mostrar una lista de todas las imágenes de botón de comando que proporciona Access, o haga clic en Examinar para seleccionar una imagen que esté almacenada en otro lugar.

Haga clic en Siguiente.

  1. Especifique un nombre significativo para el botón de comando. Este paso es opcional y este nombre no se muestra en el botón de comando. Sin embargo, conviene especificar un nombre significativo para que, cuando tenga que hacer referencia al botón de comando más adelante (por ejemplo, si establece el orden de tabulación de los controles en el formulario), sea mucho más fácil diferenciar entre los botones de comando. Si, por ejemplo, el botón de comando cierra el formulario, puede asignarle el nombre cmdCerrar o ComandoCerrar.
  2. Haga clic en Finalizar.

Access coloca el botón de comando en el formulario.

  1. Si desea ver lo que el asistente "programa" por usted, siga estos pasos opcionales:
  1. Si no se muestra la hoja de propiedades, presione F4.
  2. Haga clic en la pestaña Evento de la hoja de propiedades.
  3. En el cuadro de propiedad Al hacer clic, haga clic en el botón GenerarImagen del botón.

Access inicia el Generador de macros y muestra la macro creada por el asistente. Puede editar la macro si lo desea (para obtener más información sobre cómo editar una macro, vea la sección Comprender macros). Cuando haya finalizado, en la ficha Diseño, en el grupo Cerrar, haga clic en Cerrar para cerrar el Generador de macros. Si Access le pregunta si desea guardar los cambios y actualizar la propiedad, haga clic en para guardarlos o en No para rechazarlos.

  1. En la ficha Diseño, en el grupo Vistas, haga clic en Ver y, a continuación, en Vista Formulario. Haga clic en el nuevo botón de comando para comprobar que funciona como esperaba.

Volver al principio Volver al principio

Comprender macros

Una macro es una herramienta que permite automatizar tareas y agregar funcionalidad a formularios, informes y controles. Por ejemplo, si agrega un botón de comando a un formulario, asocia la propiedad de evento AlHacerClic del botón a una macro que contiene los comandos que desea que realice el botón cada vez que se haga clic en él.

Sirve de ayuda pensar que las macros de Access son como un lenguaje de programación simplificado en el que se crea código generando una lista de acciones (acción: componente básico de una macro; instrucción independiente que se puede combinar con otras acciones para automatizar tareas. A veces se denomina comando en otros lenguajes de macros.) que realizar. Cuando genera una macro, selecciona cada acción de una lista desplegable y, a continuación, rellena la información requerida para cada acción. Las macros permiten agregar funcionalidad a formularios, informes y controles sin escribir código en un módulo de VBA. Las macros proporcionan un subconjunto de los comandos que están disponibles en VBA, y la mayoría de la gente encuentra más fácil crear una macro que escribir código de VBA.

Las macros se crean usando el Generador de macros que se muestra en la ilustración siguiente.

Generador de macros de Access 2010

Para que se muestre el Generador de macros:

  • En la ficha Crear, en el grupo Macros y código, haga clic en Macro.

Volver al principio Volver al principio

Comprender el código de VBA

Al igual que las macros, VBA permite agregar automatización y otra funcionalidad a las aplicaciones de Access. Puede ampliar VBA mediante el uso de controles de terceros, y puede escribir funciones y procedimientos propios para satisfacer sus necesidades específicas.

 Nota   Puede agregar código de Visual Basic para aplicaciones (VBA) a una base de datos web; sin embargo, no puede ejecutar ese código mientras se ejecuta la base de datos en un explorador web. Si la base de datos web contiene código VBA, primero debe abrir la base de datos web mediante Access antes de ejecutar el código. Para realizar tareas de programación en una base de datos web, use macros de Access en su lugar.

Para obtener más información acerca de bases de datos web, vea el artículo sobre cómo crear una base de datos para compartir en la Web.

Una forma rápida de introducirse en la programación de VBA es crear primero una macro de Access y convertirla después en código de VBA. Las instrucciones para realizar esta acción se incluyen en la sección Convertir macros a código de VBA. Esta característica crea un nuevo módulo VBA que realiza las operaciones equivalentes de la macro. También abre el Editor de Visual Basic para poder empezar a modificar el procedimiento. Cuando está trabajando en el Editor de Visual Basic, puede hacer clic en palabras clave y presionar F1 para iniciar la Ayuda para programadores de Access y obtener más información acerca de cada palabra clave. A continuación, puede examinar la citada Ayuda y descubrir nuevos comandos que le sirvan para realizar las tareas de programación que desee.

Volver al principio Volver al principio

Convertir macros a código de VBA

Puede usar Access 2010 para convertir automáticamente macros a módulos de VBA o módulos de clase. Puede convertir macros adjuntas a un formulario o informe, tanto si existen como objetos independientes o como macros incrustadas. También puede convertir macros globales que no están adjuntas a un formulario o informe concreto.

 Nota   Puede agregar código de Visual Basic para aplicaciones (VBA) a una base de datos web; sin embargo, no puede ejecutar ese código mientras se ejecuta la base de datos en un explorador web. Si la base de datos web contiene código VBA, primero debe abrir la base de datos web mediante Access antes de ejecutar el código. Para realizar tareas de programación en una base de datos web, use macros de Access en su lugar.

Para obtener más información acerca de bases de datos web, vea el artículo sobre cómo crear una base de datos para compartir en la Web.

Convertir macros que están adjuntas a un formulario o informe

Este proceso convierte a VBA las macros a las que hace referencia (o están incrustadas en) un formulario o informe (o cualquiera de sus controles) y agrega código de VBA al módulo de clase del formulario o informe. El módulo de clase forma parte del formulario o informe y se mueve con ellos si se mueven o copian.

  1. En el Panel de navegación, haga clic con el botón secundario en el formulario o informe y, a continuación, haga clic en Vista Diseño.
  2. En la ficha Diseño, en el grupo Herramientas, haga clic en Convertir macros del formulario a Visual Basic o en Convertir macros del informe a Visual Basic.
  3. En el cuadro de diálogo Convertir macros de formulario o Convertir macros de informe, seleccione si desea que Access agregue código de control de errores a las funciones que genera. Además, si las macros tienen comentarios, seleccione si desea que se incluyan como comentarios en las funciones. Haga clic en Convertir para continuar.

Si no existe ningún módulo de clase para el formulario o informe, Access crea uno y agrega un procedimiento al módulo correspondiente a cada macro que estaba asociada al formulario o informe. Access también cambia las propiedades de evento del formulario o informe para que ejecuten los nuevos procedimientos de VBA en lugar de las macros.

  1. Para ver y editar el código de VBA:
    1. Estando abierto todavía el formulario o informe en la vista Diseño, si no se muestra la hoja de propiedades, presione F4 para que aparezca.
    2. En la ficha Evento de la hoja de propiedades, haga clic en cualquier cuadro de propiedad que muestre [Procedimiento de evento] y, a continuación, haga clic en el botón para generar Imagen del botón. Para ver las propiedades de evento correspondientes a un control específico, haga clic en el control para seleccionarlo. Para ver las propiedades de evento correspondientes a todo el formulario o informe, seleccione Formulario o Informe en la lista desplegable situada en la parte superior de la hoja de propiedades.

Access abre el Editor de Visual Basic y muestra el procedimiento de evento en su módulo de clase. Puede desplazarse hacia arriba o hacia abajo para ver los demás procedimientos que están en el mismo módulo de clase.

Convertir macros globales

  1. En el Panel de navegación, haga clic con el botón secundario en la macro que desee convertir y, a continuación, haga clic en Vista Diseño.
  2. En la ficha Diseño, en el grupo Herramientas, haga clic en Convertir macros a Visual Basic.
  3. En el cuadro de diálogo Convertir macro, seleccione las opciones que desee y, a continuación, haga clic en Convertir.

Access convierte la macro y abre el Editor de Visual Basic.

  1. Para ver y editar el código de VBA:
    1. En el Editor de Visual Basic, si no se muestra el panel Explorador del proyecto, en el menú Ver, haga clic en Explorador del proyecto.
    2. Expanda el árbol correspondiente al nombre de la base de datos en la que está trabajando.
    3. En Módulos, haga doble clic en el módulo Macro convertidanombre de macro.

El Editor de Visual Basic abre el módulo.

Adjuntar una función de VBA a una propiedad de evento

Cuando convierte una macro global a VBA, el código de VBA se coloca en un módulo estándar. A diferencia de los módulos de clase, los módulos estándar no forman parte de un formulario o informe. Posiblemente desee asociar la función a una propiedad de evento en un formulario, informe o control para que el código se ejecute de forma exacta cuándo y dónde desee. Para ello, puede copiar el código de VBA en un módulo de clase y asociarlo después a una propiedad de evento, o puede realizar una llamada especial desde la propiedad de evento al módulo estándar mediante el procedimiento siguiente.

  1. En el Editor de Visual Basic, anote el nombre de función. Por ejemplo, si ha convertido una macro denominada MiMacro, el nombre de función puede ser MiMacro().
  2. Cierre el Editor de Visual Basic.
  3. En el Panel de navegación, haga clic con el botón secundario en el formulario o informe al que desea asociar la función y, a continuación, haga clic en Vista Diseño.
  4. Haga clic en el control o sección al que desee asociar la función.
  5. Si no se muestra la hoja de propiedades, presione F4.
  6. En la ficha Evento de la hoja de propiedades, haga clic en el cuadro de propiedad de evento al que desee asociar la función.
  7. En el cuadro de propiedad, escriba un signo igual (=) seguido del nombre de la función, por ejemplo, =MiMacro(). Asegúrese de incluir los paréntesis.
  8. Haga clic en Guardar en la barra de herramientas de acceso rápido para guardar el formulario o informe.
  9. En el Panel de navegación, haga doble clic en el formulario o informe, y compruebe si el código se ejecuta como debe ser.

Ahora ya conoce los pasos básicos para agregar código de VBA a su base de datos. Este artículo describe sólo los conceptos básicos para comenzar a trabajar; hay muchos libros de referencia y recursos en línea excelentes que le pueden ayudar a desarrollar sus conocimientos de programación.

Volver al principio Volver al principio

Aprender a usar el sistema de Ayuda

Access 2010 proporciona muchos medios para obtener ayuda en el trabajo de programación. Puede obtener ayuda en cualquier momento si hace clic en el botón Ayuda situado en la esquina superior derecha de la ventana de Access.

El botón Ayuda

Access muestra la ventana Ayuda.

Además, cuando esté creando una macro o un procedimiento de VBA, puede hacer clic en una acción de macro, una palabra clave o un nombre de función integrada y presionar F1. En la mayoría de los casos, Access muestra el tema de la Ayuda correspondiente al elemento en el que ha hecho clic.

Una vez abierta la ventana Ayuda, use los botones de navegación de la barra de herramientas para moverse entre las páginas.

Barras de herramientas del visor de la Ayuda

Por ejemplo, haga clic en Inicio para ver la tabla de contenido y, a continuación, haga clic en los botones Atrás, Adelante, Detener o Actualizar para moverse entre los temas o cargar de nuevo un tema. También puede buscar en el sistema de Ayuda información específica si escribe términos de búsqueda en el cuadro situado debajo de la barra de herramientas y presiona ENTRAR o hace clic en Buscar.

Si busca información sobre programación, suele ser útil examinar la Ayuda para programadores de Access además de la Ayuda de Access.

Cambiar a Ayuda para programadores de Access

  1. Haga clic en la flecha desplegable situada junto al botón Buscar.

Botón Buscar en la Ayuda

La ventana Ayuda muestra una lista de temas de Ayuda disponibles que puede examinar.

Lista de búsqueda de la Ayuda

  1. Si está conectado a Internet, en Contenido de Office.com, haga clic en Referencia del programador. Se recomienda usar este método porque el contenido del sitio web de Office.com siempre está más actualizado que los demás. Si no está conectado a Internet, o si el administrador del sistema ha deshabilitado la posibilidad de que la ventana Ayuda esté en modo Con conexión, puede seguir viendo la Ayuda para programadores de Access haciendo clic en Referencia del programador en Contenido de este equipo.
  2. Puede examinar la Ayuda usando los vínculos de la tabla de contenido o escribiendo términos de búsqueda en el cuadro situado debajo de la barra de herramientas y presionando ENTRAR.
  3. Para volver a la Ayuda de Access, haga clic en la flecha desplegable situada junto al botón Buscar y, a continuación, en Ayuda de Access debajo de Contenido de Office.com o de Contenido de este equipo.

Para obtener más información sobre el uso de la Ayuda con o sin conexión, haga clic en el menú Estado de conexión situado en la esquina inferior derecha de la ventana Ayuda y, a continuación, haga clic en Explique estas opciones.

Mensaje de Estado de conexión en el visor de la Ayuda

Volver al principio Volver al principio

 
 
Corresponde a:
Access 2010