Introducción a la programación en Access

Importante:  Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

Cuando se crea una nueva base de datos, normalmente comenzará creando algunos objetos de base de datos como tablas, formularios e informes. Finalmente, llegar a un punto donde se necesita para agregar algunos programación para automatizar determinados procesos y vincular los objetos de base de datos. Este artículo le ayuda a orientar a las herramientas de programación en Microsoft Office Access 2007 y le muestra algunos recursos donde puede obtener más información acerca de la programación.

Sugerencia: En Access 2010, el generador de expresiones tiene IntelliSense, para que pueda ver qué argumentos requiere la expresión.

En este artículo

Qué es la programación

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

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

Explicación de las macros

Comprender el código de VBA

Convertir macros a código de VBA

Aprender a utilizar el sistema de Ayuda

Qué es la programación

En Office Access 2007, programación es el proceso de agregar funcionalidad a la base de datos usando las macros de Access o Visual Basic para aplicaciones (VBA). Por ejemplo, suponga ha creado un formulario y un informe y desea agregar un botón de comando al formulario, al hacer clic, se abre el informe. En este caso, la programación, es el proceso de creación de una macro o un procedimiento de VBA y, a continuación, configuración del botón de comando OnClickpropiedad de evento para que haga clic en el botón de comando ejecuta la macro o el procedimiento. Para una operación sencilla, como abrir un informe, puede usar el Asistente para botones de comando para hacer todo el trabajo, o puede activar, desactivar el asistente y realice la programación usted mismo.

