Introducción a la programación de Access

Cuando crea una base de datos, normalmente empieza creando varios objetos de base de datos, como tablas, formularios e informes. Finalmente, llega a un punto en el que tiene que agregar algo de programación para automatizar algunos procesos y vincular los objetos de la base de datos. Este artículo le orientará sobre el uso de las herramientas de programación en Access.

En este artículo

¿Qué es la programación

¿Debo usar macros o código de VBA?

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

Obtener información sobre macros

Obtener información sobre código de VBA

Convertir macros en código de VBA

¿Qué es la programación

En Access, la programación es el proceso de agregar funcionalidad a la base de datos mediante macros de Access o código de Visual Basic para Aplicaciones (VBA). Por ejemplo, supongamos que ha creado un formulario y un informe y desea agregar un botón de comando al formulario para que, al hacer clic, se abra el informe. En este caso, la programación es el proceso de creación de una macro o un procedimiento de VBA y de configuración de la propiedad de evento OnClick del botón de comando para que al hacer clic en el botón de comando se ejecute la macro o el procedimiento. Para una operación sencilla, como abrir un informe, puede usar el Asistente para botones de comando para que haga todo el trabajo o puede desactivar el asistente y hacer la programación usted mismo.

Nota: Muchos programas de Microsoft Office utilizan el término “macro” para hacer referencia a un código de VBA. Esto puede resultar confuso para los usuarios de Access porque, en Access, el término “macro” hace referencia a una colección de acciones de macro que puede enlazar con el Generador de macros. Las acciones de macro de Access representan solo un subconjunto de los comandos disponibles en VBA. El Generador de macros le ofrece una interfaz más estructurada que el Editor de Visual Basic, lo que le permite agregar programación a los controles y objetos sin tener que aprender código de VBA. Recuerde que en los artículos de Ayuda de Access, las macros de Access se denominan macros. Por el contrario, el código de VBA se denomina VBA, código, función o procedimiento. El código de VBA está integrado en módulos de clase (que forman parte de formularios o informes individuales y suelen contener código solo para esos objetos) y en módulos (que no están vinculados a objetos específicos y suelen contener código “global” que puede usarse en toda la base de datos).

Los objetos, como formularios e informes, y los controles, como botones de comando y cuadros de texto, tienen diferentes propiedades de evento a las que puede adjuntar macros o procedimientos. Cada propiedad de evento está asociada a un evento específico, como hacer clic con el mouse, abrir un formulario o modificar datos en un cuadro de texto. También pueden desencadenar eventos algunos factores externos a Access, como los eventos del sistema o macros o procedimientos adjuntos a otros eventos. Su base de datos puede ser compleja si agrega muchas macros o procedimientos para varias propiedades de evento de muchos objetos, pero, en la mayoría de los casos, puede obtener los resultados que desea con muy poca programación.

Principio de página

¿Debo usar macros o código de VBA?

La decisión de usar macros, VBA o ambos depende principalmente de cómo tiene previsto implementar o distribuir la base de datos. Por ejemplo, si la base de datos se almacena en el equipo, usted es el único usuario y está familiarizado con el código de VBA, puede usar VBA para realizar la mayoría de las tareas de programación. Sin embargo, si desea compartir la base de datos con otras personas en un servidor de archivos, es recomendable evitar el uso de VBA por motivos de seguridad.

Debe basar su decisión de usar macros o código de VBA en dos cuestiones: la seguridad y la funcionalidad que desea. La seguridad es importante porque VBA puede usarse para crear código que pone en peligro la seguridad de sus datos o que puede dañar archivos de su equipo. Si usa una base de datos creada por otra persona, debe habilitar el código de VBA solo si sabe que la base de datos procede de una fuente de confianza. Al crear una base de datos que usarán otros usuarios, intente evitar incluir herramientas de programación que necesitan específicamente conceder un estado de confianza a la base de datos. Las técnicas generales para evitar que los usuarios necesiten confiar en la base de datos se incluyen más adelante en esta sección.

Para ayudar a garantizar la seguridad de la base de datos, intente usar macros cuando sea posible y programación de VBA solo para las operaciones que no se puedan realizar mediante el uso de acciones de macro. Además, intente usar solo las acciones de macro para las que no sea necesario conceder el estado de confianza a la base de datos para poder ejecutarlas. Al limitar el uso de acciones de macro de esta manera, permite que los usuarios confíen en que la base de datos no tiene ninguna programación que podría dañar los datos u otros archivos de sus equipos.

