Introducción a la programación en Access

Cuando crea una nueva base de datos, suele empezar creando unos cuantos 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 Microsoft Office Access 2007 y destaca algunos recursos en los que se puede obtener más información acerca de la programación.

En este artículo


Qué es la programación

En Office Access 2007, 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 (propiedad de evento: atributo con nombre de un control, formulario, informe, página de acceso a datos o sección que se utiliza para responder a un evento asociado. Puede ejecutar un procedimiento o macro cuando tiene lugar un evento definiendo la propiedad del evento relacionada.)OnClick 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 utilizan 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 utilizar en la base de datos).

Los objetos (por ejemplo, formularios e informes) y los controles (por ejemplo, botones de comando y cuadros de texto) tienen una gran variedad de 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 (ratón), 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 utilizando muy poca programación.

Volver al principio Volver al principio

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

Debe basar su decisión de utilizar macros o código de VBA en dos puntos: la seguridad y la funcionalidad que necesite. La seguridad es un aspecto problemático porque se puede utilizar VBA para crear código que comprometa la seguridad de los datos o dañe los archivos de su equipo. Cuando utiliza una base de datos creada por otra persona, debe habilitar código de VBA sólo 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 utilizada por otros usuarios, debe evitar la inclusión de herramientas de programación requeridas por dichos usuarios para 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 obtener más información sobre cómo habilitar o deshabilitar contenido potencialmente no seguro, vea el artículo Habilitar o deshabilitar macros en documentos de Office (como se ha mencionado en otro punto de este artículo, la mayoría de los demás programas de Microsoft Office usan el término "macro" para referirse a código de VBA, por lo que no hay que confundirlo con las macros de Access).

Para garantizar la seguridad de su base de datos, debe utilizar macros siempre que sea posible y recurrir a la programación de VBA sólo en operaciones que no se puedan realizar mediante acciones de macro. Además, debe utilizar sólo 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.

En parte para fomentar un uso más generalizado de macros, Office Access 2007 contiene muchas acciones de macro nuevas que permiten generar macros más eficientes que las que se pueden crear mediante el uso de versiones anteriores de Access. Por ejemplo, ahora puede crear y utilizar variables temporales globales mediante el uso de acciones de macro, así como controlar errores más fácilmente utilizando las nuevas acciones de macro para el control de errores. En versiones anteriores de Access, estos tipos de características sólo están disponibles si se utiliza VBA. Además, en Access 2007, 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. En versiones anteriores de Access, las macros se deben mantener como objetos independientes, dificultando muchas veces el mantenimiento de la base de datos.

Cuando agrega programación a un objeto o un control, debe tener en cuenta el uso de los siguientes elementos en este orden de preferencia:

  1. Una macro que contenga sólo acciones que no requieran la concesión del estado de confianza a la base de datos para su ejecución
  2. Una macro que contenga acciones que requieran la concesión del estado de confianza a la base de datos para su ejecución
  3. Un procedimiento de VBA

Cuando crea una macro, puede alternar entre la lista de acciones más breve que no requiere la concesión del estado de confianza a la base de datos para su ejecución y la lista más extensa de todas las acciones de macro haciendo clic en Mostrar todas las acciones en el Generador de macros. La acción de hacer clic en Mostrar todas las acciones también muestra la lista completa de argumentos para la acción de macro RunCommand. Para obtener más información sobre la creación de macros, vea la sección Comprender macros o utilice los vínculos de la sección Vea también.

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. Puede agrupar de forma rápida y fácil los objetos de base de datos (objetos de base de datos: una base de datos de Access contiene objetos como tablas, consultas, formularios, informes, páginas, macros y módulos. Un proyecto de Access contiene objetos como formularios, informes, páginas, macros y módulos.) que haya creado porque no necesita recordar una gran cantidad de sintaxis; los argumentos (argumento: valor que proporciona información a una acción, un evento, un método, una propiedad, una función o un procedimiento.) correspondientes a 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 utilizar macros si desea:

  • 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 OnOpen o OnLoad de ese formulario.

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

Si utiliza código de VBA en una base de datos que distribuye a otros usuarios, debe tener en cuenta la conveniencia de empaquetar y firmar la base de datos para que los usuarios puedan estar seguros de que el código procede de una fuente de confianza. Para obtener más información sobre cómo empaquetar y firmar una base de datos, vea el artículo Proteger una base de datos de Access 2007.

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 le dirige a través del proceso de crear un botón de comando que realiza una tarea específica. En un archivo (.accdb) de Office Access 2007, el asistente crea una macro que se incrusta en la propiedad OnClick 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 disponibilidad de 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. Haga clic en el botón de Microsoft Office Imagen del botón y, a continuación, haga clic en Abrir.
  1. En el cuadro de diálogo Abrir, seleccione y abra la base de datos.
  2. En el Panel de exploració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.
  3. En el grupo Controles de la ficha Diseño, asegúrese de que Utilizar Asistentes para controles Imagen del botón esté seleccionado.