Nota: Muchos de los programas de Microsoft Office utilizan el término "macro" para hacer referencia a 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 ensamblar con el generador de macros. Acciones de macro de Access representan únicamente un subconjunto de los comandos disponibles en VBA. El generador de macros 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 necesidad de obtener el código VBA. Recuerde que en los artículos de Ayuda de Access, las macros de Access se conocen como macros. Por el contrario, código VBA se conoce como VBA, código, una función o un procedimiento. Código VBA se incluye en los módulos de clase (que forman parte de los formularios individuales o informes y suelen contengan código sólo para dichos objetos) y en módulos (que no están vinculados a objetos específicos y suelen contengan código "global" que se pueden 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 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.

Principio de página

¿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 peligroso, consulte el artículo Habilitar o deshabilitar macros en documentos de Office (como se mencionó en otra parte de este artículo, muchos otros programas de Microsoft Office utilizan el término "macro" para hacer referencia a código VBA, por lo que no confunda el término con 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.

Parcialmente para animar a un uso más amplio de macros, Office Access 2007 contiene muchos nuevas acciones de macro que permiten crear macros más eficaces que se pueden generar con versiones anteriores de Access. Por ejemplo, ahora puede crear y usar variables temporales globales mediante acciones de macro y puede controlar los errores más correctamente mediante el uso de nuevas acciones de macro de control de errores. En versiones anteriores de Access, estos tipos de características están disponibles mediante VBA. Además, en Access 2007, puede incrustar una macro directamente en la propiedad de evento de un objeto o control. Una macro incrustada se convierte en una parte de un control o el objeto y permanecerá con el objeto o control si se mueve o se copia. En versiones anteriores de Access, las macros se mantendrán como objetos independientes, que a veces hace más difícil mantener 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 una forma sencilla de ocuparse de muchas tareas de programación, como abrir y cerrar formularios y elaboración de informes. Puede rápida y fácilmente unir objetos de base de datos que haya creado porque no hay mucha sintaxis que necesita recordar; los argumentos de 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:

  • Use las funciones integradas, o crear sus propias funciones    Access incluye muchas funciones integradas, como la función interés , que calcula el pago de intereses. Puede usar estas funciones integradas para realizar cálculos sin necesidad de crear expresiones complicadas. Usando código VBA, también puede crear sus propias funciones para realizar cálculos que superen la capacidad de una expresión o reemplacen 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, encontrará que resulta más fácil crear y modificar un objeto en vista Diseño del objeto. Sin embargo, en algunos casos, que podría querer manipular la definición de un objeto en código. Mediante VBA, puede manipular todos los objetos de una base de datos, además de la base de datos.

  • Realizar acciones de nivel del sistema    Puede realizar la acción EjecutarAplicación en una macro para ejecutar otro programa (por ejemplo, Microsoft Office Excel 2007 ) desde Access, pero no puede usar una macro para hacer mucho más fuera de Access. Con VBA, puede comprobar si existe un archivo en el equipo, use Automatización o intercambio dinámico de datos (DDE) para comunicarse con otros programas de basado en Windows de Microsoft, como Office Excel 2007 y funciones de llamada en bibliotecas de vínculos dinámicos (DLL) de Windows.

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

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.

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 con la programación. El asistente le guiará a través del proceso de creación de un botón de comando que realiza una tarea específica. En un archivo Office Access 2007 (.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 código VBA, porque las macros incrustadas no están disponibles en esos formatos de archivo. En cualquier caso, a continuación, puede modificar o mejorar la macro o el código de VBA que se ajuste mejor a sus necesidades.

  1. Haga clic en el botón de Microsoft Office Imagen del botón de Microsoft Office y, a continuación, haga clic en Abrir.

  2. En el cuadro de diálogo Abrir, seleccione y abra la base de datos.

  3. 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.

  4. En la ficha Diseño, en el grupo controles, asegúrese de que Imagen de botón de Utilizar asistentes para controles está seleccionada.

    Imagen de botón

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

    Imagen de botón

  6. 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.

  7. 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.

  8. Haga clic en la opción de texto o la opción de imagen, dependiendo de si desea que texto o una imagen para que se muestre 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 una imagen para que se muestre, el Asistente sugiere una imagen en la lista. Si desea seleccionar otra imagen, active la casilla de verificación Mostrar todas las imágenes para mostrar todas las imágenes de botón de comando que Office Access 2007 proporciona o haga clic en Examinar para seleccionar una imagen que se almacena en otro lugar.

      Haga clic en Siguiente.

  9. 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.

  10. Haga clic en Finalizar.

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

  11. 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 ficha Evento de la hoja de propiedades.

    3. En el cuadro de propiedad En haga clic en, haga clic en Botón Generador .

      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.

  12. 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.

Principio de página

Explicación de las 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, asociar propiedad de evento OnClick del botón a una macro que contiene los comandos que desea que realice cada vez que se hace clic en el botón.

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 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 siguiente ilustración.

Generador de macros

Para mostrar el generador de macros:

  • En el grupo Otros de la pestaña Crear, haga clic en Macro. Si el comando no está disponible, haga clic en la flecha que aparece bajo el botón Módulo o Módulo de clase y luego haga clic en Macro. Imagen de 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.

Principio de página

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 empezar con VBA programación es primero, cree una macro de Access y convertirla en código VBA. Instrucciones para hacerlo se incluyen en la sección convertir macros a código de VBA. Esta característica crea un nuevo módulo que contiene un VBA procedimiento Function que realiza las operaciones equivalentes en la macro. También se abre el Editor de Visual Basic de modo que puede comenzar a modificar el procedimiento. Cuando se trabaja en el Editor de Visual Basic, puede haga clic en palabras clave y presione F1 para iniciar la ayuda para desarrolladores de acceso 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 para ayudarle a realizar las tareas de programación que desee.

Principio de página

Convertir macros a código de VBA

Puede usar Office Access 2007 para convertir automáticamente macros en módulos VBA o módulos de clase. Puede convertir macros que se han adjuntado a un formulario o informe, si existen como objetos independientes o como macros incrustadas. También puede convertir macros generales que no se han adjuntado a un formulario o informe determinado.

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

Este proceso convierte en VBA las macros que se hace referencia (o incrustadas en) un formulario o informe (o cualquiera de los controles) y agrega el código VBA para el formulario o módulo de clase del informe. El módulo de clase se convierte en parte del formulario o informe y se mueve con el formulario o informe si se mueve o se copia.

  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.

  2. En la ficha Herramientas de base de datos, en el grupo Macro, haga clic en del formulario convertir Macros a Visual Basic o del informe convertir Macros a Visual Basic.

  3. En el cuadro de diálogo convertir macros del formulario o convertir macros del informe, seleccione si desea que Access para agregar código a las funciones genera de control de errores. Además, si tiene los comentarios en las macros, seleccione si desea tener incluirlos como comentarios en las funciones. Haga clic en convertir para continuar.

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

  4. 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 propiedades que muestra [Procedimiento de evento] y, a continuación, haga clic en Botón Generador . Para ver las propiedades de evento para un control específico, haga clic en el control para seleccionarlo. Para ver las propiedades de evento de todo el formulario o informe, seleccione el formulario o informe en la lista desplegable 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.

  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 correspondiente al nombre de la base de datos en la que está trabajando.

    3. En los módulos, haga doble clic en el nombre del módulo Macro-convertir 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 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 que se asocie la función.

  7. En el cuadro de propiedad, escriba un signo de 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 Guardar Imagen 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.

Principio de página

Aprender a utilizar el sistema de Ayuda

Office Access 2007 proporciona una gran variedad de métodos para obtener ayuda con la programación. Puede obtener ayuda en cualquier momento haciendo clic en el botón Ayuda en la esquina superior derecha de la ventana de Access.

Punto de entrada de la 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 la Atrás, adelante, Detener o botón Actualizar para desplazarse entre los temas o volver a cargar un tema. También puede buscar el sistema de ayuda para obtener información específica, escriba los términos de búsqueda en el cuadro justo debajo de la barra de herramientas y, a continuación, 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.

    Lista Buscar de la Ayuda

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

    Lista de búsqueda de Ayuda

  2. 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 es más actualizada. Si no está conectado a Internet, o si el administrador del sistema ha deshabilitado la capacidad de la ventana de ayuda para conectarse, puede ver aún ayuda para desarrolladores de Access, haga clic en Referencia del programador, en contenido de este equipo.

  3. 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.

  4. Para volver a la Ayuda de Access, haga clic en la flecha desplegable junto al botón Buscar y, a continuación, haga clic en Ayuda de Access en el contenido de Office Online, o 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.

Conectarse a Office Online desde el Visor de ayuda.

Principio de página

Nota: Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.

¿Le ha sido útil esta información?

De acuerdo. ¿Algún comentario más?

¿Cómo podemos mejorarlo?

¡Gracias por sus comentarios!

×