Consideraciones de las macros

A partir de la versión de Access 2010, Access contiene muchas acciones de macro nuevas que le permiten crear macros más eficaces que con las versiones anteriores de Access. Por ejemplo, ahora puede crear y usar variables temporales globales con acciones de macro y puede controlar los errores con más precisión mediante las nuevas acciones de macro de control de errores. En versiones anteriores de Access, estas características solo están disponibles mediante el uso de VBA. Asimismo, puede incrustar una macro directamente en la propiedad de evento de un objeto o de un control. Una macro incrustada pasa a formar parte del objeto o del control y permanece unida a él cuando se mueve o se copia.

Las macros resultan una forma sencilla de administrar muchas tareas de programación, como abrir y cerrar formularios y elaborar informes. Puede unir de forma rápida y fácil los objetos de la base de datos (formularios, informes, etc.) que ha creado porque no es necesario utilizar mucha sintaxis. Los argumentos de cada acción se muestran en el Generador de macros.

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

  • Asignar una acción o conjunto de acciones a una clave. Para ello, es necesario crear un grupo de macros denominado AutoKeys.

  • Realizar una acción o una serie de acciones cuando se abre por primera vez una base de datos. Para ello, es necesario crear una macro denominada AutoExec.

    Nota:  La macro AutoExec se ejecuta antes que las demás macros o que el código de VBA, incluso si ha designado un formulario de inicio en el cuadro de diálogo Opciones de Access y ha adjuntado una macro o código de VBA al evento OnOpen o al evento OnLoad de ese formulario.

Para obtener más información sobre cómo crear macros, vea la sección Obtener información sobre macros.

Consideraciones de VBA

Debe usar la programación de VBA en lugar de macros para realizar uno de estos procedimientos:

  • Usar funciones integradas o crear sus propias funciones    Access incluye muchas funciones integradas, como la función IPmt, que calcula el pago de intereses. Puede usar estas funciones integradas para realizar cálculos sin tener que crear expresiones complejas. Al usar código de VBA, también puede crear sus propias funciones 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 común a más de un objeto.

  • Crear o manipular objetos    En la mayoría de los casos, le resultará más fácil crear y modificar un objeto en la vista Diseño de ese objeto. Sin embargo, en algunas situaciones es recomendable manipular la definición de un objeto en el código. Si usa VBA, puede manipular todos los objetos de una base de datos, además de la propia base de datos.

  • Realizar acciones de nivel de sistema    Puede llevar a cabo la acción EjecutarAplicación en una macro para ejecutar otro programa (como Microsoft Excel) desde Access, pero no puede usar una macro para hacer mucho más fuera de Access. Si usa VBA, puede comprobar si existe un archivo en el equipo, usar Automation o Intercambio dinámico de datos (DDE) para comunicarse con otros programas basados en Microsoft Windows, como Excel, y llamar a funciones de bibliotecas de vínculos dinámicos (DLL) de Windows.

  • Manipular registros uno a uno    Puede usar VBA para desplazarse por un conjunto de registros, de uno en uno, y realizar una operación en cada registro. En cambio, las macros trabajan con conjuntos de registros completos cada vez.

