Las siguientes secciones proporcionan información útil sobre VBA. Los nombres de objeto se proporcionan para que pueda examinarlos fácilmente en la base de datos northwind 2.0 Starter Edition.
VBA (Visual Basic para Aplicaciones) es el lenguaje de programación usado en todos los productos de Microsoft 365, no solo en Access. Se documenta principalmente aquí: Documentación del desarrollador de Access.Para empezar, consulte Introducción a la programación de Access.
Al buscar información, asegúrese de buscar ejemplos específicos de Access e incluya Microsoft Access en el término de búsqueda. A menudo, las soluciones para los otros productos de Microsoft 365 funcionarán, pero pueden requerir cambios.
Microsoft Access es un producto para adultos. Eso significa que hay muchos ejemplos, lo que es genial para ti. Esto también significa que los libros más antiguos sobre programación de Access aún son viables para que lo mire. Muchos de los libros más antiguos todavía están disponibles en sitios de libros usados a una fracción de su costo original.
Los archivos de Microsoft Access son archivos de Microsoft 365. Los archivos de Microsoft 365 deben estar en una ubicación de confianza o tener su contenido habilitado. Estos elementos se consideran seguros porque los creó o provienen de una fuente de confianza. Esta comprobación se produce cada vez que abre cualquier archivo de Microsoft 365. A partir de aquí, nos referiremos a este como de confianza/habilitado. Si se publica una nueva versión de la aplicación y se abre desde una ubicación que no es de confianza, se repetirá el proceso de habilitar el contenido. Para obtener más información, vea Ubicaciones de confianza para archivos de Microsoft 365, Decidir si se debe confiar en una base de datos y Agregar, quitar o cambiar una ubicación de confianza en Microsoft 365.
Las macros, las funciones y los sub procedimientos son la forma de implementar la lógica de negocios en la base de datos de Access.
Los controles de un formulario (como botones, cuadros de texto, etiquetas, etc.) pueden usar sus eventos (como hacer clic en el control) para desencadenar otros procesos, como agregar, eliminar registros o abrir formularios. Estos procesos se pueden implementar con macros o VBA. Northwind usa principalmente macros y algunos VBA. Para obtener más información, vea EjecutarCódigo (acción de macro).
Algunos tipos de control tienen asistentes integrados que crean automáticamente una macro. Por ejemplo, al agregar un botón de comando a un formulario se abrirá un asistente que ofrecerá varias opciones de funcionalidad para el botón. Al agregar un cuadro combinado se abrirá un asistente que se puede configurar para buscar un registro determinado en el formulario.
El panel de navegación es la forma principal de ver y obtener acceso a todos los objetos de base de datos y se muestra en el lado izquierdo de la ventana de Access de forma predeterminada. El panel de navegación Northwind 2.0 Starter Edition se ha personalizado. Hemos creado una categoría personalizada denominada Northwind Starter 2.0. Esto nos permite organizar los objetos por área funcional. Para obtener más información, vea Personalizar el panel de navegación.
Es importante que conozca el ámbito y la visibilidad en Access y Microsoft 365. Ámbito hace referencia a la disponibilidad de una variable, constante o procedimiento para que lo use otro procedimiento. Existen tres niveles de ámbito: nivel de procedimiento, nivel de módulo privado y nivel de módulo público. Determina el ámbito de una variable al declararla. Es una buena idea declarar todas las variables explícitamente para evitar errores de nomenclatura-conflicto entre variables con distintos ámbitos. Todos los módulos tienen dos instrucciones de directiva: Option Compare Database y Option Explicit. Para obtener más información, vea Descripción del ámbito y la visibilidad, Instrucción pública, Instrucción privada, Instrucción estática y Descripción de la duración de las variables.
A veces es necesario que una variable exista después del objeto que lo creó va fuera del ámbito. Hay tres formas principales de hacerlo: Variables públicas, TempVars y almacenamiento de los valores en una tabla local. Cada uno de ellos tiene ventajas e inconvenientes. Muchos desarrolladores usan una mezcla de estos.
Existen variables públicas y TempVars para la sesión actual y salen del ámbito cuando se cierra la aplicación. ¿Qué sucede si desea mantener variables específicas del usuario en sus sesiones? Puede almacenar estos tipos de valores en una tabla local. En Northwind 2.0 Starter Edition, tenemos esos valores en una tabla denominada SystemSettings. Por ejemplo, un valor de la tabla es "Mostrar bienvenida". Este valor nos indica si quieres ver la pantalla de bienvenida cada vez que inicies sesión o no.
Si ha usado asistentes para controles integrados en Access sabe que si se crea una macro, a menudo no hay ningún control de errores y, si se crea VBA, puede limitarse a una función MsgBox, estilo Err.Description.
En Northwind 2.0 Starter Edition, hemos implementado lo que se denomina un controlador de errores global. Los errores que se producen en cualquier procedimiento llaman a una función en el nivel global para mostrar el error. La gran ventaja es que el código es coherente y, si el mensaje necesita cambiar, por ejemplo, mostrar el número de error o registrar el error en un archivo, solo se puede hacer en un solo lugar.
clsErrorHandler es el módulo de clase que implementa el código de control de errores. Un módulo de clase mantiene todas sus funciones principales y auxiliares juntas en una unidad, lo que hace que el código sea más encapsulado. La macro AutoExec eventualmente llama a la función de inicio en modStartup, crea una instancia de clsErrorHandler y la guarda como una variable global para que se pueda usar en toda la aplicación.
De hecho, el código de control de errores en los procedimientos es tan coherente que pudimos crearlo todo en menos de cinco minutos usando algún código sofisticado de VBA que aplicó cada procedimiento con el controlador de errores adecuado. Este código no se incluye en la plantilla.