Imagen del botón

  1. En el grupo Controles de la ficha Diseño, haga clic en Botón.

Imagen del botón

  1. 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 se muestren todas las imágenes de botón de comando que proporciona Office Access 2007, 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 cmdClose o CommandClose.
  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 todavía la hoja de propiedades, presione F4 para que se muestre.
  2. Haga clic en la ficha Evento de la hoja de propiedades.
  3. En el cuadro de propiedad Al hacer clic, haga clic en Imagen 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 la edición de una macro, vea la sección Comprender macros, o utilice los vínculos de la sección Vea también). 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 OnClick 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 en 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

Para que se muestre el Generador de macros:

  • En el grupo Otros de la ficha Crear, haga clic en Macro. Si el comando no está disponible, haga clic en la flecha situada debajo del botón Módulo o Módulo de clase y, a continuación, haga clic en Macro.Imagen del botón

Para obtener más información sobre la creación de macros, utilice los vínculos de la sección Vea también de este artículo.

Volver al principio Volver al principio

Comprender el código de VBA

VBA es un lenguaje de programación que puede usar para crear aplicaciones eficientes en Access. VBA incluye cientos de comandos que permiten realizar operaciones mucho más complejas que las que se pueden ejecutar utilizando macros de Access.

Puede incrementar la capacidad de VBA mediante el uso de controles de terceros, y puede escribir funciones y procedimientos propios para satisfacer sus necesidades específicas. También puede usar VBA para integrar Access con otros programas.

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 que contiene un procedimiento Function (Procedimiento Function: procedimiento que devuelve un valor y que se puede utilizar en una expresión. Puede declarar una función con la instrucción Function y finalizarla con la instrucción End Function.) de 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 Office Access 2007 para convertir automáticamente macros a módulos de VBA o módulos de clases. Puede convertir macros adjuntas a un formulario o informe 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.

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 exploración, haga clic con el botón secundario en el formulario o informe y, a continuación, haga clic en Vista Diseño (vista Diseño: vista que muestra el diseño de los siguientes objetos de base de datos: tablas, consultas, formularios, informes y macros. En la vista Diseño, puede crear objetos de base de datos nuevos y modificar el diseño de otros existentes.).
  2. En la ficha Herramientas de base de datos, en el grupo Macro, 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 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 exploración, haga clic en el nombre de la macro que desee convertir.
  2. En la ficha Herramientas de base de datos, en el grupo Macro, 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 de proyectos, en el menú Ver, haga clic en Explorador de proyectos.
    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 precisa 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 utilizando el procedimiento siguiente.

  1. En el Editor de Visual Basic, anote el nombre de función. Por ejemplo, si ha convertido una macro denominada MyMacro, el nombre de función puede ser MyMacro().
  2. Cierre el Editor de Visual Basic.
  3. En el Panel de exploració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 todavía la hoja de propiedades, presione F4 para que se muestre.
  6. En la ficha Evento de la hoja de propiedades, haga clic en el cuadro de propiedad de evento al que desee que se asocie la función.
  7. En el cuadro de propiedad, escriba un signo igual (=) seguido del nombre de la función, por ejemplo, =MyMacro(). Asegúrese de incluir los paréntesis.
  8. Guarde el formulario o informe haciendo clic en GuardarImagen del botón en la barra de herramientas de acceso rápido.
  9. En el Panel de exploració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 proporciona 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 utilizar el sistema de Ayuda

Office Access 2007 proporciona una diversidad de medios para obtener ayuda en el trabajo de programación. Puede obtener ayuda en cualquier momento haciendo clic en el botón Ayuda situado en la esquina superior derecha de la ventana de Access.

Punto de entrada de 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 exploración de la barra de herramientas para moverse entre páginas.

Barra de herramientas del visor de 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 temas o cargar de nuevo un tema. También puede buscar en el sistema de Ayuda información específica escribiendo términos de búsqueda en el cuadro situado debajo de la barra de herramientas y presionando ENTRAR o haciendo 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 Online, haga clic en Referencia del programador. Se recomienda usar este método porque el contenido del sitio Web de Microsoft Office Online 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 utilizando 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ónBuscar y, a continuación, en Access Ayuda debajo de Contenido de Office Online 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 Explicar estas opciones.

Mensaje de estado de conexión en el visor de Ayuda

Volver al principio Volver al principio

 
 
Corresponde a:
Access 2007