Principio de página

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 empezar a programar. El asistente le ayuda a crear un botón de comando que realiza una tarea específica. En un archivo de Access (.accdb), el asistente crea una macro que está incrustada en la propiedad OnClick del botón de comando. En un archivo .mdb o .adp, el asistente crea un código de VBA, porque las macros incrustadas no están disponibles para esos formatos de archivo. En cualquier caso, puede modificar o mejorar la macro o el código de VBA para satisfacer mejor sus necesidades.

  1. En el panel de navegación, haga clic con el botón derecho en el formulario en el que quiera agregar el botón de comando y, a continuación, haga clic en Vista Diseño.

  2. En la pestaña Diseño, haga clic en la flecha abajo para mostrar la galería Controles y asegúrese de que la opción Utilizar asistentes para controles está seleccionada.

  3. En la pestaña Diseño, en la galería Controles, haga clic en Botón.

  4. En la cuadrícula de diseño del formulario, haga clic donde desee colocar el botón de comando.

    Se iniciará el Asistente para botones de comando.

  5. En la primera página del asistente, haga clic en cada categoría de la lista Categorías para ver las acciones que puede programar el asistente para que las realice en el botón de comando. En la lista Acciones, seleccione la acción que desea y, a continuación, haga clic en Siguiente.

  6. Haga clic en la opción Texto o en la opción Imagen, según si desea que se muestre texto o una imagen en el botón de comando.

    • Si desea mostrar texto, puede editar el texto en el cuadro junto a la opción Texto.

    • Si desea mostrar una imagen, el asistente le sugerirá una imagen de la lista. Si desea seleccionar otra imagen, seleccione la casilla de verificación Mostrar todas las imágenes para mostrar una lista de todas las imágenes de botón de comando disponibles en Access o haga clic en Examinar para seleccionar una imagen almacenada en otro lugar.

      Haga clic en Siguiente.

  7. Escriba 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, es buena idea escribir un nombre significativo para que, cuando necesite hacer referencia al botón de comando posteriormente (por ejemplo, si va a establecer el orden de tabulación de los controles del formulario), sea mucho más fácil distinguir los diferentes botones de comando. Si el botón de comando cierra el formulario, por ejemplo, podría llamarlo cmdCerrar o ComandoCerrar.

  8. Haga clic en Finalizar.

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

  9. Si desea ver qué ha “programado” el asistente, siga estos pasos opcionales:

    1. Si no se muestra la Hoja de propiedades, presione F4 para mostrarla.

    2. En la hoja de propiedades, haga clic en la pestaña Eventos.

    3. En el cuadro de la propiedad On Click, haga clic en el botón Generar Imagen de botón .

      Access inicia el Generador de macros y muestra la macro que ha creado el asistente. Puede editar la macro si lo desea. Para obtener más información sobre cómo editar una macro, consulte la sección Obtener información sobre macros. Cuando haya terminado, en la pestaña Diseño, en el grupo Cerrar, haga clic en Cerrar para cerrar el Generador de macros. Si Access le pide que guarde los cambios y actualice la propiedad, haga clic en para guardar los cambios o en No para rechazarlos.

  10. En la pestaña Diseño, en el grupo Vistas, haga clic en Ver y, luego, haga clic en Vista Formulario. Haga clic en el nuevo botón de comando para confirmar que funciona correctamente.

Principio de página

Obtener información sobre macros

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

Resulta útil considerar las macros de Access como lenguaje de programación simplificado con el que puede crear código mediante la generación de una lista de acciones a realizar. Al crear una macro, seleccione todas las acciones de una lista desplegable y, después, rellene la información necesaria para cada acción. Las macros le 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 disponibles en VBA y a muchas personas les resulta más fácil crear una macro que escribir código de VBA.

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

Generador de macros de Access 2010

Nota: Tenga en cuenta que el Generador de macros de Access 2007 era distinto al de la ilustración anterior. En Access 2007, el Generador de macros era una serie de filas y columnas donde se enumeraban las distintas acciones de la macro.

Para mostrar el Generador de macros:

  • En el grupo Macros y código de la pestaña Crear, haga clic en Macro.

Principio de página

Obtener información sobre código de VBA

Como las macros, VBA le permite agregar automatización y otras funciones a su aplicación de Access. Puede ampliar VBA mediante controles de terceros y puede escribir sus propias funciones y procedimientos para satisfacer sus necesidades.

Una forma rápida de empezar a programar con VBA es crear primero una macro de Access y, a continuación, convertirla en código de VBA. Las instrucciones para realizar esta tarea se incluyen en la sección Convertir macros a código de VBA. Esta característica crea un nuevo módulo de VBA que ejecutará las operaciones equivalentes en la macro. También abre el Editor de Visual Basic para que pueda comenzar a modificar el procedimiento. Mientras trabaja en el Editor de Visual Basic, puede hacer clic en palabras clave y presionar F1 para iniciar la ayuda para desarrolladores de Access y obtener más información sobre cada palabra clave. A continuación, puede explorar la ayuda para desarrolladores de Access y descubrir nuevos comandos que le ayudarán a realizar las tareas de programación que desee.

Principio de página

Convertir macros en código de VBA

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

