
Bienvenido al curso específico de programación y macros de Microsoft Access.
En este vídeo hablaremos de la base de datos de ejemplo que vamos a usar para el curso. Veremos qué está previamente hecho y qué trabajo tenemos que hacer.
En esta lección explicaremos las metas del curso, y el plan de estudios que seguiremos para ir alcanzando cada una de dichas metas.
Para comenzar bien este curso, es necesario sentar las bases y explicar qué es la programación, así como los recursos con los que contamos en Microsoft Access.
Siempre que hay que añadir alguna funcionalidad a nuestra base de datos, debemos decidir si usaremos una macro, o código VBA. Aunque con el tiempo y la experiencia, dichas decisiones se vuelven casi automáticas, conviene entender en qué debemos basar nuestras decisiones.
Antes de continuar, es importante tener claros algunos conceptos sobre el código VBA. En esta lección se exponen dichos conceptos.
Sentamos las bases sobre las macros en Access.
Comenzamos con los ejemplos. Vamos a hacer una macro para cerrar ventanas.
El panel de exploración de Access se puede modificar con las macros. En esta lección vamos a ver qué ajustes se pueden llevar a cabo con las macros.
Una herramienta que suele ser muy útil en todos los programas, son los cuadros de mensaje. Con ellos, se facilita información al usuario, e incluso se puede recabar datos que se utilizarán en el programa. En este vídeo veremos como mostrar un cuadro de mensaje desde una macro.
Al diseñar macros nos encontramos con un grupo denominado "Comandos de macro". En esta lección analizaremos algunos de estos comandos.
Las macros de Access también nos proveen de soluciones para algunos comandos del sistema. En este vídeo veremos dichas macros.
Al trabajar con bases de datos, a menudo nos encontramos con la necesidad de aplicar filtros o realizar búsquedas o consultas. En esta clase vamos a ver estas macros.
Una función que suele ser muy interesante es la de exportar datos a formatos de Excel o PDF. Microsoft Access permite hacer estas tareas con macros. Las veremos en este vídeo.
El grupo de macros "Objetos de la base de datos" es uno de los más importantes. Dentro de este grupo encontramos macros que nos permiten, por ejemplo, navegar entre los registros. Vamos a verlos en esta lección.
Entre las macros que Microsoft Access pone a nuestra disposición, están las del grupo "Operaciones de entrada de datos". Veamos en esta lección qué son estas macros.
En esta lección práctica, diseñaremos una macro para mostrar un informe de impresión asociada al formulario facturas.
En la base de datos de ejemplo, se utilizó un método para abrir los formularios que ahora vamos a cambiar. Vamos a diseñar macros para abrir los diferentes formularios de la aplicación.
En esta ocasión, diseñaremos cuatro macros sencillas que nos permitirán navegar entre los registros de la tabla de facturas.
En esta clase veremos un ejemplo práctico de una macro que cambia la propiedad habilitado de un botón, según los datos de la base de datos.
Hasta el momento hemos diseñado macros incrustadas, es decir, macros asociadas al comportamiento de un objeto, casi siempre, un botón. Ahora vamos a diseñar una macro independiente.
Para completar esta sección, nos vamos a familiarizar con el catálogo de acciones de macros.
Colocamos los fundamentos de nuestros conocimientos sobre Visual Basic para Aplicaciones.
Pongamos las bases para entender qué es el editor de código VBA
Para comprender bien la programación, es necesario entender cada uno los conceptos que se vuelven a explicar en esta lección
Abs: devuelve el valor absoluto de un número, ignorando su signo positivo o negativo
AbsolutePosition: Devuelve un número que indica la posición absoluta de un registro en un recordset
AddMenu: agrega un menú personalizado
AddNew: agrega un nuevo registro a un conjunto de registros
ApplyFilter (DoCmd): aplica un filtro a una tabla, formulario o informe
Array: crea una matriz de variables
Asc: devuelve el carácter ASCII según su código
Avg: devuelve el promedio entre valores numéricos
Beep (DoCmd): hace sonar un beep de sistema
BOF: principio de un recordset
BorwseTo (DoCmd): navega entre objetos de un proyecto
CancelEvent (DoCmd): cancela un evento
CancelUpdate: cancela las actualizaciones pendientes de un registro
Case (Select Case): selección de opciones dentro de un grupo
CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar: conversión de tipos de valores
Choose: devuelve un valor de una lista de valores basado en su posición
ChDir: cambia la ruta actual
ChDrive: cambia o devuelve la unidad actual
Chr: devuelve un carácter basado en su código ASCII
ClearMacroError (DoCmd): borra un error en una macro
Close (DoCmd): cierra un formulario, informe o ventana
CloseDataBase (DoCmd): Cierra la base de datos actual
CopyDatabaseFile (Cmd): copia la base de datos actual
CopyObject (DoCmd): Copia un objeto de la base de datos
Count: Cuenta los registros de una tabla mediante una consulta SQL
CurDir: Devuelve la ruta actual
CurrentDb: devuelve una variable que representa la base de datos actual
CurrentUser: devuelve una variable de tipo texto que representa al usuario actual
Date: devuelve la fecha actual
DateAdd: agrega una cantidad de tiempo especificado a una fecha
DateDiff: calcula la diferencia entre dos fechas
DatePart: devuelte una parte de una fecha especificada
DateSerial: devuelve una fecha en base a tres variables
DateValue: Convierte una cadena de texto en una fecha
Day: muestra el día del mes a partir de una fecha
Delete: borra uno o varios registros
DeleteObject: borra un objeto de la base de datos
DeleteSetting: borrar una clave de registro
Análisis de las variables
Dir: alista los archivos de una carpeta o directorio
Dlookup: Devuelve el valor de una campo desde un grupo específico de registros
DoEvents: Permite que el sistema operativo puede procesar otros eventos
Echo: Activa o desactiva la actualización de pantalla
Environ: devuelve una variable del sistema operativo
EOF: Final de un Recordset
Error: Devuelve el número de identificación de un error
Eval: Evalúa una expresión que da como resultado un valor numérico o de texto
Execute: Invoca la ejecución de un procedimiento
Exp: Devuelve un tipo de datos Double que especifica un número elevado a una potencia
FileDateTime: Devuelve la fecha y la hora en que se creó o modificó por última vez un archivo
FileLen: Devuelve el tamaño en bytes de un archivo
FindFirst / FindLast / FindNext / FindePrevious: Encuentra registros en un RecordSet
FindRecord: Buscar un registro
First: devuelve el primer registro de un grupo de registros
Fix: Devuelve la parte entera de un número
For: parte principal de un bucle
Format: Devuelve una expresión con un formato
GetAttr: Devuelve un valor entero que representa los atributos del archivo o carpeta
GoToRecord: Ir a un determinado registro
Hex: Devuelve el valor hexadecimal de un número
Hour: Devuelve la hora del día en un número entre 0 y 23
HourGlass: activa o desactiva el reloj de arena como icono del puntero
If - Then - Else - End If: declaraciones de VBA
InputBox: muestra un cuadro de texto que pide datos al usuario
Insert: Agregar registros en una tabla
InStr: Indica la posición de una cadena de texto
IPmt: Devuelve un tipo de valor doble que especifica el pago de intereses
IsArray: Indica si una expresión es una matriz
IsDate: Indica si una expresión tiene un formato válido de fecha
IsEmpty: Se utiliza para determinar si una variable se ha inicializado
IsMissing: Indica si se ha pasado el argumento opcional de un procedimiento
IsNull: Indica si una expresión es nula o no
IsNumeric: Examina una expresión para determinar si es numérica o no
Last: Devuelve el último resultado de una consulta SQL
LCase: Convierte una cadena de texto en minúsculas
Left: Extrae una subcadena a partir de una cadena, empezando por la izquierda de la cadena
Len: Devuelve la longitud de una cadena de texto
LoadPicture: Carga un gráfico en un control ActiveX
LockNavigationPane: Bloquea el panel de navegación de Access
Log: Devuelve el logaritmo natural de un número
Ltrim: Remueve los espacios iniciales al principio de una cadena
Max: Devuelve el valor máximo de una consulta SQL
Maximize: Ajusta el tamaño de la ventana actual al ancho y alto de la pantalla
Mid: Extrae una subcadena de una cadena, comenzando con una posición dada
Min: Devuelve el valor mínimo de una consulta SQL
Minute: Devuelve el minuto de la hora (0 a 59)
MkDir: Crea un directorio
Month: Devuelve el mes con un número comprendido entre 1 y 12, a partir de una fecha dada
MonthName: Devuelve una cadena de texto que identifica al mes
Move: Mueve la posición de un registro a un determinado recordset
MoveFirst: Mover el registro a un recordset diferente al actual
MoveSize: Mover o redimensionar una ventana
MsgBox: Muestra una ventana emergente
Now: Devuelve el tiempo y la hora actual
Nz: Detecta un valor nulo o una cadena de longitud cero
Oct: Convierte un valor numérico en una variable de tipo octal
OpenForm: abrir un formulario
OpenQuery: abre una consulta SQL
OpenRecordSet: abre un nuevo conjunto de registros
OpenReport: abrir un informe
Orden de eventos para objetos de base de datos
OutputTo: genera varios formatos de salida a partir de datos almacenados en la base de datos
Quit: salir de Microsoft Access
Refresh: actualiza los datos mostrados en un formulario
RefreshRecord: refresca los datos en un formulario
Rename: renombra un objeto
ReapintObject: fuerza el método gráfico para repintar un objeto en pantalla
Replace: reemplaza caracteres en una cadena
Requery: vuelve a consultar los datos en un formulario o control
Restore: restaura la ventana activa
RGB: devuelve un valor que representa u color RGB
Right: extrae una subcadena desde una cadena a partir del último carácter de la derecha
Rnd: genera un número aleatorio
Round: devuelve un número redondeado según un número específico de decimales
Rtrim: remueve los espacios finales de una cadena de texto
RunCommand: ejecutar un comando de menú de la barra de herramientas
RunDataMacro: ejecuta una macro de datos con nombre desde VBA
RunMacro: ejecuta una macro desde VBA
RunSavedImportExport: ejecuta una especificación de importación/exportación guardada
RunSQL: ejecuta una consulta SQL
Save: guarda un objeto de la base de datos
SaveSetting: almacena un valor en el registro de Microsoft Windows
SearchForRecord: buscar un registro específico
Second: devuelve los segundos de un minuto para un valor de tiempo dado
Select: recuperar datos desde una o más tablas o consultas
SendObject: envía un email con un objeto de base de datos como archivo adjunto
SendKeys: envía una o más pulsaciones de teclas a la ventana activa
SetAttr: establece los atributos de un archivo
SetDisplayedCategories: especifica que categorías se muestran en la barra de título del panel de navegación
SetFilter: aplica un filtro a una tabla, informe o formulario
SetFocus: mueve el enfoque a un determinado control
SetMenuItem: establece un comando de menú
SetOrderBy: aplica un orden a la tabla, formulario o informe activo
SetParameter: establece un parámetro antes de abrir un formulario, informe o macro
SetWarnings: muestra u oculta los mensajes de sistema
Sgn: devuelve el signo de un número, positivo o negativo
Shell: ejecuta un programa externo
ShowAllRecords: elimina cualquier filtro activo y muestra todos los registros
ShowToolbar: muestra u oculta una barra personalizada
Space: devuelve un número de espacios
Sqr: devuelve la raíz cuadrada de un número
Str: devuelve una cadena de texto en base a un número
StrComp: compara dos cadenas de texto
StrConv: devuelve una cadena convertida a mayúsculas, minúsculas o unicode
String: repite un carácter un número determinado de veces
Sum: suma un conjunto de resultados de una consulta SQL
Switch: examina una lista de expresiones y devuelve un valor que corresponde con el primero que sea True
SysCmd: método de sistema con diversas utilidades
Time: devuelve el tiempo actual del sistema
Timer: cronómetro del formulario
TimeSerial: devuelve un valor de tiempo
TimeValue: convierte una cadena de texto a un valor de tiempo
TransferDatabase: importa o exporta datos desde otra base de datos
TransferSharePointList: importa o vincula datos desde un sitio de SharePoint Foundation
TransferSpreadsheet: importa o exporta datos a un archivo de hoja de cálculo
TransferSQLDatabase: copia una base de datos SQL Server
TransferText: exportar o importar datos desde o hacia un archivo de texto
Trim: remueve los espacios iniciales y finales de una cadena
Ubound: devuelve un valor que contiene el subíndice mayor disponible para dimensión indicada de una matriz
UCase: convierte en mayúsculas una cadena de texto
Undo: deshace la última acción de datos
Update: guarda los cambios pendientes en el recordset
Val: extrae un valor numérico de una cadena de texto
VarType: identifica el tipo de variable
WeekDay: devuelve un número que representa un día de la semana
WeekDayName: devuelve una cadena que representa el día según el valor determinado
Year: devuelve el año a partir de un valor determinado
Como código de ejemplo, en esta clase vamos a ver cómo agregar un nuevo registro mediante SQL y DoCMD
En esta clase veremos como actualizar un registro mediante RunSQL Update
Como eliminar un registro mediante RunSQL Delete
Además de la edición, eliminación y creación de registros, RunSQL se puede usar para otras tareas, tal como se muestra en esta calse
En este vídeo, añadiremos un registros mediante ADD y Update
En esta ocasión, modificando levemente el código de la clase anterior, actualizaremos un registro mediante DAO
En esta clase, buscaremos un registro y mostraremos los datos mediante DAO
Las variables son un aspecto importante en la programación de VBA. En esta clase se explican los diversos tipos de variables que hay.
¿Qué tipo de gestión de errores debo usar? En este vídeo veremos qué método puede ser el más apropiado.
Comportamiento selectivo según If Then Else y End If.
Funciones reiteradas con Do Loop
Vamos a escribir el código VBA necesario para buscar los datos de un determinado cliente
Preparar un formulario para un nuevo documento (factura, presupuesto etc.) puede suponer bastante código. Vamos a ver todo el código que necesitamos escribir.
Preparar un formulario para un nuevo documento requiere de diversas funciones con código. En esta parte, agregamos contenido a una tabla al crear una nueva factura.
Uno de los aspectos más interesantes del código VBA es como nos permite añadir nuevos registros. En esta clase y en la siguiente, veremos como agregar líneas a una factura de ejemplo.
Esta es una continuación de la clase anterior, en la que veremos código para completar el alta de un registro nuevo en una tabla de la base de datos.
Otro de los aspectos que nos interesa aprender es cómo modificar registros en una tabla de la base de datos.
Por supuesto, VBA permite realizar cálculos matemáticos. En esta lección veremos algunos cálculos básicos.
Algunas opciones muy interesantes de VBA son las que tienen que ver con el cambio de propiedades de los objetos. En este vídeo aprenderemos a programar dichos cambios.
En esta lección veremos cómo abrir un informe de impresión con código VBA.
Al escribir código debemos esforzarnos por tener "buena caligrafía". En este vídeo analizamos esta cuestión con un caso práctico.
Finalización del curso
Tomando como ejemplo una base de datos de facturación, añadiremos funciones mediante macros independientes e incrustadas, y analizaremos el código VBA, así como dónde y cuándo utilizarlo.
El método de aprendizaje es en su mayoría, vídeos de ejemplo basados en un programa de facturación.
El curso sigue la estructura paso a paso. Comenzaremos con una base de datos previamente con la mayoría de funciones previamente diseñadas. La base de datos de ejemplo está disponible como recurso de la primera lección.
El curso se estructura tal como sigue:
1) Introducción al curso: Toma de contacto con el curso
2) La programación en Microsoft Access: Cuando usar VBA y cuando macros
3) Las macros: Sección pensada para entender las macros
4) Las macros de ejemplo: Sección práctica para diseñar macros
5) El código VBA: Introducción para comprender el código VBA
6) Relación de código VBA: Exposición de todo el código VBA
7) Programar con VBA: Sección práctica basado en la programación VBA del proyecto base
8) Escribiendo y entendiendo el código VBA: Explicaciones detalladas del código VBA
Durante el desarrollo del curso se explican las macros, y se profundiza sobre VBA, el lenguaje de programación de Microsoft Access.
En resumen, tienes ante ti un curso que una vez completado, te ayudará a mejorar tus proyectos con potentes macros y códigos de Visual Basic para Aplicaciones.