Nota: Puede agregar código de Visual Basic para Aplicaciones (VBA) a una base de datos web, pero no puede ejecutar ese código mientras se está ejecutando la base de datos en un explorador web. Si la base de datos web contiene código de VBA, primero debe abrir la base de datos web con Access para poder ejecutar el código. Para realizar tareas de programación en una base de datos web, utilice las macros de Access en su lugar.

Convertir macros adjuntas a un formulario o informe

Este proceso convierte a VBA cualquier macro a la que se haga referencia o que esté incrustada en un formulario o informe, o en cualquiera de los controles, y agrega el código de VBA al módulo de clase del informe o del formulario. El módulo de clase pasa a formar parte del formulario o del informe y se desplaza con él cuando se mueve o se copia.

  1. Haga clic con el botón derecho en el formulario o informe en el panel de navegación y, luego, haga clic en Vista Diseño.

  2. En la pestaña Diseño, en el grupo Herramientas, haga clic en Convertir macros del formulario a Visual Basic o Convertir macros del informe a Visual Basic.

  3. En el cuadro de diálogo Convertir macros de formulario o en el de Convertir macros de informe, seleccione si desea que Access agregue código de control de errores a las funciones que genera. Además, si sus 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 el informe, Access crea uno y agrega un procedimiento en el módulo para cada macro asociada al formulario o al informe. Access también cambia las propiedades de evento del formulario o del informe para que se ejecuten los nuevos procedimientos de VBA en lugar de las macros.

  4. Para ver y editar el código de VBA:

    1. Con el formulario o el informe abiertos en la vista Diseño, si no se muestra la hoja de propiedades, presione F4 para mostrarla.

    2. En la pestaña Eventos de la hoja de propiedades, haga clic en cualquier cuadro de propiedades en el que se muestre [Procedimiento de evento] y, a continuación, haga clic en el botón Generar Imagen de botón . Para ver las propiedades de evento de un control específico, haga clic en el control para seleccionarlo. Para ver las propiedades de evento de todo el formulario o informe, seleccione Formulario o Informe en la lista desplegable que se encuentra 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 otros procedimientos que se encuentran en el mismo módulo de clase.

Convertir macros globales

  1. En el panel de navegación, haga clic con el botón derecho en la macro que desee convertir y, a continuación, haga clic en Vista Diseño.

  2. En la pestaña 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.

  4. Para ver y editar el código de VBA:

    1. En el Editor de Visual Basic, si no se muestra el panel Explorador de proyectos, en el menú Ver, haga clic en Explorador de proyectos.

    2. Expanda el árbol que se encuentra bajo el nombre de la base de datos en la que está trabajando.

    3. En Módulos, haga doble clic en el módulo Convertir Macro - seguido del nombre de la macro.

      El Editor de Visual Basic abrirá el módulo.

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

Cuando convierte una macro global en VBA, el código de VBA se coloca en un módulo estándar. A diferencia de un módulo de clase, un módulo estándar no forma parte de un formulario ni de un informe. Es probable que desee asociar la función a una propiedad de evento de un formulario, informe o control para que el código se ejecute exactamente cuando y donde quiera. Para ello, puede copiar el código de VBA en un módulo de clase y asociarlo a una propiedad de evento o puede hacer una llamada especial desde la propiedad de evento al módulo estándar mediante siguiente el procedimiento.

  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 la función será MiMacro().

  2. Cierre el Editor de Visual Basic.

  3. En el panel de navegación, haga clic con el botón derecho en el formulario o el informe al que desea asociar la función y, después, haga clic en Vista Diseño.

  4. Haga clic en el control o en la sección a los que desea asociar la función.

  5. Si no se muestra la Hoja de propiedades, presione F4 para mostrarla.

  6. En la pestaña Eventos de la hoja de propiedades, haga clic en el cuadro de propiedad de evento al que desea 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. Para guardar el formulario o el informe, haga clic en Guardar en la Barra de herramientas de acceso rápido.

  9. En el panel de navegación, haga doble clic en el formulario o el informe y pruébelo para asegurarse de que el código se ejecuta correctamente.

Ahora ya conoce los pasos básicos para agregar código de VBA a su base de datos. Este artículo describe solo los conceptos básicos sobre cómo empezar a programar. Hay muchos libros de referencia y recursos en línea excelentes que pueden ayudarle a desarrollar sus conocimientos de programación.

Principio de página

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×