Sunteți pe pagina 1din 314

Gestion de Datos con

Microsoft Access 2016


Tabla de Contenido
PRESENTACIÓN AVANZADA USANDO FORMULARIOS..................................................... 1

CREACIÓN DE FORMULARIOS ........................................................................................................ 2


ASISTENTE PARA FORMULARIOS ................................................................................................... 4
Actividad 1: Crear Formulario usando asistente ........................................................................ 6
PROPIEDADES DEL FORMULARIO ................................................................................................... 9
Propiedades de Formato ............................................................................................................ 9
Actividad 2: Modificar la presentación del Formulario Anterior ................................................ 11
Propiedades de Datos .............................................................................................................. 14
Actividad 3: Formulario sin acceso a datos ............................................................................. 17
AUTOFORMATO ......................................................................................................................... 19
VISTAS: FORMULARIO, PRESENTACIÓN Y DISEÑO.......................................................................... 20
EDITAR CONTROLES................................................................................................................... 23
Seleccionar controles ............................................................................................................... 24
Cambiar las dimensiones ......................................................................................................... 26
Ajustar ...................................................................................................................................... 26
Mover ....................................................................................................................................... 27
Alinear Usted puede alinear múltiples controles. Para ello: ........................................................... 27
Eliminar controles ..................................................................................................................... 27
Agregar controles ..................................................................................................................... 28
Propiedades de los controles ................................................................................................... 34
Cuadros combinados ............................................................................................................... 36
Actividad 4: Crear un formulario con columnas de búsqueda ................................................. 43
Actividad 5: Insertar una etiqueta e imagen ............................................................................. 47
Actividad 6: Editar los controles de un formulario .................................................................... 48
Actividad 6: Agregar etiquetas, cajas de texto y fichas ............................................................ 49
FORMULARIOS CONTINUOS ......................................................................................................... 52
Actividad 8: Crear un formulario continuo ................................................................................ 52
Encabezado y Pie de formulario .............................................................................................. 55
Actividad 9: Cuadro combinado en el encabezado .................................................................. 56
SUBFORMULARIOS ..................................................................................................................... 59
Actividad 10: Subformulario creado manualmente .................................................................. 60
Utilizar el asistente para Subformularios/Subinformes Campos vinculados entre formulario
padre y formulario hijo .............................................................................................................. 61
Actividad 11: Subformulario empleando el asistente para formularios .................................... 65
Modificar el diseño del subformulario ....................................................................................... 68
PREGUNTAS DE REPASO ............................................................................................................ 69
EJERCICIOS CASOS PROPUESTOS............................................................................................... 70
Actividad propuesta 1 ................................................................................................................. 70
Actividad propuesta 2 ................................................................................................................. 72

UTILIDADES ......................................................................................................................... 75

FORMAS DE ABRIR UNA BASE DE DATOS ....................................................................................... 76


SEGURIDAD .............................................................................................................................. 81
Cifrar una Base de Datos mediante contraseña ...................................................................... 83
Actividad 1: Cifrar una Base de Datos mediante contraseña .................................................. 83
Abrir una bd cifrada .................................................................................................................. 85
Descifrar contraseña de una Base de Datos ........................................................................... 85
Actividad 2: Anular contraseña de una Base de Datos ............................................................ 85
Uso del centro de confianza ..................................................................................................... 86
Actividad 3: Agregar un sitio de confianza ............................................................................... 87
CONVERTIR A OTRAS VERSIONES ................................................................................................ 89
ARCHIVOS ACCDE ................................................................................................................... 90
Convertir una base de datos al formato de archivos de Access 2016 ..................................... 91
Copia de Seguridad de base de datos ..................................................................................... 92
MANTENIMIENTO DE UNA BASE DE DATOS ..................................................................................... 93
ANALIZAR LAS TABLAS ................................................................................................................ 93
Actividad 4: Analizar las tablas de una base de datos ............................................................. 93
COMPACTAR Y REPARAR UNA BASE DE DATOS .............................................................................. 96
DIVIDIR UNA BASE DE DATOS ....................................................................................................... 98
Actividad 5: Procedimiento para dividir una tabla .................................................................... 98
ANALIZADOR DE RENDIMIENTO .................................................................................................. 101
DOCUMENTADOR DE BASE DE DATOS ......................................................................................... 102
PREGUNTAS DE REPASO .......................................................................................................... 104

TRABAJANDO CON DATOS EXTERNOS ......................................................................... 105

IMPORTAR .............................................................................................................................. 106


Access .................................................................................................................................... 106
Excel ....................................................................................................................................... 107
Lista de SharePoint ................................................................................................................ 111
Archivo de texto...................................................................................................................... 113
Actividad 1 : Importar de un Archivo de Texto ...................................................................... 114
Archivo XML ........................................................................................................................... 119
EXPORTAR.............................................................................................................................. 121
Excel ....................................................................................................................................... 123
Un archivo RTF de Word ....................................................................................................... 128
Lista de SharePoint ................................................................................................................ 129
Archivo de texto...................................................................................................................... 132
Archivo XML ........................................................................................................................... 133
PREGUNTAS DE REPASO .......................................................................................................... 136
EJERCICIOS CASOS PROPUESTOS............................................................................................. 136

MACROS Y OPCIONES DE INICIO .................................................................................... 137

INTRODUCCIÓN A MACROS ....................................................................................................... 138


Crear una Macro .................................................................................................................... 138
¿Qué es el catalogo de acciones? ......................................................................................... 140
Actividad 1: Crear una macro sencilla .................................................................................... 141
Actividad 2: Asignar la macro a mas de un formulario ........................................................... 144
Actividad 3: Crear Macros condicionadas .............................................................................. 148
BOTONES DE COMANDO EN FORMULARIOS.................................................................................. 153
El asistente para controles ..................................................................................................... 153
Macro Autoexec ..................................................................................................................... 155
Actividad 4: Crear un formulario de Login con autoexec ....................................................... 155
Actividad 5: Crear un formulario que filtre una tabla .............................................................. 159
OPCIONES DE NAVEGACIÓN ...................................................................................................... 163
Crear Categorías .................................................................................................................... 163
Cambiar entre categorías ....................................................................................................... 171
Ordenar categorías ................................................................................................................ 171
Vistas ...................................................................................................................................... 172
OPCIONES DE LA BASE DE DATOS .............................................................................................. 172
Formulario o página inicial ..................................................................................................... 172
Actividad 6: Creando un formulario de inicio Panel de Control ............................................. 173
PREGUNTAS DE REPASO .......................................................................................................... 178
EJERCICIOS CASOS PROPUESTOS............................................................................................. 178
Actividad propuesta 1 ............................................................................................................... 178
Actividad propuesta 2 ............................................................................................................... 178

PROGRAMACIÓN CON VBA ............................................................................................. 179

USO DE VBA EN ACCESS ......................................................................................................... 180


Actividad 1: Crear nuestro primer archivo vba ....................................................................... 181
Actividad 2: Creando un formulario, para ingresar código vba .............................................. 184
Actividad 3: Agregar código vba a un formulario ................................................................... 187
Actividad 4: Conociendo la ventana Inmediato ...................................................................... 192
Variables ................................................................................................................................ 196
Ámbito ó Alcance de las Constantes y variables ................................................................... 200
Conociendo los tipos de variables ......................................................................................... 201
Procedimientos y Funciones .................................................................................................. 202
Actividad 5: Creando un procedimiento sencillo .................................................................... 203
Actividad 6: Conociendo los ámbitos de las variables ........................................................... 205
Actividad 7: Funciones en Formularios .................................................................................. 210
Probando los tipos de variables ............................................................................................. 214
Estructuras de Control............................................................................................................ 216
Estructuras de Decisión. ........................................................................................................ 216
Actividad 8: Ejemplo de condicional mas compleja ............................................................... 219
Actividad 9: Ejemplo de instrucción Select Case ................................................................... 221
Estructuras Repetitivas .......................................................................................................... 222
Actividad 10: Ejemplos de instrucciones Repetitivas ............................................................. 225
PROGAMACIÓN ORIENTADA A OBJETOS ...................................................................................... 229
Actividad 11: Aplicando eventos al formularios ..................................................................... 232
Actividad 12: Continuando con eventos al formulario ........................................................... 236
Tratamiento de los errores en procedimientos ..................................................................... 240
Errores en Tiempo de Diseño ................................................................................................ 240
Errores en Tiempo de Ejecución ............................................................................................ 241
EDITANDO EL CÓDIGO DE LAS MACROS DE ACCESS ..................................................................... 243
Código frente a macros .......................................................................................................... 243
Actividad 13: Editando botones para operar registro y Formulario ........................................ 257
Los modelos de objetos de Access ........................................................................................ 261
LOS CONTROLES ACTIVEX ....................................................................................................... 262
Agregando controles en el Formulario ................................................................................... 262
Actividad 14: Conociendo el orden de los eventos de un Formulario .................................... 264
Conexión con datos en un formulario .................................................................................... 271
Actividad 15: Usando la propiedad ControlSource en tablas diferentes ................................ 276
Editando el código de los controles ActiveX .......................................................................... 290
Actividad 16: Creando una barra de progreso ....................................................................... 290
PROGRAMACION A.D.O ...................................................................................................... 296
Esquema básico de como funciona una conexión ADO ........................................................ 297
Actividad 17: Conectando a datos con ADO .......................................................................... 298
datos no duplicados en una tabla .......................................................................................... 302
Actividad 18: Verificar que al guardar datos no se duplique en la bd .................................... 302
PREGUNTAS DE REPASO .......................................................................................................... 303
EJERCICIOS CASOS PRACTICOS ................................................................................................ 303
Capítulo

Presentación avanzada
usando formularios
Objetivos Especificos:

Crear formularios.
Utilizar el asistente de formularios.
Modificar las propiedades de los formularios
Agregar campos a un formulario y modificar sus
propiedades

Introducción:
Los formularios, tiene un formato que nos permite
visualizar y presentar los datos guardados en tablas o
consultas de forma atractiva, ya que, si bien la función
principal de Access es manejar información, la manera en
que la presentemos es fundamental, para obtener de ella
su máximo provecho.
Microsoft Office Access 2016

Creación de formularios

Antes de crear los formularios, primero debemos tener claro lo que deseamos mostrar y la forma
en la cual queremos visualizar la información. Su elaboración tiene un objetivo, que es trabajar
con los registros para poder visualizar y/o modificar los datos de una tabla o consulta. Los
formularios son un elemento clave en Access ya que permite poder visualizar la data de una
manera mas amigable.
En este capitulo, vamos a tratar en la creación de los formularios, que es un complemento de
las tablas y las consultas, ya que nos permite realizar multiples operaciones sobre la base de
datos, por ejemplo; ingresar nuevos registros, buscar datos especificos, filtrar los datos,
modificar y eliminar registros. Además, es un medio de acceso a la información que resulta
atractiva para el usuario, por lo tanto, será más agradable utilizar estos objetos cuando se
necesite acceder a la información almacenada en las tablas o consultas de la base de datos. Para
trabajar con los formularios, se necesita ingresar a la ficha Crear y usamos cualquiera de las
opciones del grupo Formularios que se muestra a continuación:

Formulario: Esta opción permite crear un formulario de una tabla o


1 consulta que se encuentre seleccionado, en el Panel de Navegación, el
diseño es predeterminado por Access.

Diseño de Formulario: De manera automática ingresa al modo edición de


2 formulario, donde podemos insertar los campos asi como algún control que
se desee.

Formulario en Blanco: Crea un formulario completamente vacio, sin


3 controles ni campos, ideal cuando se desea crear un formulario principal,
que permita llamar a los otros formularios

Escuela de Tecnología de la Información 2


Capítulo 1: Presentación avanzada usando formularios

Mas Formularios: Permite poder elegir entre cuatro opciones para la


creación de nuevos formularios: Varios elementos (formulario que muestra
varios registros a la vez), Hoja de datos (Es un formulario que muestra
varios registros en una hoja de datos), Formulario dividido (Posee el
formulario arriba y en la parte inferior una hoja de datos para ingresar
información) y Cuadro de dialogo modal (Crea un formulario con los
botones Aceptar y Cancelar de manera predeterminada asi como la
configuración de modal en verdadero ).

Navegación: Crea un formulario con pestañas de navegación en distintas


posiciones para explorar distintos formularios.

Asistente para formularios: Llama a una ventana con el asistente donde


6 nos guía en la creación paso a paso de un formulario.

Escuela de Tecnología de la Información 3


Microsoft Office Access 2016

Asistente para Formularios


Uno de los caminos más rápidos para crear formularios es utilizar el asistente para
formularios. Para hacer uso de él ejecute el siguiente procedimiento:

1. Haga clic en la ficha Crear, en la Cinta Formularios, Opción Mas Formularios y


elegir Asistente para Formularios.

2. Al iniciar el asistente, seleccione la tabla o


consulta desde la que serán tomados los datos.
Si los datos que necesita ver en el formulario
se encuentran en dos o más tablas, puede crear
primero una consulta que las relacione y
después crear el formulario.

3. Seleccione los campos que desea incluir en el formulario. Para esto usted puede:

 Hacer doble clic convenientemente en cada uno de los campos de la lista


izquierda.
 También puede seleccionar un campo y luego emplear el botón >.
 Si desea seleccionar todos los campos, haga uso del botón >>.

Escuela de Tecnología de la Información 4


Capítulo 1: Presentación avanzada usando formularios

 Para deseleccionar campos haga doble clic en los elementos de la lista derecha
o emplee los botones < o <<.

4. Haga clic en el botón Siguiente cuando termine.


5. Escoja la distribución que tendrán los campos en el formulario y haga clic en el botón
Siguiente.

Escuela de Tecnología de la Información 5


Microsoft Office Access 2016

6. Escriba un nombre al formulario y finalice la acción con el asistente, en este cuadro te


da dos opciones, la primera que de frente introduzcas datos en ella y la segunda donde
se puede editar la configuración del entorno del formulario

El Asistente para formularios te da la posibilidad de seleccionar campos de más de


una tabla o consulta. Procediendo de esta forma se puede crear de modo automático
una consulta (invisible para el usuario) entre las tablas o consultas que haya
seleccionado. A fin de hacer esta acción, Access vincula dichos objetos empleando
las definiciones establecidas en la ventana de relaciones; si usted no había
relacionado las tablas o consultas que seleccionó como origen de datos, Access no
podrá ejecutar la acción.

Actividad 1: Crear Formulario usando asistente

En la base de datos Senati que se encuentra en Cap1., usted creará un formulario que
muestre los datos de la tabla Empleados de modo que se muestre como se aprecia en
la siguiente ilustración:

Escuela de Tecnología de la Información 6


Capítulo 1: Presentación avanzada usando formularios

Formulario Instructor

Procedimiento
1. Haga clic en la ficha Crear, en la Cinta Formularios, elegir Asistente para
Formularios.

2. En el primer paso del asistente seleccione la tabla Instructor y


luego haga clic en el botón a fin de indicar que
todos los campos de la tabla sean mostrados en el
formulario tal como se muestra en la siguiente imagen:

Escuela de Tecnología de la Información 7


Microsoft Office Access 2016

3. Haga clic en el botón Siguiente.


4. Al mostrarse la lista de distribuciones haga clic en el botón de opción En
columnas y luego active el botón Siguiente.

Distribución del formulario

Escuela de Tecnología de la Información 8


Capítulo 1: Presentación avanzada usando formularios

5. Se le sugiere Instructor como título del formulario; déjelo así y haga clic en el
botón Finalizar.
6. Guarde el formulario dando clic al botón Guardar,
verifique al Guardar que se guardó con el nombre:
Instructor.

7. Cierre el formulario.

Propiedades del formulario


Propiedades de Formato

Escuela de Tecnología de la Información 9


Microsoft Office Access 2016

Encabezado del Formulario: Es él título que será mostrado en la vista


diseño Formulario del formulario. Aunque el nombre del formulario suele
ser igual a esta propiedad, es posible que estos dos valores sean distintos (el
nombre del formulario se puede modificar en la ventana de objetos de la
base de datos).

Vistas: Por defecto en los formularios esta configurado la vista Un único


formulario, se puede modificar el tipo de vista de acuerdo a las necesidades
de los usuarios; entre ellas además están: Formularios continuos, Vista hoja
de datos y Formulario dividido.

Selector de registro: El selector de registros es un control propio del


formulario que permite seleccionar uno de los registros de los formularios.
Es principalmente útil cuando se muestran múltiples registros al mismo
tiempo.

Barras de desplazamiento: Es posible establecer si mostrada la barra de


deslazamiento horizontal o vertical cuando el tamaño de la ventana del
formulario sea más pequeño que el definido para él.

Botones de desplazamiento: Estos controles permiten desplazarse a


través de los registros tal como se hace en la vista Hoja de datos.

Escuela de Tecnología de la Información 10


Capítulo 1: Presentación avanzada usando formularios

Hoja de Propiedades. - A través de la hoja de propiedades se puede


seleccionar otras opciones de edición como por ejemplo color de fondo del
Formulario, tipo de vista del formulario. Podemos editar cada uno de los
controles del Formularo y otras opciones más que la veremos en ejemplos mas
adelante

Actividad 2: Modificar la presentación del Formulario Anterior

Damos clic derecho al Formulario Instructor, como se muestra en la imagen.

Observaremos el Formulario en vista diseño activamos sus propiedades:


Clic en Propiedades de la ficha Diseño de Formulario

O lo podemos hacer ejecutando el otro procedimiento

Escuela de Tecnología de la Información 11


Microsoft Office Access 2016

Activamos detalle del Formulario y nos vamos a la opción color de fondo,


elegimos el color que se muestra, en la ventana ejemplo

Vamos a proceder a cambiar la forma como se va a visualizar la foto del Instructor,


para ello haremos lo siguiente:

Escuela de Tecnología de la Información 12


Capítulo 1: Presentación avanzada usando formularios

Modificamos las dimensiones del tamaño del campo insFoto, seleccionamos el


campo insFoto, dentro de la Hoja de Propiedades y cambiamos la propiedad
Modo de cambiar el tamaño en Extender.

Verificamos como queda cambiando a vista formulario, guardamos y cerramos

Escuela de Tecnología de la Información 13


Microsoft Office Access 2016

Propiedades de Datos
Para definir propiedades de un formulario realice las siguientes acciones:

1. Abra el formulario en vista diseño. Puede hacer clic derecho sobre el formulario y
activar el comando Vista diseño.

2. Haga clic en la ficha Diseño, Cinta de opciones Herramientas y luego Hoja de


Propiedades.

Al presentársele la Hoja de propiedades,


despliegue el primer cuadro combinado y
seleccione Formulario. Las propiedades están
organizadas en fichas a fin de facilitar su
ubicación.

Las fichas que se muestran son: Formato, Datos,


Eventos, Otras y Todas

Escuela de Tecnología de la Información 14


Capítulo 1: Presentación avanzada usando formularios
En la hoja de propiedades del Formulario, esta dividido en cinco pestañas, la primera
pestaña se llama Formato y
esta compuesta, por
opciones que permiten dar
formato al formulario en el
cual se esta trabajando,
hablaremos de algunas
propiedades, las otras
propiedades las
mencionaremos en ejemplos
posteriores.
Titulo. - Es el que permite
poder poner un título en la
barra de títulos de todos los
formularios.
Vista predeterminada. –
Muestra cuatro opciones que
ya se explico en el ítem
propiedades de formato-
Vistas.
Permitir vista Formulario.
– Te das opciones Sí o No.
Tipo de Imagen. – Te da
tres opciones insertado,
vinculadas y compartidas.
Imagen. - Permite poder
poner como fondo de
formulario una imagen.
Mosaico de imágenes. – Te
da dos opciones Sí o No, por
defecto es No.
Ancho. – Permite definir que
ancho debe tener el
formulario.
Centrado automatico. -
Permite poder configurar
que el formulario se centre
de manera automática.
Selectores de Registros. – Usado cuando nuestro formulario esta trabajando con
registros de manera automática.
Botonos de Navegación. – Trabaja de manera conjunta con los selectores de registros,
viene con los botones siguiente registro, Registro anterior, primer registro y último
registro.
Barras de desplazamiento. – Muestra cuatro opciones: Ninguna, solo vertical, solo
horizontal y ambas.

Escuela de Tecnología de la Información 15


Microsoft Office Access 2016

a. Origen del registro


Es la tabla o consulta desde la cual se extraen los datos para ser mostrados en el
formulario. Esta propiedad puede ser modificada empleando el Generador de
Expresiones
 Personalizar con el generador de expresiones

b. Permitir Agregar
Indica si el formulario permitirá al usuario añadir registros.
c. Permitir Eliminación
Indica si el formulario permitirá al usuario eliminar registros.
d. Permitir Editaciones
Indica si el formulario permitirá al usuario actualizar registros.

Escuela de Tecnología de la Información 16


Capítulo 1: Presentación avanzada usando formularios

Actividad 3: Formulario sin acceso a datos


En la base de datos BdSenati creará un formulario como el que se muestra a continuación:

Procedimiento
1. Hacer clic en la ficha Crear, luego la cinta Formularios, luego Formulario en Blanco.

2. Luego haga click en la Vista Diseño

Escuela de Tecnología de la Información 17


Microsoft Office Access 2016

3. Active la Hoja de propiedades y defina las siguientes propiedades en ella:

Propiedad Valor

Título BIENVENIDO SENATI

Vista predeterminada Un único formulario

Permitir vista Formulario Sí

Barras de desplazamiento Ninguna

Selectores de registros No

Botones de navegación No

Separadores de registro No

Ancho 10cm

Botones Maximizar y Minimizar Ninguno

Botón Cerrar Sí

Imagen LogoSenati

Escuela de Tecnología de la Información 18


Capítulo 1: Presentación avanzada usando formularios

Para establecer la imagen haga clic en la propiedad que tiene este nombre, verá un
botón que muestra tres puntos y luego haga doble clic sobre el archivo que se le ha
indicado.
4. Cierre la ventana de propiedades y guarde el formulario con el nombre Bienvenido
Como tarea adicional busque la propiedad que permite cambiar la ubicación de la imagen
y la que establece que ella pueda ocupar toda el área del formulario.

Autoformato
Usted puede modificar el aspecto general del formulario de una manera muy rápida empleando
el siguiente método:
1. Muestre el formulario en vista diseño.
2. Haga clic en la ficha Diseño y luego en el comando Temas.

3. Haga clic en el tema que desee.

4. Puede aplicar colores, que permite conjugar los colores de los formularios que desee
modificar.

Escuela de Tecnología de la Información 19


Microsoft Office Access 2016

Vistas: Formulario, Presentación y Diseño


Para ver las Vistas de un Formulario, tenemos tres opciones:

1. Hacemos clic con el Botón Derecho del Mouse sobre el Formulario y elegimos la Vista

2. Hacemos doble clic sobre el Formulario, y luego la Ficha Inicio, Cinta Vistas y elegimos
la que deseamos: vista formulario, Vista Presentación o Vista Diseño

Vista Presentación.
La vista Presentación es una vista más orientada a la parte visual que la vista Diseño. Mientras
visualiza un formulario en una vista Presentación puede modifcar, cada control de datos reales.
En consecuencia, es una vista muy útil para ajustar el tamaño de los controles o realizar muchas
otras tareas que afectan al aspecto visual y al uso del formulario.
Hay algunas tareas que no se pueden realizar en la vista Presentación y que requieren pasar a la
vista Diseño. En algunos casos, Access muestra un mensaje que indica que hay que cambiar a
la vista Diseño para llevar a cabo un cambio determinado.

Escuela de Tecnología de la Información 20


Capítulo 1: Presentación avanzada usando formularios

Modificar un formulario en la vista Presentación


 Una vez creado el formulario, puede ajustar fácilmente su diseño en la vista
Presentación. Usando los datos reales del formulario como punto de referencia,
puede reorganizar los controles y ajustar su tamaño. Pueden colocar controles
nuevos en el formulario y configurar las propiedades del formulario y de sus
controles.
 Para cambiar a la vista Presentación, haga clic con el botón secundario en el
nombre del formulario en el panel de navegación y, a continuación, haga clic en
Vista Presentación.

 Access muestra el formulario en la vista Presentación.


 Puede usar la hoja de propiedades para modificar las propiedades del formulario,
sus controles y secciones. Para mostrar la hoja de propiedades, presione F4.

Escuela de Tecnología de la Información 21


Microsoft Office Access 2016

 Puede usar el panel Lista de campos para agregar campos de la tabla o consulta
subyacente al formulario. Para mostrar el panel Lista de campos, use uno de los
siguientes métodos:
 En el grupo Controles de la ficha Formato, haga clic en Agregar campos
existentes.
 Presione ALT+F8.
 A continuación, podrá arrastrar directamente los campos desde el panel Lista de
campos hasta el formulario.
 Para agregar un solo campo, haga doble clic en él o arrástrelo desde el panel
Lista de campos hasta la sección del formulario donde desee que se muestre.
 Para agregar varios campos a la vez, mantenga presionada la tecla CTRL y haga
clic en los campos que desee agregar. A continuación, arrastre los campos
seleccionados hasta el formulario.

Vista Diseño.

La vista Diseño ofrece una vista más detallada de la estructura del informe. Se pueden ver las
secciones Encabezado, Detalle y Pie de página de un formulario. No se pueden ver los datos
subyacentes mientras se están haciendo cambios en el diseño. No obstante, hay ciertas tareas
que puede realizar más fácilmente en la vista Diseño que en la vista Presentación. Puede realizar
las acciones siguientes:
- Agregar una mayor variedad de controles al formulario, como etiquetas, imágenes,
líneas y rectángulos.
- Editar orígenes de control de cuadro de texto en los mismos cuadros de texto sin usar la
hoja de propiedades.
- Cambiar el tamaño de las secciones de los formularios, como por ejemplo la sección
Encabezado del formulario o la sección Detalle.
- Cambiar algunas propiedades del formulario que no se pueden cambiar en la vista
Presentación (como Vista predeterminada o Permitir vista Formulario).

Modificar un formulario en la vista Diseño


 El diseño de un formulario también se puede ajustar en la vista Diseño. Se pueden
agregar nuevos controles y campos al formulario agregándolos a la cuadrícula de
diseño. La hoja de propiedades incluye un gran número de propiedades que se
pueden configurar para personalizar el formulario.
 Para cambiar a la vista Diseño, haga clic con el botón secundario en el nombre del
formulario en el panel de navegación y, a continuación, haga clic en Vista Diseño.
 Access muestra el formulario en la vista Diseño.
 Puede usar la hoja de propiedades para modificar las propiedades del formulario,
sus controles y secciones. Para mostrar la hoja de propiedades, presione F4.

Escuela de Tecnología de la Información 22


Capítulo 1: Presentación avanzada usando formularios

 Puede usar el panel Lista de campos para agregar campos de la tabla o consulta
subyacente al diseño del formulario. Para mostrar el panel Lista de campos, use uno
de los métodos siguientes:
 En el grupo Herramientas de la ficha Diseño, haga clic en Agregar campos
existentes.
 Presione ALT+F8.
 Luego puede arrastrar directamente los campos desde el panel Lista de campos al
formulario.
 Para agregar un solo campo, haga doble clic en él o arrástrelo desde el panel Lista
de campos hasta la sección del formulario donde desee que se muestre.
 Para agregar varios campos a la vez, mantenga presionada la tecla CTRL y haga clic
en los campos que desee agregar. A continuación, arrastre los campos seleccionados
hasta el formulario.

Editar controles
Usted puede cambiar la presentación de los controles de los formularios. También puede añadir
nuevos objetos y eliminar los existentes

Escuela de Tecnología de la Información 23


Microsoft Office Access 2016

Tipos de controles
Usted puede encontrar los siguientes controles en un formulario:
 Etiquetas
 Cuadros de texto
 Cuadros combinados
 Botones de comando
 Grupos de botones de opción
 Grupos de botones alternar
 Casillas de verificación
 Imágenes
 Controles de ficha
 Subformularios

Los controles más utilizados son los primeros. En la siguiente imagen usted puede apreciar la
vista diseño de un formulario y en ella se le indicará cuáles son las cajas de texto (T), etiquetas
(E) y cuadros combinados (C).

Vista diseño de un formulario


Seleccionar controles
Para seleccionar un control, haga clic sobre él.
Para seleccionar múltiples controles puede realizar cualquiera de las siguientes acciones:

Escuela de Tecnología de la Información 24


Capítulo 1: Presentación avanzada usando formularios

 Coloque el puntero fuera de uno de ellos y arrastre hasta formar un rectángulo que
abarque, aunque sea parcialmente, a todos los controles que desea seleccionar.

 Haga clic en la regla horizontal de modo que el puntero se tome el aspecto de una
flecha apuntando hacia abajo. Después de hacer clic todos los controles bajo la
flecha quedarán seleccionados; si además desea seleccionar controles que no se
encuentran bajo la primera posición del puntero puede arrastrar la fecha
horizontalmente.

Escuela de Tecnología de la Información 25


Microsoft Office Access 2016

 De forma similar, puede seleccionarse múltiples controles colocando el puntero


sobre la regla vertical del lado izquierdo del formulario.

Cambiar las dimensiones


Para modificar el tamaño de un control:
1. Active la vista diseño del formulario.
2. Haga clic sobre el control deseado y coloque el puntero del mouse sobre cualquiera de
los controladores ubicados en sus esquinas y en la mitad de cada uno de sus lados. El
puntero del mouse adquirirá la forma de una doble flecha indicando que es posible
cambiar el tamaño del objeto.
3. Arrastre para cambiar el tamaño.

Ilustración: Cambiar el tamaño desde la esquina inferior derecha


Ajustar
Para cambiar el tamaño de múltiples controles simultáneamente:
1. Active la vista diseño.

Escuela de Tecnología de la Información 26


Capítulo 1: Presentación avanzada usando formularios
2. Seleccione los controles cuyos tamaños de sea
cambiar.
3. Ejecute alguna de las siguientes acciones:
 Arrastre cualquiera de los controladores de
tamaño de uno de los controles; el resto de
los objetos cambiará su tamaño en la misma
forma el que usted eligió.
Haga clic en la Ficha Organizar, cinta
Tamaño y haga clic en alguno de los
siguientes botones:
- Ajustar al más ancho
- Ajustar al más estrecho
- Ajustar al más corto
- Ajustar al más alto
Mover
Para mover un control:
1. Active la vista diseño del formulario.
2. Haga clic sobre el control deseado y coloque el puntero del mouse sobre cualquiera de
sus bordes (verá el puntero en forma de cruz con un puntero).
3. Arrastre para cambiar la posición.

Alinear Usted puede alinear múltiples controles. Para ello:


1. Active la vista diseño del formulario.
2. Seleccione los controles que desee alinear.
3. Haga clic en la Ficha Organizar, cinta Alineación de
Controles y haga clic en alguno de los siguientes comandos:
 Izquierda
 Derecha
 Arriba
 Abajo
Eliminar controles
Usted puede alinear múltiples controles. Para ello:
1. Active la vista diseño del formulario.
2. Seleccione los controles que desee eliminar.
3. Presione la tecla suprimir del teclado

Escuela de Tecnología de la Información 27


Microsoft Office Access 2016

Agregar controles
Usted puede añadir controles a un formulario a través del siguiente camino:
a. Desde la lista de campos
- Muestre el formulario en vista diseño.
1) Haga visible la lista de campos. Para esto lleve a cabo alguna de las siguientes
acciones:
2) Haga clic en el botón Lista de campos de la barra de herramientas Diseño de
formulario.
Arrastre el campo desde la ventana con la lista de campos hasta el formulario.

b. Si desea emplear el cuadro de herramientas:


- Muestre el formulario en vista diseño.
- Ubíquese en la Ficha Diseño, Comandos Controles. Para esto lleve a cabo
alguna de las siguientes acciones:

Escuela de Tecnología de la Información 28


Capítulo 1: Presentación avanzada usando formularios

- Haga clic en el botón que representa al tipo de control deseado y haga clic en la
posición del formulario donde desea colocar el objeto.
- Establezca las propiedades necesarias para el control.

c. Si desea emplear un asistente para controles:


- Muestre el formulario en vista diseño.
Asistente para
- Asegúrese de que el botón Asistente para controles de la controles
Cinta Controles se encuentre activado.
- Haga clic en el botón que representa al tipo de control
deseado y arrastre el puntero en el formulario sobre la
posición en la que desea colocar el objeto.
- Siga los pasos del asistente.
Controles a usar
 Botón de opción
Los botones de opción son empleados cuando en un campo Botón de
hay un número pequeño de valores permitidos y hay
Opción
suficiente espacio en el formulario para dejar visible al
usuario todas las posibilidades.
Algunos campos en los que se puede emplear este tipo de
controles son:
1. El campo Sexo en una tabla de datos personales.
2. El campo Categoría cuando hay suficiente espacio disponible en un
formulario.
Para insertar botones de opción realice lo siguiente:
1. Verifique que el formulario está asociado a un Grupo de
origen de datos opciones

2. Active el botón Asistente para controles.


3. En la ficha Diseño, Cinta Controles, haga clic en
el botón Grupo de opciones y luego haga clic en
el formulario. Aparecerá el asistente.
4. Escriba el texto que debe ir en cada opción y pulse Siguiente.
5. Si lo desea, escoja una opción predeterminada y haga clic en Siguiente.

Escuela de Tecnología de la Información 29


Microsoft Office Access 2016
6. Asocie un valor numérico a cada opción; cuando se seleccione una
opción el grupo tomará el valor de la opción elegida.
7. En la siguiente ventana, el cuadro de diálogo le permitirá vincular el
valor del grupo con uno de los campos numéricos del origen de datos.
Por ejemplo, el campo zona puede tener cuatro valores posibles: 1, 2,
3, y 4; el grupo de opciones podría tener las descripciones de estos
valores del siguiente modo: 1-Norte, 2-Sur, 3-Este y 4-Oeste.
8. Indique el tipo de controles que desea emplear y avance a la siguiente
ventana.
9. Escriba un título para el grupo y haga clic en Finalizar.
 Cuadro de texto
Los cuadros de texto se usan para mostrar información
proveniente de la base de datos y para ingresar los datos Cuadro de texto
en ella.
Después de insertar un cuadro de texto a partir del
cuadro de herramientas, usted verá el control con la
palabra ’Independiente’ en su interior. A fin de enlazar
el control con el origen de datos del formulario:
1. Verifique que el formulario está asociado a un origen de datos; para esto:
a. Haga visible la ventana de propiedades y despliegue el cuadro
combinado para que sean mostradas las propiedades del
formulario.
b. Active la ficha Datos y verifique que la propiedad Origen del
registro contiene algún valor (puede ser una tabla, una consulta o
una expresión SQL). Si no hay ningún valor definido en esta
propiedad puede crearlo haciendo uso del generador de consultas
que se encuentra a la derecha.
c. La imagen muestra que el formulario tomado de ejemplo tiene
como fuente la tabla alumno. En esta ilustración el generador de
consultas es el botón que posee tres puntos y que se ve seleccionado
con el puntero del mouse.

d. cierre la ventana de propiedades.

Escuela de Tecnología de la Información 30


Capítulo 1: Presentación avanzada usando formularios

2. Haga clic derecho en el interior del cuadro de texto del formulario y luego
active el comando Propiedades.
3. Active la ficha Datos.
4. Para el enlace:
a. Haga clic en la propiedad Origen de datos
b. Si el cuadro contendrá el valor de un campo tal como se encuentra
en la base de datos, despliegue la lista y seleccione el campo que
desea utilizar.
c. Si el cuadro calculará un valor a partir de uno o más campos, haga
clic en el botón del generador de expresiones que se encuentra a la
derecha del campo y escriba la fórmula a emplear. El generador de
expresiones es un botón con tres puntos en su superficie, semejante
al generador de consultas que se encuentra a la derecha de la
propiedad Origen de datos.

Generador de expresiones
La ilustración anterior muestra al Generador de expresiones con la
fórmula que calcula la edad de un trabajador a partir de su fecha de
nacimiento.
5. Cierre la ventana de propiedades.
 Etiqueta
Las etiquetas tienen como fin presentar un texto al usuario Etiqueta
de modo que le sea más fácil entender el propósito del
formulario y sus demás controles.
Después de insertar una etiqueta a partir del cuadro de
herramientas, se le presentará un rectángulo con el punto de
inserción parpadeando de tal forma que usted pueda escribir
el texto que contendrá.

Escuela de Tecnología de la Información 31


Microsoft Office Access 2016

 Casilla de verificación
Las casillas de verificación se emplean para presentar datos Casilla de
que pueden tener solamente dos valores que se expresan en Verificación
términos de Sí o No, o Activado y Desactivado. Los
siguientes ejemplos pueden ayudarlo a familiarizarse con
casos de uso típico de estos controles:
1. El campo Importado para el catálogo de productos
de una empresa.
2. El campo Sindicalizado para una tabla de datos personales.
Algunas personas emplean casillas de verificación para el campo Sexo,
proceder de esta manera indicaría ‘Sexo: Sí ‘o ‘Sexo: No’; sería mucho mejor
emplear botones de opción o cuadros combinados para este tipo de campos.
Después de insertar una casilla de verificación a partir del cuadro de
herramientas, usted verá el control con la expresión ’VerificaciónX’ donde X
es un número que representa el orden de aparición del control en el formulario.

A fin de enlazar el control con el origen de datos:


1. Verifique que el formulario está asociado a un origen de datos.
2. Haga clic derecho sobre el visto bueno de la izquierda y active el
comando Propiedades.
3. Active la ficha Datos.
4. Modifique la propiedad Origen del control para indicar cuál es el
campo vinculado.
5. Cierre la ventana
6. Haga clic derecho sobre la etiqueta VerificaciónX y active el comando
Propiedades.
7. Active la ficha Formato.
8. Modifique la propiedad Título para indicar cuál debe ser el texto que se
muestre.
 Control de Pestañas
Las fichas permiten agrupar los controles de acuerdo a alguna Control de
característica que tengan en común; son empleadas pestañas
comúnmente cuando se cuenta con una gran cantidad de
controles y se desea mostrarlos por etapas.
Para utilizar estos controles:

Escuela de Tecnología de la Información 32


Capítulo 1: Presentación avanzada usando formularios

1. Muestre el formulario en vista diseño.


2. En el cuadro de herramientas, haga clic sobre el control Ficha y luego
haga clic sobre el formulario.
3. Seleccione el control y emplee los controladores de tamaño de modo
que ocupe el área que usted desee.
4. Modifique la propiedad Título de cada ficha para que muestren el texto
deseado. A fin de realizar esta acción:
a. Haga clic derecho sobre la primera pestaña del control y luego
haga clic sobre el comando Propiedades.
b. En la ficha Formato, busque la primera propiedad y cambie el
título.
c. Repita estas acciones con las demás fichas.
Para colocar controles en las fichas puede emplear dos métodos:
a. Utilizar controles que ya existen en el formulario.
i. Corte los controles que desea colocar en la ficha.
ii. Seleccione la ficha y pegue (CTRL+V)
iii. Desplace los controles dentro de la ficha para ubicarlos en
el lugar exacto que desee.
b. Crear controles desde el cuadro de herramientas.
i. Seleccione la ficha.
ii. Haga clic en el control deseado dentro del cuadro de
herramientas.
iii. Haga clic dentro de la ficha.
iv. Personalice el tamaño y posición del control dentro de la
ficha.

Dos selecciones distintas

Escuela de Tecnología de la Información 33


Microsoft Office Access 2016

Cambiar el título de una ficha

Propiedades de los controles


Usted puede modificar el aspecto y comportamiento de los controles individualmente a través
de sus propiedades. Entre aquellas que modifican la apariencia se encuentran las propiedades
de la fuente (nombre, tamaño, estilo, alineación y color); están, también el color de fondo, el
grosor y color de los bordes y el efecto especial. La forma más fácil de configurar estas
propiedades es la siguiente:
1. Seleccione el control al que desea cambiar una determinada propiedad. Puede hacer una
selección múltiple si desea hacer cambios en múltiples controles.
2. Haga clic en la opción correspondiente a la propiedad en la Hoja de Propiedades.

Escuela de Tecnología de la Información 34


Capítulo 1: Presentación avanzada usando formularios

a. Orden de tabulación
Cuando se agrega y mueve controles se debe tener cuidado en el orden en el cual
usted se podrá desplazar por el formulario empleando la tecla TAB. Para configurar
la secuencia en que los controles obtienen el enfoque usted puede hacer clic derecho
sobre cualquiera de ellos y activar el comando Orden de tabulación.

b. Color de fondo

c. Efecto especial

Escuela de Tecnología de la Información 35


Microsoft Office Access 2016

d. Color de bordes

e. Formato

Cuadros combinados
Los cuadros combinados se emplean para que el usuario elija un valor dentro Cuadro
de un conjunto de posibilidades. Se prefiere este tipo de controles frente a los combinado
botones de opción cuando el espacio en el formulario es reducido o cuando se
espera que el conjunto de valores disponibles cambie.
La forma más sencilla de insertar cuadros combinados en la vista diseño de un
formulario existente es emplear el asistente para cuadros combinados tal como
se detalla a continuación:
1. Verifique que el formulario está asociado a un origen de datos tal como se detalla en el
primer paso de Insertar cuadros de texto
2. Active el asistente para controles y guíese por sus instrucciones.

Usando el asistente para controles

 Usando una tabla o consulta


Una tabla o consulta: Escoja esta opción si desea colocar en el cuadro combinado
valores que se encuentran en alguna tabla de la base de datos. Esta sería una
buena opción, por ejemplo, si desea mostrar distritos en lugar de códigos
postales.
Haga clic en Siguiente:
i. Indique cuál desea emplear.

Escuela de Tecnología de la Información 36


Capítulo 1: Presentación avanzada usando formularios

ii. En el siguiente paso, seleccione los campos que desea emplear. Recuerde
que lo más recomendable es seleccionar dos columnas: una para los
códigos (que serán los que se almacenen) y otra para las descripciones
(que serán las que se muestren).
iii. Luego, indique la forma en la que se ordenarán los registros.
iv. En la siguiente ventana, indique el ancho de las columnas (se recomienda
ocultar la columna de los códigos)

 Escribiendo la lista
Una lista de valores que usted mismo escribirá en el asistente. Esta es la opción
que debe seleccionarse si los valores no se encuentran en ninguna tabla de la
base de datos. Por ejemplo: es común tener un campo Sexo en los datos del
personal de las empresas; el valor almacenado en las tablas suele ser M o F
aludiendo a Masculino y Femenino pero estas palabras nunca están almacenadas
en ninguna tabla.
Haga Clic en Siguiente
i. Indique el número de columnas que va a emplear (normalmente son dos)
y, en la cuadrícula, escriba los valores. Se recomienda que oculte la
columna que contenga los códigos.
ii. En la siguiente ventana, indique cuál de las columnas es la que contiene
los valores que deben ser almacenados en la base de datos (normalmente
es la columna de los códigos).
iii. Avance a la siguiente pantalla del asistente e indique qué campo del
formulario debe almacenar el valor asociado al cuadro combinado.

Escuela de Tecnología de la Información 37


Microsoft Office Access 2016

iv. Finalmente, dé una etiqueta para el cuadro combinado.

 Búsqueda de registros.
Se puede crear un cuadro combinado agregando un campo de búsqueda a un
formulario.
1. Cree un campo de búsqueda en una tabla. Este campo puede ser un
campo multivalor o un campo que contiene un solo valor.
Siga uno de estos procedimientos:
 Cree un nuevo formulario basado en un origen de registros que
incluya el campo de búsqueda. Por ejemplo, en el panel de
exploración, seleccione una tabla o consulta que contenga el
campo de búsqueda y, a continuación, en la ficha Crear, en el
grupo Formularios, haga clic en Formulario.
Access crea automáticamente un cuadro combinado para el campo
de búsqueda.
 Agregue un cuadro de lista o un cuadro combinado a un
formulario:
- En la vista Diseño, abra un formulario que esté basado en un
origen de registros que incluya el campo de búsqueda.
- Si no se muestra el panel Lista de campos, presione ALT+F8
para que se muestre.
- Haga doble clic en el campo de búsqueda, o bien, arrastre el
campo de búsqueda desde el panel Lista de campos hasta el
formulario. Access crea automáticamente un cuadro
combinado enlazado al campo.

Escuela de Tecnología de la Información 38


Capítulo 1: Presentación avanzada usando formularios

Generación automática mediante el uso del asistente de búsquedas en el diseño de las


tablas
Una columna (o campo) de búsqueda es un campo de una tabla cuyo valor se obtiene de otra
tabla o de una lista de valores. Puede usar una columna de búsqueda para mostrar una lista de
opciones en un cuadro combinado o un cuadro de lista. Las opciones pueden proceder de una
tabla o consulta, o pueden ser valores especificados. Puede crear una columna de búsqueda
manualmente, configurando las propiedades de campo de búsqueda de un campo, o
automáticamente, completando el Asistente para búsquedas. Siempre que sea posible, debe usar
el Asistente para búsquedas para crear una columna de búsqueda. El Asistente para búsquedas
simplifica el proceso y rellena automáticamente las propiedades del campo apropiadas y crea
las relaciones de tabla apropiadas.

Puede crear una columna de búsqueda en la vista Hoja de datos o en la vista Diseño.

Crear una columna de búsqueda en la vista Hoja de datos


De forma predeterminada, al abrir una tabla, si abre en la vista Hoja de datos. Puede agregar
una columna de búsqueda haciendo clic en Columna de búsqueda en el grupo Campos y
columnas en la ficha Hoja de datos. Haciendo esto se abre el Asistente para búsquedas, que le
guía en el proceso de creación de la columna de búsqueda.

1. Clic en el menú Archivo, luego clic en Abrir, seleccionando la base de


datos deseada
2. Seleccione la base de datos deseada y abra el archivo, de acuerdo a los procedimientos
que Ud. conoce.
3. En el panel de exploración, haga doble clic en la tabla en la que desee crear la columna
de búsqueda, esto abrirá la tabla en la vista Hoja de datos.
4. En la ficha Hoja de datos, en el grupo Agregar Eliminar, haga clic en el cuadro
combinado Mas campos.

Escuela de Tecnología de la Información 39


Microsoft Office Access 2016

Se iniciará el Asistente para búsquedas.

5. En la primera página del Asistente para búsquedas, indique si desea basar la columna
de búsqueda en los valores de una tabla o una consulta, o en una lista de valores que
escriba.
El tipo de columna de búsqueda más habitual es el que muestra los valores buscados de
una tabla o consulta relacionada.

Escuela de Tecnología de la Información 40


Capítulo 1: Presentación avanzada usando formularios

6. Haga clic en Siguiente y, a continuación, siga las instrucciones para completar el


asistente. Para obtener más información sobre cómo completar el asistente, vea la
sección Uso del Asistente para búsquedas.

Al hacer clic en Finalizar, se crea una columna de búsqueda cuyas propiedades de campo se
basan en las elecciones realizadas en el Asistente para búsquedas.

Crear una columna de búsqueda en la vista Diseño


Puede crear una columna de búsqueda en la vista Diseño, además de en la vista Hoja de datos.
Cuando trabaja en la vista Diseño, puede crear una columna de búsqueda usando el mismo
Asistente para búsquedas que usa en la vista Hoja de datos. Sin embargo, en la vista Diseño,
también tiene acceso pleno a toas las propiedades del campo: Como resultado, puede editarlas
directamente.
1. Haga clic en el Menu Archivo 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 la tabla en la que desee
agregar la columna de búsqueda y, a continuación, haga clic en Vista Diseño en el menú
contextual.
4. Busque la primera fila vacía disponible en la cuadrícula de diseño de la tabla.
5. En la primera fila vacía disponible, haga clic en una celda de la columna Nombre de
campo, y escriba el nombre de campo de la columna de búsqueda.

Escuela de Tecnología de la Información 41


Microsoft Office Access 2016

6. A continuación, haga clic en una celda de la columna Tipo de datos de dicha fila, haga
clic en la flecha desplegable y seleccione Asistente para búsquedas.
Se iniciará el Asistente para búsquedas.

7. En la primera página del Asistente para búsquedas, indique si desea basar la columna
de búsqueda en los valores de una tabla o una consulta, o en una lista de valores que
escriba.
El tipo de columna de búsqueda más habitual es el que muestra los valores buscados de
una tabla o consulta relacionada.
8. Haga clic en Siguiente y, a continuación, siga las instrucciones para completar el
asistente. Para obtener más información sobre cómo completar el asistente, vea la
sección Uso del Asistente para búsquedas.

Escuela de Tecnología de la Información 42


Capítulo 1: Presentación avanzada usando formularios

Al hacer clic en Finalizar, se crea una columna de búsqueda cuyas propiedades de campo se
basan en las elecciones realizadas en el Asistente para búsquedas. Puede ver las propiedades de
campo en el panel inferior de la vista Diseño, bajo Propiedades del campo. Para ver las
propiedades que se aplican específicamente a la columna de búsqueda, haga clic en la ficha
Búsqueda
Usar el Asistente para búsquedas
El Asistente para búsquedas se inicia en los siguientes casos: al crear una columna de búsqueda
en la vista Hoja de datos, al arrastrar un campo desde el panel Lista de campos hasta una tabla
que se abre en la vista Hoja de datos y, en la vista Diseño, al seleccionar Asistente para
búsquedas en la columna Tipo de datos. El asistente le guía en los pasos necesarios para crear
una columna de búsqueda y establece automáticamente las propiedades de campo apropiadas
de acuerdo con sus elecciones.
El asistente también crea relaciones de tabla e índices, cuando es necesario, para asistir a la
columna de búsqueda.

Actividad 4: Crear un formulario con columnas de búsqueda


Vamos a proceder a crear un formulario, primero sin que se haya configurado la columana
de búsqueda.
1. Procedemos a abrir la base de datos BdSenati, en tablas seleccionamos la tabla
alumnos

2. Clic en la ficha Crear, en grupos Formularios, clic en Formulario, visualizamos


un formulario de alumnos donde no se sabe que significa disCodigo = 1

Clic en la ficha herramienta de base de datos, clic en comando Relaciones. Vamos a


modificar las relaciones, configurando dicho campo de numérico como asistente para
búsqueda.

Escuela de Tecnología de la Información 43


Microsoft Office Access 2016

Una vez que ingresamos a la Vista Diseño modificamos el tipo de campo de Número a
Asistente para búsqueda.

El Asistente para búsquedas muestra una ventana cons dos opciones, elegimos la
primera Deseo que el campo de búsqueda busque los valores en otra tabla o consulta.
Clic en Siguiente.

Escuela de Tecnología de la Información 44


Capítulo 1: Presentación avanzada usando formularios

Seleccionamos la tabla Distritos y siguiente

Seleccionamos los campos discodigo y disnombre

Escuela de Tecnología de la Información 45


Microsoft Office Access 2016

Ubicamos en orden de acuerdo a las necesidades de ustedes, en el caso del ejemplo es por
el campo discodigo. Damos clic en Siguiente.

Visualizamos como se van a observar los campos, debe estar activo el check que oculta
al compo clave, hacemos clic en Siguiente.

Verificamos que este habilitado Eliminación en cascada e integridad referencial, clic en


Finalizar.

Escuela de Tecnología de la Información 46


Capítulo 1: Presentación avanzada usando formularios

Repetimos el procedimiento para el campo de la tabla alumnos, depcodigo.

Luego procedemos a crear el formulario, como se hizo al inicio, seleccionamos la tabla


alumnos, clic en la ficha crear, clic en Formularios y observamos como queda el nuevo
formulario.

Vamos a desarrollar un ejercicio, que me permita crear un Formulario de bienvenida.

Actividad 5: Insertar una


etiqueta e imagen
En la base de datos bdNeptuno
creara el formulario Bienvenida
para que se muestre como la
siguiente ilustración:

Escuela de Tecnología de la Información 47


Microsoft Office Access 2016

Procedimiento
1. Abra el formulario en vista diseño.
2. En el cuadro de herramientas, haga clic en el icono etiqueta y luego haga clic en el
formulario.
3. Escriba IMPORTACION Y EXPORTACION PASA CASA y luego haga clic
fuera del control, pero dentro del formulario.

4. Clic a la herramienta imagen e insertar la imagen que se encuentra en la


carpeta cap1.
5. Debe seleccionar la etiqueta y modificar su fuente, tamaño y demás características.
6. Muestre la vista formulario, guarde y cierre.

Actividad 6: Editar los controles de un formulario


En la base de datos bdNeptuno, usted creará un formulario con la tabla empleando el
asistente para formularios y lo modificará que se vea como se muestra en la siguiente
ilustración:

Aspecto final del formulario

Escuela de Tecnología de la Información 48


Capítulo 1: Presentación avanzada usando formularios
Procedimiento
1. Emplee el asistente para formularios a fin de crear uno que tome los campos de la
tabla indicada que se muestran en la imagen.
2. Cuando el asistente le muestre el objeto terminado, cambie a la vista diseño y
seleccione los campos; hágalos las modificaciones como se muestra, moviéndoles o
cambiándoles de lugar.
3. El campo Foto, se tiene que modificar la propiedad Modo de cambiar el tamaño =
Extender.
4. Active la vista formulario y guarde el formulario con el nombre predeterminado y
ciérrelo.

Actividad 6: Agregar etiquetas, cajas de texto y fichas


En la base de datos bdNeptuno, usted creará un nuevo formulario de modo que contenga
un control de fichas tal como indica la siguiente ilustración:

Formulario con fichas

Procedimiento
1. Clic a la ficha Crear, seleccione Diseño de Formulario.

2. Verifique que este seleccionado la Ficha Diseño, de Herramientas de diseño de


Formulario, clic a la herramienta, control de pestaña y suéltelo dentro
del Formulario.

Escuela de Tecnología de la Información 49


Microsoft Office Access 2016

3. Clic al comando Agregar campos existentes que se encuentra


dentro del grupo de comandos Herramientas de la Ficha Diseño.
4. Seleccione la ficha de la pagina1, en el Formulario creado y agrege los campos:
IdEmpleado, Apellidos, Nombre, Tratamiento, Cargo y Dirección.

Cambiar el ancho y alto del formulario


5. Una vez colocados, es necesario ordenarlos, para ello seleccionamos solo las etiquetas
de los campos, dando clic con tecla shift presionada y en ficha organizar de las
herramientas de diseño de Formulario, damos clic a a Alinear. Tal como se mesutra en
la grafica.

Escuela de Tecnología de la Información 50


Capítulo 1: Presentación avanzada usando formularios

6. Para los controles de la segunda ficha:


a. Haga clic en la segunda lengüeta del control ficha del formulario.
b. Muestre la lista de campos del formulario haciendo clic en el menú Ver y luego
en el comando Lista de campos.
c. Arrastre el campo traFechaNac dentro de la ficha.
d. En el cuadro de herramientas, haga clic en el botón Cuadro de texto y luego haga
clic dentro de la ficha, debajo del campo que acaba de crear.
e. Cambie la propiedad Título de la etiqueta, para que en ella se lea Edad.
f. Cambie la propiedad Origen del control –ubicada en la segunda ficha de la
ventana de propiedades-a se lea:

g. Repita los pasos del c al f para la fecha de contratación y el tiempo de servicio.


h. Active la vista formulario, guarde el formulario con el nombre predeterminado
y ciérrelo.

Escuela de Tecnología de la Información 51


Microsoft Office Access 2016

Formularios continuos
Los formularios continuos o formulario de varios elementos permiten que sean vistos los
detalles de más de un registro simultáneamente, tal como se aprecia en la siguiente ilustración:

Formulario continuo para los productos

Aunque la forma más sencilla de presentar un formulario en modo de formulario continuo es a


través del asistente para formularios (en la distribución simplemente se selecciona la que está
identificada como Tabular), también puede activar esta vista desde la propiedad Vista
predeterminada que se encuentra en la ficha Formato.

Actividad 8: Crear un formulario continuo


En la base de datos bdNeptuno, usted creará el formulario que se muestra en la ilustración
anterior.
Procedimiento
1. Vamos a crear el formulario usando el asistente.

a. Haga clic en el enlace Crear un formulario


utilizando el asistente en la sección
Formularios de la ventana de la base de datos.

Escuela de Tecnología de la Información 52


Capítulo 1: Presentación avanzada usando formularios

b. Primer paso: tabla y campos de origen del formulario. Indique al asistente que
empleará la tabla Producto y, en ella, los campos NombreProducto,
CantidadPorUnidad, PrecioUnidad y IdCategoria, Clic en el botón siguiente.

c. Segundo paso: Seleccione la distribución Tabular. Clic en Siguiente

d. Cuarto paso: Indique que el título del formulario será Múltiples Productos,
seleccione la opción Modificar el diseño del Formulario, clic en Finalizar

Escuela de Tecnología de la Información 53


Microsoft Office Access 2016

2. Vamos a modificar el proceso en la vista diseño.

a. Para la sección detalle:


i. Cambie el ancho de las cajas de texto y cambie su posición
b. Para la sección del encabezado:
i. Modifique las etiquetas. Algunas necesitan que cambie su texto, otras
su alineación, otras su posición y todas que las coloque en negrita.

c. Para la sección del pie:


i. Amplíe la sección arrastrando el Ampliar el pie
puntero desde la parte inferior de la
banda.
ii. Haga clic en el botón Cuadro de texto
del cuadro de herramientas y luego
haga clic en la sección Pie del
formulario.
iii. Modifique el texto de la etiqueta para que diga “Productos
mostrados.”
iv. Cambie la propiedad Origen de datos del cuadro de texto que acaba
de crear para que sea: =Cuenta(IdCategoria)

Escuela de Tecnología de la Información 54


Capítulo 1: Presentación avanzada usando formularios

3. Modificamos las propiedades del formulario


a. Establezca la propiedad Barras de desplazamiento al valor Sólo vertical
b. La propiedad Botones de Navegacion debe estar configurada en No.
c. Emergente y modal debe estar configurada en Sí.

4. Muestre la vista formulario, guárdelo con el nombre que se le sugiere (Múltiples


productos) y ciérrelo.

Encabezado y Pie de formulario


Los formularios presentan generalmente tres secciones: encabezado, detalle y pie. Se puede
mostrar y ocultar la primera y la tercera sección a través del comando Encabezado o Pie del
formulario.
Es común emplear estas secciones para colocar controles de búsqueda; en el siguiente
formulario el cuadro combinado se emplea para buscar el producto cuyos detalles serán
mostrados.

Escuela de Tecnología de la Información 55


Microsoft Office Access 2016

Formulario con cuadro combinado de búsqueda

Es importante conocer completamente la diferencia entre el cuadro combinado del encabezado


y los dos de la sección de detalles: el primero permite buscar un registro para mostrar o
modificar sus detalles, los otros dos ayudan al usuario a elegir la unidad de medida del producto
y su categoría.

Actividad 9: Cuadro combinado en el encabezado


En la base de datos bdNeptuno usted creará el formulario del ejemplo Formulario con
cuadro combinado de búsqueda.
Procedimiento
1. Para crear el formulario:
a. Clic a la ficha Crear.
b. Haga clic sobre la tabla Producto y luego haga clic en el botón Formulario.

Escuela de Tecnología de la Información 56


Capítulo 1: Presentación avanzada usando formularios

De lo mostrado eliminar, el encabezado la etiqueta Produtos y el subformulario


de la tabla detalles de los pedidos
2. Para crear el encabezado del formulario:
a. Verifiquemos que el Encabezado este activo.

3. Vamos a colocar el cuadro combinado en el encabezado:


a. Asegúrese de que el asistente para controles esté activado y luego haga clic sobre
el botón Cuadro combinado.

b. Haga clic sobre el encabezado. En este momento el asistente debe haber


empezado a guiarlo por el proceso de configuración del control:
 Indique que desea que desea buscar un registro en el formulario según
el valor que seleccione en el cuadro y pulse Siguiente.

Escuela de Tecnología de la Información 57


Microsoft Office Access 2016

 Haga doble clic sobre el campo NombreProducto para indicar que ese
campo es el que empleará como origen del control y pulse Siguiente.

 Usted verá la lista de los nombres de productos que contiene la tabla.


Haga clic en el botón Siguiente.

 Escriba Seleccione un producto como etiqueta del cuadro combinado


y haga clic en Finalizar
 Modificamos la propiedad Titulo, escribimos Elección de un producto.

Escuela de Tecnología de la Información 58


Capítulo 1: Presentación avanzada usando formularios

Subformularios
Los subformularios son formularios que van dentro de otros formularios y son empleados
comúnmente para mostrar registros de tablas que tienen alguna relación con el inicio de datos
del formulario; por ejemplo, puede mostrarse los pedidos que se han hecho sobre el producto
que se esté mostrando en el formulario de productos, o los recibos que corresponden al cliente
que se esté viendo en el formulario de los clientes.
El siguiente gráfico muestra un formulario que presenta en el formulario padre a las categorías
y, como un subformulario, a los productos que pertenecen a aquella categoría que se muestra
actualmente.

Formulario y subformulario
Para crear un subformulario:
1. Muestre el formulario en vista diseño.
Si es necesario, cambie la propiedad Vista predeterminada del formulario al valor Un único
formulario (no es posible colocar un subformulario en formularios continuos)
2. Si es necesario, modifique el tamaño de la sección Detalle de modo que contenga el
subformulario que creará.
3. Debemos asegurarnos de que el Asistente para controles
esté activado en el cuadro de controles. Subformulario/Subinforme
4. Haga clic en el botón Subformulario/Subinforme
5. Haga clic en la sección Detalle, el Asistente para
Subformularios se iniciará.

Escuela de Tecnología de la Información 59


Microsoft Office Access 2016

a. Indique si empleará una tabla como origen del subformulario o un formulario


que se pueda tomar como tal y haga clic en el botón Siguiente.
b. Si decidió emplear una tabla o consulta deberá seleccionar cuál es e indicar qué
campos utilizará; haga clic en el botón Siguiente. Deberá existir un campo del
formulario padre que tenga valores relacionados con un campo del formulario
hijo.
c. El siguiente paso es de vital importancia para el proceso: usted deberá indicar la
relación que existe entre el formulario padre y el formulario hijo. Como se
mencionó previamente, debe haber un campo del formulario padre que tenga
valores relacionados con un campo del formulario hijo.
d. Escriba el nombre del subformulario y haga clic en el botón Finalizar.
Es importante saber que cuando se crea un subformulario a partir de una tabla o consulta
se genera un formulario nuevo.
No se debe cambiar el nombre de un subformulario después de haberlo colocado en un
formulario padre pues, si lo hace, este formulario no funcionará Correctamente.

Actividad 10: Subformulario creado manualmente


En la base de datos bdNeptuno, crearemos el subformulario que se muestra en la imagen
Formulario y subformulario.
Procedimiento
1. Preparación del formulario padre:
a. Empleando el asistente Crear un formulario que presente el Id de la categoría,
su nombre y descripción.
b. Muestre la vista diseño para colocar en negrita las etiquetas y ampliar la sección
Detalle., tal como se muestra en la gráfica.

2. Para colocar el subformulario:

Escuela de Tecnología de la Información 60


Capítulo 1: Presentación avanzada usando formularios

a. Asegúrese de que el Asistente para controles esté activado en el cuadro de


controles.
b. Haga clic en el botón Subformulario/Subinforme
c. Haga clic en la sección Detalle, el Asistente para Subformulario/
Subformularios se iniciará. Subinforme

d. Indique que empleará el formulario Múltiples productos


como origen del subformulario y haga clic en el botón
Siguiente.
e. Para definir la relación entre el formulario padre y el hijo:
 Haga clic en el botón de opción Definir la mía propia.
 En los primeros cuadros combinados (de la izquierda y derecha) elija el
elemento catId
 Haga clic en el botón Siguiente.

f. Escriba el nombre del subformulario y haga clic en el botón Finalizar.

Utilizar el asistente para Subformularios/Subinformes Campos vinculados


entre formulario padre y formulario hijo
Emplear el asistente para formularios con dos tablas o consultas puede llevarlo a crear:
 Un formulario convencional que tenga como origen de datos una instrucción interna
(alojada en la propiedad Origen del registro del formulario) que toma campos de ambas
tablas. Por ejemplo, tomando el caso de la tabla Categoría y la tabla Producto, usted
puede obtener el siguiente formulario:

Escuela de Tecnología de la Información 61


Microsoft Office Access 2016

Formulario que muestra un registro

 Un formulario que “llama” a otro (a través de un botón de comando) para mostrar los
detalles de los registros relacionados.

Un formulario que llama a otro


 Un formulario que contenga un subformulario.

Escuela de Tecnología de la Información 62


Capítulo 1: Presentación avanzada usando formularios

Formulario con subformulario


La presentación final que tengan los formularios depende de las indicaciones que se den en el
segundo paso del asistente, de acuerdo con las siguientes indicaciones:
 Para obtener un formulario convencional elija que desea crear el formulario a partir de
la tabla hija en la relación (en el ejemplo presentado la tabla hija es Producto)

Selección para un formulario convencional

Escuela de Tecnología de la Información 63


Microsoft Office Access 2016

 Para crear un formulario que llame a otro indique que el formulario se creará a partir de
la tabla madre de la relación y que desea obtener formularios vinculados.

Selección para crear formularios vinculados


 Para crear un formulario con un subformulario active el botón Formulario con
subformulario después de indicar que desea ver los datos a través de la tabla madre.

Selección para crear un formulario con un subformulario

Escuela de Tecnología de la Información 64


Capítulo 1: Presentación avanzada usando formularios
Actividad 11: Subformulario empleando el asistente para formularios
En la base de datos bdNeptuno, crearemos el formulario que se muestra en la ilustración

Formulario con subformulario.


Procedimiento
1. Inicie el asistente para formularios haciendo clic en
el enlace Asistente para formulario.

2. En el primer paso, seleccione los campos IdCategoria, NombreCategoria y


Descripciion de la tabla Categoría y los campos NombreProducto,
CantidadporUnidad y PrecioUnidad de la tabla Producto. Damos clic en siguiente.

Escuela de Tecnología de la Información 65


Microsoft Office Access 2016

3. En el segundo paso, indique que desea ver los datos por categoría y que debe ser
creado un formulario con un subformulario tal y como se presenta en la ilustración
Selección para crear un formulario con un subformulario

4. Elegimos la opción Hoja de datos y clic en Siguiente

Escuela de Tecnología de la Información 66


Capítulo 1: Presentación avanzada usando formularios

5. Haga clic en el botón Siguiente hasta llegar al último paso del asistente, en él,
indique que el título del formulario será Categorías y productos III y que el
subformulario se llamará Productos III.

6. Haga clic en el botón Finalizar, vea el resultado en la vista Formulario, ingrese


luego a la vista Diseño para modificar e Formulario.

Escuela de Tecnología de la Información 67


Microsoft Office Access 2016
Modificar el diseño del subformulario

Para modificar un subformulario:


1. Muestre el formulario en vista diseño.
2. Haga clic dentro de la sección detalle, dentro del subformulario y haga los cambios
que considere pertinentes como si estuviera en la vista diseño del formulario del
subformulario.
3. Modifique las propiedades del Formulario: Emergente y Modal en Sí.

Escuela de Tecnología de la Información 68


Capítulo 1: Presentación avanzada usando formularios

Preguntas de Repaso

1. ¿Qué propiedad se debe modificar para que se muestre un texto en la barra de título de
un formulario?
2. ¿Qué se debe hacer para tener cuadros combinados en la vista hoja de datos de las tablas
para aquellos campos que pertenecen al lado “hijo” de una relación entre dos tablas?
3. ¿Qué ventaja proporciona crear cuadros combinados de búsqueda en la vista hoja de
datos de las tablas?
4. ¿Cuál es el procedimiento para crear un cuadro de texto calculado, dentro de un
formulario?
5. En la siguiente imagen, señalé los siguientes elementos: sección encabezado, sección
de detalle, sección pie del formulario, separadores de registros, selector de registro,
botones de desplazamiento, barra de desplazamiento vertical. Es importante señalarle
que el texto “cantidad de distritos: 49”, es un campo calculado

6. ¿Qué propiedades existen para cambiar el formato de un formulario?


7. ¿Qué es el orden de tabulación y cómo se modifica?
8. ¿Que se tiene que hacer para activar el encabezado y pie de página de un formulario?
9. ¿Cómo se amplía el alto de la sección Detalle de un formulario?
10. ¿Por qué debe haber un campo común entre un subformulario y su formulario padre?

Escuela de Tecnología de la Información 69


Microsoft Office Access 2016

Ejercicios Casos Propuestos


Actividad propuesta 1
Abra la base de datos BdSenati en la tabla alumnos, vamos a proceder a crear el ejemplo tal
como se muestra en ella:
a. Haga que la vista hoja de datos se muestre con cuadros combinados para los campos de
la tabla alumnos.

b. Crear dentro de un formulario, otro subformulario que llame a otro formulario


previamente creado, como se muestra en el ejemplo

Escuela de Tecnología de la Información 70


Capítulo 1: Presentación avanzada usando formularios

c. El mismo procedimiento del ejempo anterior con la diferencia que cuando llamas a un
subformulario, lo haces mediante una tabla.

Vista de alumnos con sus notas, el curso y el profesor.

Escuela de Tecnología de la Información 71


Microsoft Office Access 2016

Actividad propuesta 2
Abra la base de datos Biblioteca y en ella:
1. Formulario de Bienvenida

2. Cree los formularios vinculados que se muestran a continuación:

Escuela de Tecnología de la Información 72


Capítulo 1: Presentación avanzada usando formularios

3. Cree el siguiente formulario:

Escuela de Tecnología de la Información 73


Capítulo

Utilidades
Objetivos Especificos:

Establecer Seguridad en una Base de Datos


Compactar y reparar una Bd.

Introducción:
Access te proporciona diferentes mecanismos para poder brindar
seguridad a la base de datos y además proporciona herramientas
para poder reparar y compactarla una bd.
Microsoft Office Access 2016

Formas de abrir una base de datos

Abrir una base de datos de Access desde el Explorador de Windows


En el Explorador de Windows, vaya a la unidad o carpeta que contiene el archivo de base de
datos de Access que desea abrir y haga doble clic en la base de datos.
Se inicia Access y se abre la base de datos. Es el procedimiento mas empeado en el
proceso de apertura de una base de datos con Access, en cualquier versión.

La ventana que nos muestra es la siguiente, donde ya Access nos pide que habilitemos
el modo de seguridad por defecto al abrir un archivo de Access

76 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

Abrir una base de datos en Access


Si ya se está ejecutando Access, utilice el procedimiento siguiente para abrir la base de datos:

1. Haga clic en el Botón Archivo y, a continuación, haga clic en Abrir.

2. Selecccionar el archivo que se muestra de la lista o


clic en el botón Examinar

3. En la lista de carpetas, vaya a la carpeta que contiene la base de datos.


4. Cuando encuentre la base de datos, debe seguir uno de estos procedimientos:
 Haga doble clic en la base de datos para abrirla en el modo predeterminado
especificado en el cuadro de diálogo Opciones de Access o en el modo
establecido por una directiva administrativa.
 Haga clic en Abrir para abrir la base de datos para acceso compartido en un
entorno de multiusuario, de manera que cualquier usuario pueda leer y escribir
en la base de datos.

Escuela de Tecnología de la Información 77


Microsoft Office Access 2016

 Seleccionando la opción, Abrir en modo sólo lectura abre la base de datos en


acceso de sólo lectura y, de esta forma, poder visualizarla, pero no editarla. Otros
usuarios pueden seguir leyendo y escribiendo en la base de datos.
 Seleccionando la opción, Abrir en modo exclusivo abre la base de datos en
acceso exclusivo. Cuando tiene una base de datos abierta en acceso exclusivo,
cualquiera que intente abrir la base de datos recibe el mensaje "el archivo ya está
en uso".
 Seleccionando la opción Abrir en modo exclusivo de sólo lectura para abrir la
base de datos en acceso exclusivo. Otros usuarios pueden seguir abriendo la base
de datos, pero estarán limitados al modo de sólo lectura.

Si no puede encontrar la base de datos que desea abrir

1. En el cuadro de diálogo Archivo\Abrir, se muestra la vista Backstage, en esta vista


Access te la base de datos organizadas por fecha (Hoy, ayer, semana pasada, mas
antiguas), si no aparecieran damos clic en Equipo\Examinar, donde procedemos a
buscar la data que deseamos abrir.

Cuando abrimos una base con el modo de Apertura Solo lectura y luego abrimos un
objeto que la compone (tabla, consulta, formulario, etc), Access desactiva todas las
opciones que permiten hacer cambios en el diseño. Por ejemplo, si abrimos una tabla
de esta manera, se desactivarán todas las opciones de la ficha Crear.

78 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

2. Si la data no se encuentra, damos clic en el cuadro de búsqueda, tenemos que tener en


consideración la extensión de la base de datos a buscar.

3. Especifique sus criterios de búsqueda y presione ENTRAR para buscar la base de datos.
Si encuentra la base de datos, haga doble clic en ella en el cuadro de diálogo de
búsqueda para abrirla.
4. Como la búsqueda se inició en el cuadro de diálogo Abrir, debe hacer clic en Cancelar
de ese cuadro de diálogo antes de abrir la base de datos.
Recomendaciones:
Para abrir una de las últimas bases de datos que se hayan abiertas, haga clic en el nombre de
archivo en la lista Abrir base de datos reciente en la página Introducción a Microsoft Office
Access. Access abrirá la base de datos con la misma configuración de opciones que tenía cuando
se abrió por última vez. Si no se muestra la lista de archivos recientemente utilizados:
1. Haga clic en el botón y, a continuación, haga clic en Opciones de Access.
2. En el cuadro de diálogo Opciones de Access, haga clic en Configuración del cliente.

Escuela de Tecnología de la Información 79


Microsoft Office Access 2016

3. En Mostrar, escriba un número en el cuadro Mostrar este número de bases de datos


recientes (el máximo es cincuenta).

Si está abriendo una base de datos utilizando el comando Abrir, puede ver una lista de
accesos directos a bases de datos que ha abierto anteriormente haciendo clic en
Documentos recientes en el cuadro de diálogo Abrir.

Abrir varias bases de datos al mismo tiempo


Es factible que se pueda trabajar con varias bd de Access, ya que, en una única ventana de
Access, puede tener sólo una base de datos abierta a la vez. Es decir, no puede iniciar Access,
abrir una base de datos y después abrir otra base de datos sin cerrar la primera. Sin embargo,
puede ejecutar varias ventanas de Access al mismo tiempo, cada una de ellas con una base de
datos abierta. Cada vez que inicia Access, abre una nueva instancia de la aplicación. Por
ejemplo, para tener dos bases de datos de Access abiertas al mismo tiempo, inicie Access y abra
la primera base de datos y, a continuación, inicie una nueva instancia de Access y abra la
segunda base de datos.
Para disponer más de una ventana de Access en paralelo
1. Para aquellos programas que no desea organizar en mosaico, haga clic en el botón
Minimizar de la esquina superior derecha de la ventana.
2. Haga clic con el botón secundario del mouse en la barra de tareas de Windows y, a
continuación, haga clic en Mostrar ventanas en paralelo.
Después de haber dispuesto las ventanas en mosaico, puede copiar y pegar datos más
fácilmente, así como arrastrar y colocar objetos de base de datos en las bases de datos de Access.

80 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

Seguridad
Office Access 2016 proporciona un modelo de seguridad mejorada que ayuda a simplificar el
proceso de aplicar seguridad a una base de datos.
A continuación, aparece una lista de las funciones de seguridad de Office Access 2016:
 Access proporciona una advertencia de seguridad al momento de abrir una bd, si
damos clic en Habilitar contenido, veremos la bd con todos los objetos.que
componen la base de datos.

 Centro de confianza. El Centro de confianza es un cuadro de diálogo que


proporciona una sola o varias ubicaciones para definir y cambiar la configuración
de seguridad de Access.

Escuela de Tecnología de la Información 81


Microsoft Office Access 2016

 Si no sabe con seguridad si un certificado es de confianza, el artículo Cómo saber


si una firma digital es de confianza proporciona información general acerca de la
comprobación de las fechas y otros elementos de un certificado para saber si es
válido o no.
 Nuevo proceso de proteger documentos firmando y distribuir los archivos creados
con el formato de archivo de Office Access 2016. En versiones anteriores de Access,
se usaba el Editor de Visual Basic para aplicar un certificado de seguridad a los
componentes individuales de las bases de datos. En Office Access 2016, se
empaqueta la base de datos y, a continuación, se firma y se distribuye el paquete. Si
se extrae una base de datos desde un paquete firmado hasta una ubicación de
confianza, la base de datos se ejecuta sin que se muestre la barra de mensajes. Si se
extrae una base de datos desde un paquete firmado hasta una ubicación que no es
de confianza, pero se confía en el
certificado del paquete y la firma es
válida, no es necesario tomar
ninguna decisión en materia de
confianza. Cuando se empaqueta y
se firma una base de datos que no es
de confianza o que contiene una
firma digital no válida, es preciso
usar la barra de mensajes para
confiar en la base de datos cada vez
que se abre, a menos que se coloque
la base de datos en una ubicación de
confianza.
 Seguridad para cifrar las bases de datos con formato de archivo de Office Access
2016 mediante contraseña. Al cifrarse una base de datos, se codifican los datos de
las tablas y se ayuda a evitar que usuarios intrusos puedan abrir la base de datos.

 Nueva subclase de acciones de macro que se ejecutan cuando se deshabilita una


base de datos. Estas macros más seguras contienen asimismo funciones de

82 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

tratamiento de errores. Además, las macros (incluso las que contienen acciones que
Access deshabilita) se pueden incrustar directamente en cualquier propiedad de
formulario, informe o control que funcione lógicamente con un módulo de código
de VBA o una macro de una versión anterior de Access.

 Si Ud. abre la base de datos desde una ubicación de confianza, se ejecutan todos
los componentes sin que sea necesario tomar ninguna decisión en materia de
confianza.
 Cuando se empaqueta, se firma y se pueden guardar como archivos de paquete y
agregarlos a su catálogo corporativo o a la Tienda Office. En dicha Tienda Office,
puede distribuir la aplicación de forma gratuita o puede cobrar un determinado
importe para ganar un dinero extra.
 Si se firma y se implementa una base de datos que no es de confianza en una
ubicación que no es de confianza, el Centro de confianza deshabilita la base de
datos de forma predeterminada y se debe optar por habilitar la base de datos cada
vez que se abre.

Cifrar una Base de Datos mediante contraseña


Cifrar es el procedimiento a poner contraseña a un archivo, es por eso que se cifra una
base de datos de Microsoft Office Access 2016 cuando se necesita ocultar datos e impedir
que usuarios no deseados tengan aceeso al archivo.

Actividad 1: Cifrar una Base de Datos mediante contraseña


1. Procedimiento para abrir una base de datos que desee cifrar en modo Exclusivo,
puede utilizar cualquier base de datos la que Ud. Desee..
a. Haga clic en el Archivo y, a continuación, haga
clic en Abrir.

b. Luego clic al botón:

c. Haga clic en la flecha situada junto al botón Abrir: Seleccionamos Abrir


en modo Exclusivo

Escuela de Tecnología de la Información 83


Microsoft Office Access 2016

2. Hacemos clic en la ficha Archivo, luego clic en Cifrar con contraseña.

Aparece el cuadro de diálogo Establecer contraseña para la base de datos.

3. Escriba la contraseña en el cuadro Contraseña, escríbala de nuevo en el cuadro


Confirmar y, a continuación, haga clic en Aceptar.

Es importante saber que la contraseña no la puede olvidar. Si la olvida, Microsoft no


puede recuperarla. Guarde las contraseñas que anote en un lugar seguro, lejos de la
información que ayudan a proteger.

84 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

Abrir una bd cifrada


1. Abra la base de datos cifrada de la misma manera que se abre cualquier otra base de
datos.
Aparece el cuadro de diálogo Solicitud de contraseña.

2. Escriba la contraseña en el cuadro Escriba la contraseña de la base de datos y, a


continuación, haga clic en Aceptar.

Descifrar contraseña de una Base de Datos


Cuando se quita una contraseña de una base de datos, se puede restaurarla en cualquier
momento (o usar otra contraseña) repitiendo los pasos descritos en la sección Cifrar una base
de datos mediante una contraseña, que aparece anteriormente en este artículo.

Actividad 2: Anular contraseña de una Base de Datos


1. Para realizar este ejemplo, necesita cualquier base de datos
2. Haga clic en la ficha Archivo y a continuación, haga clic en Abrir.
3. Clic en el botón examinar, seleccione el archivo deseado
4. Haga clic en la flecha situada junto al botón Abrir
y, a continuación, haga clic en Abrir en modo
exclusivo. En la siguiente ilustración se refleja el
menú.

5. Te va a solicitar la contraseña con la que fue


almacenada el archivo, debes de ingresar la
contraseña.

6. Clic En la ficha Archivo, luego haga clic en Descifrar base de datos.

Escuela de Tecnología de la Información 85


Microsoft Office Access 2016

Aparece el cuadro de diálogo Anular la contraseña establecida para la base de datos.

7. Escriba la contraseña en el cuadro Contraseña y, a continuación, haga clic en


Aceptar.

Uso del centro de confianza


Sabemos que Access esta configurado de manera predeterminada para bloquear las consultas
de acción de una base de datos en Access, la finalidad es que no se puedan abrir códigos
peligrosos o dañiños, es por eso, que al abrir una base de datos de modo inseguro aparece esta
ventanita con el mensaje.

86 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

Actividad 3: Agregar un sitio de confianza


1. Tiene que tener abierto un archivo de base de datos
2. Haga clic en la ficha Archivo y, a continuación, en Opciones
3. Haga clic en Centro de confianza y, a continuación, en Configuración del Centro
de confianza.

4. De la ventana que se muestra clic ubicaciones de confianza y Luego en agregar


nueva ubicación.

Escuela de Tecnología de la Información 87


Microsoft Office Access 2016

5. En la ventana que se muestra clic en Examinar, buscar la Carpeta deseada, clic en


Aceptar

6. Para finalizar damos clic en Aceptar, observamos que se agregó la nueva dirección
de confianza.

7. Aceptamos para terminar.

88 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

Convertir a otras versiones


Las bases de datos de Access 2016 se guardan con la extensión ACCDB, esta versión dura
desde la versión de Access 2007, mientras que las versiones anteriores, 2000-2003, poseen la
extensión MDB. Las versiones últimas programa pueden abrir sin inconvenientes archivos
guardados en versiones anteriores, pero esto no es posible a la inversa. Es decir, una base de
datos guardada en la versión 2016, abrir en un Pc. Con una versión mas antigua a la trabajada,
para ella se abría que guardar la bd, en la versión deseada.
El procedimiento para guardar en una versión anterior es:
a) Abrir base de datos, clic en la ficha Archivo. Guardar como

b) Selecciona la versión que deseas guardar y clic en el botón Guardar Como


c) Te muestra el cuadro de dialogo de guardar Como

d) Clic en Guardar

Escuela de Tecnología de la Información 89


Microsoft Office Access 2016

Existe una forma visual de darse cuenta la versión del Archivo que va a Abrir

Integración con Microsoft Windows SharePoint Services 3.0 y Microsoft Office Outlook
2016
En el pasado, los archivos Access se habrían bloqueado en Windows SharePoint Services 3.0 y
Office Outlook 2016 porque se podría incluir código no seguro en una base de datos de Access.
Office Access 2016 implementa un nuevo formato que permite que el código se compruebe
como seguro o se deshabilite. De esta forma la integración de las bases de datos de Access con
Windows SharePoint Services 3.0 y Office Outlook 2016 es mucho más completa, y también
permiten programas antivirus para inspeccionar con más facilidad los archivos de base de datos
de Access.

Trabajar con los datos de SharePoint sin estar conectado


Puede desconectar las listas de SharePoint con un solo clic mediante Office Access 2016.
Trabaje con los datos en Access y, después, sincronice los cambios, o bien, vuelva a conectarse
más adelante con el sitio de SharePoint.

Archivos ACCDE
Un archivo .accde es la versión de Office Access 2016 del archivo .mde en versiones anteriores
de Access. Es una versión bloqueada del archivo .accdb original. Si el archivo .accdb contenía
código de VBA, sólo se se podrá visualizar el código compilado en el archivo .accde y por
tanto, el usuario no puede consultar ni modificar el código de VBA. Además, los usuarios del
archivo .accde no tienen permiso para poder realizar modificaciones de diseño en los
formularios o informes. Puede crear archivos .accde a partir de archivos .accdb mediante el
siguiente procedimiento:

Crear un archivo ACCDE en Office Access 2016


1. En Office Access 2016, abra la base de datos en modo exclusivo del archivo que desea
guardar como un archivo .accde.
2. En la ficha Archivo, clic en el comando Guardar Como, haga clic en Crear ACCDE.

90 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

3. En el cuadro de diálogo Guardar como, desplácese a la carpeta en la que desea guardar


el archivo, especifique un nombre para el archivo en el cuadro Nombre de archivo y,
a continuación, haga clic en Guardar.

Convertir una base de datos al formato de archivos de Access 2016


Puede convertir bases de datos de versiones anteriores de Access al formato de archivo de
Microsoft Office Access 2016, abrir bases de datos de versiones anteriores de Access sin
convertirlas y cambiar el formato de archivo predeterminado para las nuevas bases de datos que
cree.
Convertir una base de datos de Access a un formato de archivo diferente.

1. Si el archivo que desea convertir no está abierto, haga clic en el Archivo y haga clic en
Abrir. Busque el archivo y, a continuación, haga doble clic en él para abrirlo.
Si se muestra el cuadro de diálogo Mejoras de base de datos y se le solicita que
actualice la base de datos, significa que el formato de archivo de la base de datos que
está abriendo es anterior a Access 2000. Para continuar, haga caso omiso de la sección
Abrir archivos de versiones anteriores de Access en Office Access 2016.
2. Haga clic en el Archivo, seleccione Guardar como y, a continuación, en Guardar
base de datos en otro formato, haga clic en el formato al que desee convertir el archivo.

Escuela de Tecnología de la Información 91


Microsoft Office Access 2016

3. En el cuadro de diálogo Guardar como, escriba un nombre de archivo para la copia de


la base de datos en el cuadro Nombre de archivo y, a continuación, haga clic en
Guardar.
Access crea una copia de la base de datos y después la abre. Access cierra automáticamente
la base de datos original.
Si tiene una base de datos de Office Access 2016 (.accdb) que desea guardar en un formato
de archivo anterior de Access (.mdb), podrá hacerlo siempre que la base de datos .accdb no
contenga campos de búsqueda multivalor, datos sin conexión o datos adjuntos. Si intenta
convertir una base de datos .accdb que contenga alguno de estos elementos a un formato de
archivo .mdb, Access mostrará un mensaje de error.

Copia de Seguridad de base de datos

Podemos crear una copia de seguridad de


Access
Tenemos el archivo abierto.
 Clic en Archivo, Guardar Como
 Clic en el botón Realizar una copia de
seguridad de la base de datos, buscar la
carpeta deseada
 Clic en Guardar

92 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

Mantenimiento de una base de datos


Para garantizar un rendimiento óptimo de una base de datos, se recomienda relizarle un
mantenimiento. Esto quiere decir, que debemos aplicarle ciertos procesos que garanticen la
funcionalidad de la base de datos.

Analizar las tablas


Microsoft Access tiene una interesante herramienta que nos permite hacer un análisis el
contenido de una tabla, la finalidad es encontrar datos que se encuentran duplicados. Luego,
distribuirá los datos repetidos en diferentes tablas, relacionándolas y evitando, de esta manera,
la redundancia, ya que ocupan espacio innecesario en la unidad de almacenamiento. Por lo
tanto, esta herramienta con un diseño mejorado de la base de datos. Hay que tener en cuenta,
que no siempre dará resultados esperados porque el programa no puede adivinar cuándo sí son
necesarios los datos duplicados. Es por eso, antes de aplicarla debemos verificar que no
necesitamos los datos duplicados. Para aplicar la herramienta

Actividad 4: Analizar las tablas de una base de datos


1) Vamos a abrir la tabla: Biblioteca, abrimos la tabla libro, agregamos dos registros
repetidos de la tabla Libro
2) Clic a la ficha herramientas de base de datos.
3) Del grupo Analizar, clic en el comando: Analizar tabla.
4) De la ventana que nos muestra clic en el botón siguiente

5) Damos clic en el botón siguiente

Escuela de Tecnología de la Información 93


Microsoft Office Access 2016

6) Seleccoinamos la tabla que deseamos analizar y clic en siguiente

7) Clic en la opción dejar decidir el asistente y clic en siguiente.

8) El asistente nos muestra el aviso, donde recomienda no dividir la tabla, damos clic
en Aceptar

9) El asistente creará dos tablas en donde dividirá la data duplicada de la no duplicada,


el nombre de las tablas son tabla 1 y tabla2

94 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

10) En la vista se muestra las dos tablas que se crearan relacionadas, como se puede
observar en el ejemplo la relación de es unos a muchos, hay que tener en cuenta
que, si en caso Access no creara la tabla2, nosotros procedemos a crearlo
arrastrando desde la tabla1, hacia afuera.

11) En esta vista muestra loscampos duplicados en un cuadro combinado, damos clic
en siguiente

Escuela de Tecnología de la Información 95


Microsoft Office Access 2016

12) Finaliza como muestra los datos duplicados agrupados

Compactar y reparar una base de datos


Esta otra herramienta que nos presenta Access es la que se encarga de compilar la base de datos
para que ésta ocupe el menor espacio posible y, gracias al reparador, arregla errores, tales como
el cierre inesperado del programa. Antes de ejecutarla, es recomendable conocer el tamaño
actual de la base de datos para compararlo con el resultante después de aplicar el reparador.

Conociendo el tamaño de nuestra base de datos


a) Clic en la ficha Archivo - Información.

b) Clic en Ver y editar propiedades de base de datos:

c) Clic en la ficha General y buscamos el tamaño de la base de datos

A continuación, cerramos el cuadro de propiedades y presionamos Compactar y reparar base


de datos.

96 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

A continuación, automáticamente Access sale de la vista Backstage y no notaremos


ningún cambio, sin embargo, Access habrá arreglado las anomalías (en caso de haberlas)
y reducido el tamaño de la base de datos. Para verificarlo, ingresamos nuevamente a las
propiedades de la base de datos y observamos el tamaño actual.

Hemos comprobado que, a través del reparador de base de datos, Access disminuye el
tamaño de la bd por medio de eliminaciones. Sin embargo, no tendremos pérdida de
información, ya que la reducción se realiza sobre configuraciones de espacios
innecesarios o mal hechas y no sobre la información almacenada. El comando Compactar
y reparar base de datos también se puede usarlo desde la ficha Herramientas de base de
datos.

Compactar y reparar un archivo de Access automáticamente cada vez que se cierre

La compactación no tiene lugar si cierra una base de datos compartida de Access


mientras otro usuario la tiene abierta.

1. Abra la base de datos de Access o proyecto de Access que desee compactar


automáticamente.
2. En el ficha Archivo, haga clic en Opciones de Access.
3. Active la casilla de verificación Compactar al cerrar.

Escuela de Tecnología de la Información 97


Microsoft Office Access 2016

Nota: Para detener el proceso de compactación y reparación, puede presionar la


combinación de teclas CTRL+ENTER o la tecla ESC.

Dividir una base de datos


Cuando la base de datos es demasiado grande y de ella se ocupan varios usuarios, es
recomendable dividirla para que se puedan distribuir los objetos en dos archivos. En uno se
incluirán las tablas y, en otro, el resto de los objetos que componen la base de datos. Esto evita
que la ejecución de los procesos sea lenta debido a la cantidad de elementos activos,
permitiendo trabajarlos por separado. Así, podemos convertir el trabajo en una actividad más
ágil y dinámica.

Actividad 5: Procedimiento para dividir una tabla


1) Crear una carpeta compartida
2) Copiar la base de datos en esa carpeta compartida, abrirlo
desde la nueva ubicación.
3) Clic en la ficha: Herramientas de base de datos, del grupo
Mover datos, clic en Base de datos de Access.
4) Sale la advertencia de seguridad, por que el archivo no se abrió
un centro de confianza, damos clic en Abrir

98 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

5) Clic en dividir base de datos

6) Me pregunta donde deseo guardar el archivo, selecciono la carpeta compartida,


Ud. observara que se crea un nuevo archivo de la siguiente manera: al nombre le
agrega guion de abajo, seguido de la palabra:be

7) Algo así: nombre_be.accdb

Escuela de Tecnología de la Información 99


Microsoft Office Access 2016

8) Del archivo inicial, osea biblioteca.accdb, creo tres copias, y le pongo nombre a
estas copis a fin de identificarlo.

9) Abro el archivo de Carlos, modifico cualquier data, hago lo mismo para el archivo
de Liliana y de Pedro, observaremos que la data se modifica sin ningún problema.

10) Otro detalle es el signo mas que le agrega a sus tablas, tal como se muestra en la
gráfica final de este ejemplo.

100 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

Analizador de Rendimiento

Hay una herramienta de Access que perrmite analizar el rendimiento de la base de datos,
brindando sugerencias para una mejora en su funcionamiento. Es por eso, que el usuario puede
realizar modificaciones para aumentar la eficiencia de la base de datos.

El procedimiento para utilizarla, es dar clic la ficha Herramientas de base de datos, pulsamos
Analizar rendimiento y se mostrará un cuadro de diálogo.

Luego de ingresar en una ficha, tenemos que activar los elementos que queremos realizar el
análisis. Sobre la derecha del cuadro se muestran los botones que explicamos a continuación:

 Seleccionar todo: al dar clic sobre este botón, se seleccionarán todos los elementos de
la ficha actual.
 Anular todo: Al dar clic desactiva los elementos que se encuentren seleccionados
actualmente en la ficha.
 Anular selección: AL dar clic solo desactiva el elemento que se encuentre seleccionado
actualmente.

Una vez que activamos los elementos, presionamos Aceptar y comenzará el análisis de los
objetos seleccionados. Si el analizador no encuentra sugerencias, muestra un mensaje que nos
informa acerca de esto. En caso de hallarlas, nos presenta el cuadro de diálogo Analizador de
rendimiento con una lista.

Escuela de Tecnología de la Información 101


Microsoft Office Access 2016

Al seleccionar un elemento de ella, se muestran las sugerencias en la parte inferior del cuadro
y se activa el botón Optimizar para que se lleve a cabo la sugerencia propuesta. Cuando esto
sucede, el icono de la opción elegida es reemplazado por una tilde que indica que se ha resuelto
el problema

Documentador de base de datos


Otra herramienta de mantenimiento de Access es el documentador, que realiza un detalle de
todos los elementos y características de la base de datos, con el fin de dejarlos listos para ser
impresos o publicados en una página web. Para emplear esta función, vamos a la ficha
Herramientas de base de datos y damos clic en Documentador de base de datos.

Se abrirá el cuadro Documentador, donde debemos seleccionar los elementos que vamos a
documentar.

Después de elegir los elementos que participarán del detalle, presionamos Aceptar. A
continuación, se creará un completo informe que contiene listados los detalles pertinentes.
Veremos que la cantidad de páginas que componen el informe depende de la cantidad de
elementos que seleccionamos previamente. Recordemos que, mediante el botón Página
siguiente, ubicado en la barra inferior, es posible acceder a la próxima página del informe.

102 Escuela de Tecnología de la Información


Capítulo 2: Utilidades

Escuela de Tecnología de la Información 103


Microsoft Office Access 2016

Preguntas de Repaso

1. ¿Que entiendes por abrir una base de datos en modo exclusivo y en que casos se debe
de hacer?

2. Si la base de datos, empieza a tener comportamiento extraño. ¿Qué herramienta de la


base de datos, tendría que utilizar para solucionar el problema, o no tiene solución?

3. ¿Provee Access una herramienta para hacer copias de respaldos de una Base de Datos?

4. ¿Cuales son los beneficios de compactar la base de datos regularmente?


a. La base de datos, se cambia su tamaño
b. Se modifica los campos
c. Cambian las relaciones
d. Ninguna

5. ¿Cuándo se aplica el compactador de base de datos, si sabemos que no elimina los datos
ingresdos, como logra Access disminuir el tamaño de la bd?

6. ¿En que casos es conveniente utilizar el Analizador de Base de datos?

7. ¿Cual es la finalidad de la herramienta documentador?

8. Para poder crear un Archivo ACCDE, la base de datos en que formato tiene que estar
guardado.

9. ¿En versiones anteriores de Access a los Archivos ACCDE, que extensión tenían?

10. ¿Cual es la finalidad de dividir la tabla en Access?


a. Que la base de datos se mas pequeña
b. Que se dividan los archivos para un mejor acceso
c. Poder trabajar con varios usuarios a la vez
d. Ninguna de ellas

104 Escuela de Tecnología de la Información


Capítulo

Trabajando con datos externos


Objetivos Especificos:

Importar y Exportar datos


Preparar y vincular la información con un sitio SharePoint

Introducción:
Access permite poder trabajar con datos externos, que quiere decir
esto que nos da acceso a poder insertar a nuestra base de datos
datos provenientes de otros orígenes a esto le llama importación.
Microsoft Office Access 2016

Importar
Access te permite importar objetos de otra base de datos a la bd que estamos trabajando
rápidamente.
Para ello, sólo tendremos que acudir a la pestaña Datos externos, una vez allí seleccionar una
opción de la sección Importar.

Aquí podemos seleccionar qué tipo de archivo contiene los datos que queremos importar.

Access
Si quieres importar objetos de una base de datos a otra sólo tienes que
hacer clic en el botón Access.
Se abrirá el siguiente cuadro de diálogo:

Para importar un objeto de una base de datos Access, ya sea una tabla, formulario, informe,
macro, etc. solo tendremos que seleccionar la base de datos de origen y pulsar el botón Aceptar.

106 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

En el siguiente cuadro de diálogo sólo tendremos que seleccionar los objetos que queremos
añadir a nuestra base de datos y pulsar el botón Aceptar.

En la imagen verás que el botón Opciones>> se encuentra desactivado, es porque hemos hecho
clic sobre él y entonces han aparecido las opciones en la parte inferior del cuadro. Desde allí
podrás seleccionar cómo y en qué medida quieres importar los objetos.
Como habrás podido observar existen otros métodos de importación de datos, podrás acceder a
ellos haciendo clic en los diferentes botones de la sección Importar.

Excel
Para importar datos desde Excel en una base de datos de Access y utilizar y mantener estos
datos en Access de ahora en adelante. Cuando se importan datos, Access los almacena en una
tabla nueva o existente sin modificarlos. Sólo puede importar una hoja de cálculo cada vez
durante una operación de importación. Para importar datos de varias hojas de cálculo, se repite
la operación de importación para cada hoja de cálculo.
A continuación, se incluyen algunos ejemplos comunes de importación de datos de Excel en
Access:
 Utiliza Excel con mucha frecuencia, pero a partir de ahora desea utilizar Access para
trabajar con estos datos. Desea mover los datos de las hojas de cálculo de Excel a una o
varias bases de datos de Access.
 Su departamento o grupo de trabajo utiliza Access, pero de vez en cuando recibe datos
en formato de Excel que debe combinar con bases de datos de Access. Desea importar
estas hojas de cálculo de Excel a la base de datos cuando las recibe.

Escuela de Tecnología de la Información 107


Microsoft Office Access 2016

 Utiliza Access para administrar los datos, pero los informes semanales que recibe del
resto de los integrantes de su equipo son libros de Excel. Desea agilizar el proceso de
importación para asegurarse de que los datos se importan cada semana a una hora
específica a la base de datos.
Si quieres importar datos de un archivo de Excel solo tienes que hacer clic en el
botón Excel.
Se abrirá el siguiente cuadro de diálogo:

Damos clic al botón Examinar, buscamos el archivo, en este caso seleccionamos el archivo
PcKaxi:

108 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

Para importar una hoja del archivo de Excel, hay que indicarle cual Hoja de Trabajo, o
bien, Mostrar Rangos con Nombres, si previamente se han definido y pulsar el botón Siguiente.

Verificar si la Primera Fila tiene encabezados de Columna.

Escuela de Tecnología de la Información 109


Microsoft Office Access 2016

Si es posible especificar algunas Características sobre las Opciones de Campo, por ejemplo,
el tipo de datos, o si va a ser indexado.

Luego de Presionar Siguiente, tendrás que definir una clave principal para la tabla que estas
importando, en caso contrario Access lo hará por ti.

110 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

Por último, indicarle el nombre que va a tener

Lista de SharePoint
Al importar una lista de SharePoint crea una copia de la data en una base de datos de Access.
Durante la operación de importación, puede especificar las listas que desea copiar y, para
cada lista seleccionada, puede indicar si desea importar toda la lista o sólo una vista
específica.
La tarea de importación procede a crear una tabla en Access, y copia las columnas y los
elementos de la lista de origen (o de la vista) en la tabla en forma de campos y registros.
Al terminar la operación de importación, puede elegir guardar la información de la operación
de importación como una especificación. Una especificación de importación ayuda a repetir
la operación de importación en el futuro sin tener que examinar el Asistente para importación
cada vez. Esto lo puede hacer el guardar la operación de importación siempre que ustede
repita estos procedimietos.

Espacios comunes para importar una lista a Access


 En general, una lista de SharePoint se importa a una base de datos de Access por
estos motivos:
 Si ya no necesita la lista en el sitio de SharePoint, puede mover una lista de forma
permanente, como la lista Contactos, a una base de datos de Access. Puede importar
la lista a Access y eliminarla del sitio de SharePoint.
 Su departamento o grupo de trabajo utiliza Access, pero utiliza ocasionalmente una
lista de SharePoint para obtener datos adicionales que se deben combinar en una de
sus bases de datos.

Escuela de Tecnología de la Información 111


Microsoft Office Access 2016

Prepararse para la operación de importación


1. Busque el sitio de SharePoint que contiene las listas que desea copiar y anote la
dirección del sitio.
Una dirección válida de un sitio empieza por http:// seguido del nombre del servidor
y finaliza con la ruta al sitio específico en el servidor.
2. Identifique las listas que desea copiar a la base de datos y decida si desea toda la lista
o sólo una vista determinada. Puede importar varias listas en una única operación de
importación, pero puede importar sólo una vista de cada lista. Si es necesario, cree
una vista que contenga sólo las columnas y los elementos que le interesen.
3. Revise las columnas en la lista de origen o la vista. En la tabla siguiente se explican
algunas consideraciones que se deben tener en cuenta al importar distintos elementos.

Elemento Consideraciones

Columnas Access solo admite 256 campos en una tabla, de forma que Access importa
sólo las 256 primeras columnas. Para evitar este problema, cree una vista,
agréguele sólo las columnas que desea y asegúrese de que el número total
de columnas no sea superior a 256.

Carpetas Cada carpeta de la lista de SharePoint o de la vista se muestra como un


registro en la tabla de Access. Los elementos dentro de una carpeta también
aparecen como registros, inmediatamente debajo del registro
correspondiente a dicha carpeta.

Columnas de Si una columna de origen busca valores de otra lista, tiene dos opciones:
búsqueda Importar los valores de presentación como parte del campo. En este caso,
no es necesario importar la lista relacionada.
Obligar al campo de destino a buscar otra tabla. En este caso, si la base de
datos no contiene una tabla que pueda proporcionar los valores de
búsqueda, debe importar también la lista relacionada.

Columnas Los resultados de una columna calculada se copian en un campo cuyo tipo
calculadas de datos depende del tipo de datos del resultado calculado. No se copia la
expresión que ejecuta el cálculo.

Datos La columna de datos adjuntos de la lista se copia en un campo denominado


adjuntos Datos adjuntos.

Relaciones Access no crea automáticamente las relaciones entre tablas relacionadas al


finalizar una operación de importación. Dichas relaciones la debemos crear
manualmente entre las diversas tablas nuevas y las existentes mediante las
opciones de la ficha Relaciones. Para ver la ficha
Relaciones:
En la ficha Herramientas de base de datos, en el grupo
Relaciones.
Haga clic en Relaciones

112 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

Columnas Una columna de tipo opción o búsqueda puede contener varios valores. Al
multivalor importar una columna que admite varios valores, Access crea una columna
que hace lo mismo. Para obtener más información sobre los campos
multivalor en Access, abra los vínculos en la sección.

Formato de Las columnas que contienen un formato de texto enriquecido se importan a


texto Access como campos Memo. La propiedad Formato de texto del campo
enriquecido Memo está establecida en Texto enriquecido y se conserva el formato.

1. Identifique la base de datos a la que desea importar las listas.


Asegúrese de que tiene los permisos necesarios
para agregar datos a la base de datos. Si no desea
guardar los datos en ninguna de las bases de datos
existentes, cree una base de datos en blanco
haciendo clic en el Archivo. A continuación, haga
clic en Nuevo.
Luego da clic a la ficha Datos Externos, en el
grupo de comandos de Importar y Vincular, clic
al cuadro combinado de Más.
Clic en Lista SharePoint.

2. Revise las tablas de la base de datos.


La operación de importación crea una tabla con el mismo nombre que la lista de
SharePoint. Si este nombre ya está en uso, Access anexará "1" al nuevo nombre de tabla,
por ejemplo, Contactos1. (Si Contactos1 ya está en uso, Access creará Contactos2, etc.)

Archivo de texto
Por ejemplo, para importar la información de una base de datos de
un archivo de texto simplemente deberemos hacer clic en el botón
Archivo de texto.

En este caso se abrirá el Asistente para importación de texto, donde podrás indicar la
forma en la que está formateado el archivo del que vas a tomar la información, incluso te
podrás guardar esa descripción y volver a utilizarla para importar datos de otro fichero con
las mismas características utilizando el botón Importaciones guardadas.

A veces cuando se importan datos algunos datos no pueden ser almacenados por no coincidir
con la definición de la tabla, en este caso Access nos avisará que se han producido errores
en la importación y creará una tabla con esos errores para que los podamos analizar y
comprobar.

Escuela de Tecnología de la Información 113


Microsoft Office Access 2016

Actividad 1 : Importar de un Archivo de Texto


Crea una base de datos y asígnale el nombre Datos Importatos.accdb.
Vamos a importar el archivo Lista de Clientes.txt.

1. Selecciona la ficha Datos Externos y haz clic en el botón Archivo de texto de la


sección Importar.

2. En el cuadro de diálogo Importar selecciona Importar el origen de datos en una


nueva tabla de la base de datos actual. Clic en el botón Examinar.

3. Navega hasta la carpeta ejercicios del curso y selecciona el archivo Lista de Clientes.txt.
Clic en el botón Abrir.

114 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

4. Pulsa Aceptar.
Se abrirá el asistente para importación de texto.

5. Pulsa el botón Avanzado, vamos a crear una especificación para archivos que tengan
este determinado formato.

Escuela de Tecnología de la Información 115


Microsoft Office Access 2016

6. En Formato del archivo selecciona Delimitado.


7. En Delimitador de campo escribe ;.
8. En Cualificador de texto selecciona las dobles comillas (").
9. En Orden de la fecha selecciona AMD.
10. Deselecciona la opción Años en cuatro cifras.
11. Selecciona la opción Ceros no significativos en fechas.
Ahora pasaremos a establecer las propiedades de los campos.
Ya hemos terminado de configurar las propiedades de los campos, debería haberte
quedado algo así:

116 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

Si se guarda esta especificación, más adelante, se puede volver a utilizarla.


12. En el diálogo de Avanzado haz clic de nuevo sobre el botón Aceptar.
13. En el siguiente paso hay que activar “Primera Fila contiene nombres de campos”

Ahora verás que a medida que vamos avanzando por el asistente todas las opciones ya
se encuentran perfectamente configuradas.
14. Selecciona la opción Permitir a Access agregar la clave principal.
15.

Escuela de Tecnología de la Información 117


Microsoft Office Access 2016

16. Pulsa Siguiente para continuar. En esta ventana escribiremos en el cuadro de texto
Importar a la tabla el nombre Clientes.

17. Acces pregunta si deseas guardar los pasos de importación, si deseas das clic en guardar
importados

18. Pulsa Finalizar para terminar, una vez finalizada puedes ver su contenido.
Verás cómo la tabla se importa.

118 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

Archivo XML
Para Importar un archivo XML a Access 2016, seguir los siguientes pasos
a. Selecciona la ficha Datos Externos y haz clic en el botón Archivo XML de la sección
Importar

b. Aparecerá un Cuadro de Dialogo, en el que tendrás que buscar la ubicación del archivo
XML que necesitaras

c. Damos clic en Examinar y seleccionamos elArchivo deseado

d. Luego haz clic en Aceptar, y aparecerá la siguiente pantalla

Escuela de Tecnología de la Información 119


Microsoft Office Access 2016

e. Por defecto esta activada la opción Estructura y Datos, lo que implica que importara,
tanto los campos que contienen la tabla, como el contenido de la misma
Nos preguntara si deamos guardar la importación, Guardamos la importacion

120 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

f. Aceptar, y luego Cerrar

g. Finalmente se verá la tabla Importada

Exportar
En el tema anterior veíamos como podíamos recuperar datos de otras bases de datos o incluso
de archivos con otro formato, por ejemplo, de texto.
Ahora veremos el proceso contrario, enviar la información de nuestra base de datos a otra
base de datos o a un archivo de otro tipo, por ejemplo, de texto.
Para ello, sólo tienes que seleccionar una de las opciones que encontrarás en la sección
Exportar de la pestaña Datos Externos.

Escuela de Tecnología de la Información 121


Microsoft Office Access 2016

Estos comandos nos permitirán copiar tablas, informes, formularios, macros y en definitiva
cualquier objeto de una base de datos a otra base de datos. Creando una copia exacta del
objeto en otro lugar.
Para utilizar esta opción sólo tendrás que seleccionar el objeto y entonces ejecutar cualquiera
de los comandos que se encuentran dentro del grupo Exportar.

Si haces clic en el botón Más desplegarás más formatos de exportación entre ellos
Base de datos de Access que te permitirá exportar datos de una base de datos a otra
rápidamente.

Si deser importar desde Access a Access, el proceso es dar clic al botón .


Se abrirá el cuadro Exportar tabla, sólo tendremos que indicarle en qué base de datos quieres
copiar el objeto.

Dando clic en el botón examinar, buscamos, donde deseamos pegar el objeto, tenemos que
buscar otra base de datos. En el caso del ejemplo es Senati.accdb.

122 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

Podemos indicar el nombre que tendrá la tabla en la base de datos de destino y también elegir
qué parte queremos exportar.

En el marco Exportar tablas podremos seleccionar Definición y datos para exportar la tabla
completa (con todos los registros que contiene incluidos) o exportar únicamente su estructura
seleccionando la opción Sólo definición.
Para terminar clic en Aceptar.

Excel
También se puede copiar los datos de una base de datos de Microsoft Office Access 2016 a una
hoja de cálculo exportando un objeto de base de datos a una hoja de cálculo de Microsoft Office
Excel 2016. Esto se hace mediante el Asistente para exportación en Office Access 2016.
Desde la sección Exportar, podremos exportar el contenido de nuestras tablas, informes o
formularios a aplicaciones del mismo paquete como Word o Excel.

Escuela de Tecnología de la Información 123


Microsoft Office Access 2016

Excel copia y formatea el contenido de nuestro objeto y lo presenta en una hoja de Excel dentro
de un archivo tipo XLSX o otros tipos que podremos elegir.
Contextos comunes para exportar datos a Excel
 La empresa trabaja con una base de datos de Access y Excel para trabajar con datos.
Guarda los datos en las bases de datos de Access, pero utiliza Excel para analizar los
datos y distribuir los resultados de sus análisis. El equipo de trabajo exporta actualmente
datos a Excel cuando y como lo necesita, pero desea aumentar la eficacia de este
proceso.
 Usted es un usuario experto en Access desde hace tiempo, pero su Jefe prefiere trabajar
con los datos en Excel. A intervalos regulares, suele copiar los datos en Excel, pero
desea automatizar este proceso para ahorrar tiempo.
Si es la primera vez que exporta datos a Excel
 Para exportar datos de Access a Excel, debe estar trabajando en Access (Excel no
proporciona ningún mecanismo para importar datos de una base de datos de Access).
Tampoco puede guardar una base de datos o una tabla de Access como libro de Excel
mediante el comando Guardar como de Access. Es importante tener en cuenta que el
comando Guardar como de Access permite guardar un objeto de Access en la base
de datos actual sólo como otro objeto de base de datos de Access.
 Se puede exportar todos estos objetos tabla, consulta o un formulario. También se
puede exportar los registros seleccionados en una vista.
 Lo que no se puede exportar son las macros y los módulos a Excel. Cuando se exporta
formularios, informes u hojas de datos que contienen subformularios, subinformes u
hojas secundarias de datos, sólo se exporta el formulario, el informe o la hoja de
datos principales. Es necesario repetir la operación de exportación para cada
subformulario, subinforme y hoja secundaria de datos que deseamos exportar a
Excel.

124 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

 Sólo puede exportar un objeto de base de datos en cada operación de exportación.


No obstante, puede combinar los datos en varias hojas de cálculo en Excel después
de finalizar las operaciones individuales de exportación.

Prepararse para la operación de exportación


1. Abra la base de datos de origen.
2. En el panel de navegación, seleccione el objeto que contiene los datos que desea
exportar.
3. Puede exportar una tabla, una consulta, un informe o un formulario.

Otra forma de exporta es dar clic derecha a la tabla, del menú contextual, se selecciona
Excel, si es que deseamos exportar a dicho programa

Escuela de Tecnología de la Información 125


Microsoft Office Access 2016

4. Revise los datos de origen para asegurarse de que no contienen indicadores de error ni
valores de error.
5. Si hay algún error, debe resolverlo antes de exportar los datos a Excel. De lo contrario,
se pueden producir errores durante la operación de exportación y pueden aparecer
valores nulos en los campos.
6. Si el objeto de origen es una tabla o una consulta, decida si desea exportar los datos
con formato o sin él.

7. Esta decisión afecta a dos aspectos del libro resultante: la cantidad de datos que se
exportan y el formato de presentación de los datos. En la tabla siguiente se describe el
resultado de la exportación de datos con y sin formato.

Objeto de Campos y
Exportar origen registros Formato

Sin Tabla o Se exportan todos La configuración de la propiedad


formato consulta. los campos y Formato se omite durante esta
registros del objeto operación.
base. Para campos de búsqueda, se
exportan sólo los valores de
identificador de búsqueda.
Para campos de hipervínculo, el
contenido se exporta como una

126 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

columna de texto que muestra los


vínculos en el formato
textoParaMostrar#dirección#.

Con Tabla, Sólo se exportan El Asistente de exportación


formato consulta, campos y registros respeta la configuración de la
formulario que se muestran en propiedad Formato.
o informe la vista o el objeto Para campos de búsqueda, se
actual. No se exportan los valores de búsqueda.
exportan los Para campos de hipervínculo, los
registros filtrados, valores se exportan como
las columnas hipervínculos.
ocultas en una hoja Para campos de texto
de datos ni los enriquecido, se exporta el texto
campos no pero no el formato.
mostrados en un
formulario o
informe.

8. Elija el libro de destino y el formato de archivo.


Durante la operación de exportación, Access le pide que especifique el nombre del
libro de destino. En la tabla siguiente se resume cuándo se crea un libro (si no existe
aún) y cuándo se sobrescribe (si ya existe).

Si el libro de Y el objeto Y desea


destino de origen es exportar Entonces

No existe Una tabla, Los datos con El libro se crea durante la operación
consulta, formato o sin de exportación.
formulario o formato
informe

Ya existe Una tabla o Los datos pero El libro no se sobrescribe. Se agrega


consulta no el formato una nueva hoja de cálculo al libro y
recibe el nombre del objeto del que
se exportan los datos. Si ya existe
una hoja de cálculo con ese nombre
en el libro, Access le pide que
reemplace el contenido de la hoja de
cálculo correspondiente o
especifique otro nombre para la
nueva hoja.

Escuela de Tecnología de la Información 127


Microsoft Office Access 2016

Ya existe Una tabla, Los datos, El libro se sobrescribe con los datos
consulta, incluido el exportados. Se eliminan todas las
formulario o formato hojas de cálculo existentes y se crea
informe una nueva hoja de cálculo con el
mismo nombre que el objeto
exportado. Los datos de la hoja de
cálculo de Excel heredan la
configuración de formato del objeto
de origen.

Los datos siempre se agregan en una hoja de cálculo nueva. No puede anexar los datos en
una hoja de cálculo existente o en un rango con nombre.

Un archivo RTF de Word


Word copia y formatea el contenido de nuestro objeto y lo presenta en una tabla dentro de un
archivo tipo RTF.

Si sabes utilizar el comando Combinar correspondencia de Word, podrás seleccionar la opción


Combinar con Microsoft Office Word que se encuentra en el desplegable del botón Más y
así crear desde Access un archivo combinado para por ejemplo crear cartas personalizadas o
enviar emails personalizados a todos los clientes (por ejemplo) que tengas en tu tabla de base
de datos.

128 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

Lista de SharePoint
Si los usuarios trabajan con SharePoint, para comunicarse y colaborar entre ellos, se puede
encontrar con escenarios donde algunos de los datos de la base de datos de Access deban estar
disponibles en uno o varios sitios de SharePoint.
El modo más fácil de exportar datos a un sitio de SharePoint es ejecutar el Asistente para
exportación. Una vez ejecutado, puede guardar la configuración (la información proporcionada
al ejecutar el Asistente) como especificación de exportación. Luego, puede ejecutar de nuevo
la operación de exportación sin tener que volver a proporcionar la información.

Preparar la operación
1. Busque la base de datos que tiene la tabla o la consulta que desea exportar. Al
exportar una consulta, las filas y columnas de los resultados de la consulta se exportan
como elementos de lista y columnas. No se pueden exportar formularios ni informes.
Puede exportar sólo un objeto a la vez.
2. Identifique el sitio de SharePoint en el que desea crear la lista. Una dirección de un
sitio válido empieza por http:// seguido del nombre del servidor y finaliza con la ruta
al sitio específico del servidor. El siguiente ejemplo es una dirección válida:
http://adatum/EquipoAnalisis.
3. Tenemos que asegurarnos de tener los permisos de un usuario Administrador
necesarios para crear una lista en un sitio de SharePoint. Sino póngase en contacto
con el administrador del servidor si no está seguro de los permisos. La operación de
exportación crea una lista nueva que tiene el mismo nombre que el objeto de origen
de Access. Si el sitio de SharePoint ya tiene una lista con este nombre, se le pide que
especifique un nombre diferente para la lista nueva. Tener en cuenta que no se pueden
sobrescribir ni anexar datos a una lista que ya existe.
4. Hay que revisar los campos de la tabla o de la consulta de origen.
La tabla siguiente explica cómo se importan determinados elementos y si se deben
tomar acciones adicionales en casos específicos.

Escuela de Tecnología de la Información 129


Microsoft Office Access 2016

Elemento Resolución

Campos y registros Se exportan todos los campos y registros de la tabla o de


la consulta, incluidos los campos ocultos en la hoja de
datos. Se omite la configuración de filtros durante la
operación de exportación.

Datos adjuntos Si el objeto de origen tiene más de una columna adjunta,


debe quitar todas las columnas de datos adjuntos
excepto una. Esto se debe a que una lista de SharePoint
sólo puede admitir una columna de datos adjuntos. Si el
objeto de origen contiene más de una columna de este
tipo, Access muestra un mensaje en el que se le pide que
quite todas las columnas de datos adjuntos antes de
iniciar la operación. Para resolver este problema, puede
copiar cualquier columna adicional de datos adjuntos en
otros objetos de Access y exportarla a otras listas de
SharePoint.

Campos de búsqueda Los valores de presentación en los campos de búsqueda


que tienen valores de valor único se exportan como campos de opciones de
únicos o varios menús desplegables en la lista de SharePoint. Si el
valores campo de origen admite varios valores, se crea un
campo de opción que permite selecciones múltiples en
la lista de SharePoint.
NOTA Un campo de opción de una lista de SharePoint
no puede constar de más de una columna. Si el campo
de búsqueda de origen contiene varias columnas, los
valores de todas las columnas se combinarán en una
única columna.

Campos de consulta Los resultados de las columnas calculadas se copian en


calculados un campo cuyo tipo de datos depende del tipo de datos
del resultado calculado. No se copia la expresión en la
que se basan los resultados.

Campos Objeto OLE Los campos Objeto OLE se omiten durante la operación
de exportación.

5. Si la base de datos de origen no está abierta aún, ábrala y vaya a la siguiente serie de
pasos.

Exportar los datos


1. En la ficha Datos externos, en el grupo Exportar, haga clic en Lista de SharePoint.

130 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

Se inicia el Asistente para exportación.


2. En el cuadro Especifique un sitio de SharePoint, escriba la dirección del sitio de
destino.

3. En el cuadro Especifique el nombre de la nueva lista de SharePoint, escriba un


nombre para la nueva lista.
Si el objeto de origen de la base de datos ya tiene el mismo nombre que el de una
lista del sitio de SharePoint, especifique un nombre diferente.
4. De manera opcional, escriba una descripción para la nueva lista en el cuadro
Descripción y active la casilla de verificación Abrir la lista al finalizar.
5. Haga clic en Aceptar para iniciar el proceso de exportación.
6. Access crea una lista en el sitio de SharePoint y muestra el estado de la operación en
la última página del Asistente. Cuando finaliza la operación de exportación, puede
cerrar el Asistente o guardar los pasos de la exportación en una especificación.
7. Asimismo, durante la operación, Windows SharePoint Services selecciona el tipo de
datos correcto para cada columna basándose en el campo de origen correspondiente.
Para ver una lista de cómo se asignan los tipos de datos de Access y Windows
SharePoint Services entre sí durante la exportación de los datos, y qué valores de
campo se exportan para cada tipo de datos, vea la sección Cómo se asignan los tipos
de datos de Windows SharePoint Services a los tipos de datos de Access más adelante
en este artículo.

Escuela de Tecnología de la Información 131


Microsoft Office Access 2016

Archivo de texto
En el caso de exportar el contenido de una tabla a un archivo de texto podremos marcar la
opción Exportar datos con formato y diseño.

Si activamos esta opción podremos elegir el modo en el que se guarda la información en el


archivo de texto mediante este cuadro de diálogo:

Aquí podrás seleccionar el tipo de codificación de los datos de tipo Texto de la tabla. Aunque
el predeterminado sea Windows, Unicode (UTF-8) suele ser el formato que mayor
compatibilidad para datos externos que presenta. Aunque si nuestra intención es seguir
trabajando dentro de la plataforma Windows dejamos la opción predeterminada seleccionada.

132 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

Cuando abrimos la base de datos, en el block de notas

Archivo XML
Para importar a un Archivo XML, seguir los siguientes pasos:
1. Elegir de la Cinta Exportar, la opción Mas, para luego elegir la opción
Archivo XML

2. Indicarle la ruta y el nombre donde va a exportar

Escuela de Tecnología de la Información 133


Microsoft Office Access 2016

3. Aceptar la opción, y aparecerá la siguiente ventana

4. Si damos clic a mas opciones nos muestra

La ficha esquema nos muestra, la opción de incluir la clave principal

134 Escuela de Tecnología de la Información


Capítulo 3: Trabajando con datos externos

Para terminar esta la alternativa de guardar los pasos de exportación y terminados


dando clic en el botón Cerrar.

Nos ubicamos en la Carpeta y vamos a observarl el archivo.

Escuela de Tecnología de la Información 135


Microsoft Office Access 2016

Preguntas de Repaso
1. ¿Como se denomina al proceso de recoger datos de un programa diferente y los incorpora
a su base de datos?
2. ¿Cual de los siguientes elementos no puede importarse a otra base de datos:
a. Tablas
b. Consultas
c. Formularios
d. Macros?
3. A cuál grupo de comandos tengo que hacer clic, para incluir los datos un block de notas a
mi base de datos
a. El grupo Importar
b. El grupo Exportar
4. Para Importar tablas de Access al mismo programa de Access, podemos elegir
a. Importar datos y estructura
b. Importar estructura y relaciones
c. Ay B son ciertas
d. A y B son falsas
5. ¿Cuál es la finalidad del guardar nuestras importaciones en:

Ejercicios Casos Propuestos


1. De la base de datos bdSenati de la tabla alumnos, exporte los campos alunombres,
alupaterno, alumaterno, alufechnac, aludirección, alusexo y alucorreo, a Word para la
realización de una carta tipo Combinacion de Correspondencia. En dicha carta
comunicaremos a nuestros alumnos la aparición de de ofertas de nuevos cursos de
Ofimática.

2. De la misma base de datos exporte todos los campos menos el campo alufoto a un Block
de Notas y a un archivo PDF.

136 Escuela de Tecnología de la Información


Capítulo

Macros y Opciones de Inicio


Objetivos Especificos :

Crear macros
Asignar macros a controles de formulario
Personalizar herramientas
Definir las opciones de inicio

Introducción:
Las macros son de mucha utilidad, ya que nos permite poder
automizar tareas a través de fragmentos de código. Y en Access es
una de las herramientas mas usada en la optimización de sus
archivos.
Asi que empecemos conociendo más el mundo de las macros.
Microsoft Office Access 2016

Introducción a Macros
Las Macros son un método sencillo para llevar a cabo una o varias tareas básicas repetitivas
como abrir y cerrar formularios, mostrar u ocultar barras de herramientas, ejecutar informes,
etc...
En Access tenemos dos tipos de macros, tenemos las macros independientes o la macros
incrustadas o asociadas, cual es la diferencia entre una y otra, que en el caso de las macros
independientes es que la podemos usar en cualquier lugar de mi base de datos. En cambio, una
macro incrustada o asociada es la que se guarda de manera conjunta con el formulario o informe
y solo se puede ejecutar desde el formulario o informe donde esta guardada.
La configuración por defecto de Access, nos impedirá ejecutar ciertas acciones de macro si la
base de datos no se encuentra en una ubicación de confianza, para evitar acciones
malintencionadas.
Para ejecutar correctamente las macros de bases de datos que consideremos fiables, podemos
añadir la ubicación de ésta al Centro de confianza.

Crear una Macro


El procedimiento, para crear una macro es el siguiente:
Clic en la Ficha Crear:

Del grupo de comandos de Macros y código: clic en Macro.

Se abrirá la ventana principal de la Macro: Vista de diseño de Macro.

138 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

En ella se muestra un cuadro despeglable desde donde podemos elegir la macro que deseamos
se ejecute.
Dentro de la lista de este menú despegable se muestra una lista de las macros mas usadas y que
no son de riesgos para manipular una base de datos.

Si nosotros desearamos ver todas las macros incluidas las de riesgos para
poder trabajar con nuestra base de datos, es necesario que le demos clic
al comando Mostrar todas las acciones, que se encuetra dentro del grupo
de comandos de Mostrar u ocultar.

Escuela de Tecnología de la Información 139


Microsoft Office Access 2016

Luego procedemos nuevamente a dar clic en e cuadro combinado de macro y vamos a observar
que la cantidad de macros que inicialmente había a aumentado, esto es debido a que también se
muestra las macros que Access considera de riesgo.

Otro botón que es importante conocer es Catálogo de Acciones que se encuentra


dentro del grupo de comandos de Mostrar u Ocultar, este botón es importante,
ya que cuando damos clic se activa al lado derecho el Catalogo de Acciones.

¿Qué es el catalogo de acciones?


Este panel nos muestra las acciones organizadas
por categorías o jerarquías algo que resulta muy
útil por que en versiones anteriores cuando uno
quería hacer la búsqueda de una macro a través
del menú despegable nos muestra todas las
macros ordenadas de manera alfabética y es
imposible saber para que sirve cada de una de
estas macros
Es por ese motivo que se ha incluido el catalago
de acciones que no es ni mas ni menos que son
las mismas macros que nos muestra el menú
despegable, pero de una manera mas organizada
y fácil para el usuario.

Por ejemplo:

140 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

Si quisiéramos saber de una macro que me permitiera poder manipular las ventanas en el
catolago de acciones me voy a la categoría
Administración de ventanas y cuando le haga un
clic, te va a mostrar la lista de todas las macros
categorizadas en el caso del ejemplo de
Administración de ventanas.

Actividad 1: Crear una macro sencilla


Vamos a abrir la base de datos BdSenati, de ella vamos a crear una macro que permita
abrir la tabla: Instructor
1) Clic en la ficha Crear, luego clic en Macro.
2) Del cuadro combinado de Acciones,
seleccionamos Abrir Tabla

3) Nos muestra una nueva ventana de


Argumentos

4) De este cuadro de dialogo que nos muestra tres opciones, seleccionamos en nombre
de la tabla: instructor, Vista, la dejamos en Hoja de datos y Modo de datos de la
misma manera en modificar, como se muestra en la grafica adjunta.

5) El siguiente paso es dar clic en el botón Guardar

6) Ingresamos el nombre y aceptamos

Escuela de Tecnología de la Información 141


Microsoft Office Access 2016

Podemos añadir tantas acciones como queramos, simplemente deberemos colocarlas una
después de otra y en el orden que queremos que se ejecuten.
Recuerda que deberás tener cuidado con el orden en el que estableces las acciones, pues es muy
importante. Imagina que tienes dos acciones (entre varias) que abren y cierran un formulario.
El formulario deberá estar abierto antes de ejecutar la orden de cerrar el formulario, por lo que
la acción de apertura debería ir antes de la de cierre.
En todo momento podrás utilizar los botones de Insertar o Eliminar filas para insertar nuevas
acciones entre dos existentes o eliminar una acción.
Para cambiar el orden en el que se encuentren las acciones puedes seleccionar algunas de ellas
y arrastrarlas con el ratón para colocarlas en otra posición.
Cuando la Macro está terminada, puede guardarse, ejecutarse y cerrarse. Más tarde podremos
llamarla desde un control Botón de comando, o ejecutarla directamente desde la ventana de la
base de datos haciendo clic en Ejecutar o bien haciendo doble clic directamente sobre ella.

Acciones más utilizadas

En este punto veremos las acciones más


utilizadas en las Macros. Siempre puedes si
es necesario que necesites ayuda, sobre la
acción que ejecuta una Macro, activar el
catalogo de acciones y consultar desde dicho
catalogo.

Si no encuentras lo que buscas, puedes buscar


ayuda en el ayudante de Access.

Cuando selecciones una Acción en la lista


desplegable, se activa la ventana de
argumentosm, hay que tener en cuenta que las
acciones de la ventana de argumentos no
siempre van a ser la misma cantidad.

Por ejemplo, la ventana de argumentos de abrir tabla como en la Actividad 1, ejecutada es


diferente a la ventana de Argumentos como de la Macro:

142 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

A continuación, veremos las acciones más comunes, puedes ver la descripción de sus
argumentos de acción haciendo clic en.
TIPO DE MACRO DESCRIPCION DE LA MACRO
Abrir Consulta Esta acción abre una consulta escogida entre las existentes en
la base de datos.
AbrirFormulario Del mismo modo que la acción anterior, abre un formulario
AbrirInforme Permite abrir un informe
AbrirTabla Esta acción permite abrir una tabla.
BuscarRegistro Esta acción busca el primer registro que cumpla los criterios
especificados. Puedes utilizar esta acción para avanzar en las
búsquedas que realices.
BuscarSiguiente Se posiciona en el siguiente registro que cumpla con los
criterios indicados en la acción BuscarRegistro anterior. No
tiene argumentos.
CancelarEvento Esta acción cancela el evento que produjo la ejecución de la
macro. No tiene argumentos.
Cerrar Con esta acción podrás cerrar cualquier objeto que se
encuentre abierto.
CuadroMsj Con las Macros incluso podremos mostrar mensajes para
interactuar con el usuario.
DetenerMacro Introduce esta acción en una Macro para detener su ejecución.
No tiene argumentos. Verás su utilidad más adelante.
DetenerTodasMacros Esta acción detendrá todas las Macros que se estén ejecutando
en ese momento. No tiene argumentos.
*Eco Esta acción es muy útil para ocultar al usuario las operaciones
que se están realizando con una Macro. Permite la activación
o desactivación de la visualización de las acciones en pantalla.
EjecutarComando Utiliza esta acción para lanzar comandos que puedas
encontrar en cualquier barra de herramientas.
*EstablecerValor Permite modificar los valores de los campos.
IrARegistro Te permitirá saltar a un registro en particular dentro de un
objeto.
Maximizar Esta acción maximiza la ventana activa para que ocupe todo
el espacio de la ventana de Access.
Minimizar Esta acción minimiza la ventana activa convirtiéndola en una
barra de título en la parte inferior de la ventana de Access.
Salir Esta acción hace que Access se cierre.

Escuela de Tecnología de la Información 143


Microsoft Office Access 2016

Algunas de estas acciones no se muestran si no está pulsado el icono Mostrar todas las acciones,
en la banda de Diseño de Macros.

Actividad 2: Asignar la macro a mas de un formulario


1) Vamos a asignar una macro independiente, a dos formularios.
2) De la macro creada: Abrir Tabla Instructor, la vamos a asignar dentro de un
formulario, para ello vamos a abrir en modo diseño el Formulario: Instructores

3) Le agregamos un botón de comando, si el esta activo el Asistente de de Controles,


no interesa, solo cancelamos al momento de colocar el botón de comando al insertarlo
en el formulario, le ponemos de nombre Abrir Tabla Instuctores

144 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

4) Clic derecho en el botón, seleccionamos la opción propiedadesy vamos a la ficha


Eventos.

5) Clic en el cuadro combinado Al hacer clic, nos mostrará la macro creada,


seleccionamos dicha macro.

6) Cambiamos el formulario en vista Formulario y damos clic al botón, observaremos


que se visualizará la tabla instructores.

7) Se observa lo siguiente

Escuela de Tecnología de la Información 145


Microsoft Office Access 2016

8) Cerramos la tabla y el formulario, procedemos a abrir la tabla distritos y insertamos


otroa botón de comando repitiendo los pasos anteriores hasta la ventana de
propiedades del botón en la ficha eventos.

9) En la ficha eventos del comando, en el evento Al hacer doble clic.

146 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

10) Regresamos a la vista Formulario y ejecutamos, solo lo va a hacer cuando hagamos


doble clic sobre el botón.

11) Guardamos y cerramos

Macros Condicionadas
Ahora que ya conocemos las acciones y cómo introducirlas y ordenarlas, veremos un modo que
nos ayudará a crear macros con muchas posibilidades. Para ello utilizaremos las condiciones,
algo asi parecido como la función Si en Excel.

Escuela de Tecnología de la Información 147


Microsoft Office Access 2016

Actividad 3: Crear Macros condicionadas


1) Vamos a trabajar con una macro incrustrada dentro de un formulario
2) Cmo recordaremos existen dos tipos de macros las independientes que ya hemos
trabajada y ahora la haremos con las incrustadas, el procedimiento es un poco
diferente, al ya conocido independiente.
3) De la base de datos bdSenati, vamos a realizar que nos aparezca un mensaje que nos
informe que esta jalado en el curso de NotFinal, de la tabla Notas.
4) Para ello abrimos el formulario Notas, activamos la ventana de propiedades del
Formulario, vamos a la ficha Eventos, observaremos que el objeto formulario es el
que presenta mas Eventos.

5) En el Evento: Al activar registro damos clic: en el botón …

6) Nos muestra la ventana Elegir generador, elegimos la opción Generador de Macros,


y damos clic en Aceptar.

148 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

7) Nos aparece la ventana de macros, aca surge la duda, que opción es la que tengo que
elegir.

8) Puedes optar desde el catalogo de opciones con la opción Sí, o desde el mismo
cuadro combinado de macro clic a la ficha desplegable y elegir la opción Sí,
cualquiera de ellos es la correcta.

9) Cuando damos Clic en Sí, nos muestra la siguiente ventana

10) Seleccionamos el Generador de Expresiones:

11) En la ventana generador de expresiones, vamos a escribir la condición, tal como se


muestra en la pantalla:

Escuela de Tecnología de la Información 149


Microsoft Office Access 2016

12) Aceptamos y nos muestra la siguiente pantalla

13) Del cuadro combinado elegimos la macro: Cuadro de Mensaje

150 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

14) Damos clic en Agregar Sino, para el valor Falso de la función Sí.

15) Rellenamos de tal forma que nos quede de esta manera:

16) Guardamos y ejecutamos el formulario en vista Formulario.

Escuela de Tecnología de la Información 151


Microsoft Office Access 2016

17) Observaremos para alumnos aprobados en el examen final

18) Guardamos y cerramos.

Puedes unir varias condiciones utilizando los operadores Y y O como vimos en el tema de
consultas.
Aunque a primera vista el uso de Macros en Access pueda parecer algo limitado, veremos en
las próximas páginas que podemos crear grupos de macros y definir bucles repetitivos que nos
permitirán realizar operaciones mucho más complejas.

Grupos de Macros
Cuando tenemos muchas macros, puede llegar a ser dificultoso localizar una macro dentro de
la ventana Base de Datos. Al igual que es más cómodo agrupar los archivos en carpetas, puede
ser útil agrupar nuestras macros en grupos de macros que contengan macros relacionadas.
También los grupos de macros pueden ser útiles para definir macros a modo de subrutinas
dentro de una macro principal.
Para definir un grupo de macros haremos uso de la opción Catalogo de Opciones, damos clic
en la opción Grupo.

Esta columna nos da la opción de crear diferentes macros dentro de una Macro principal.
Imagina que tenemos la siguiente macro y la guardamos como Macro1:

152 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

Macro1 aparecerá en la ventana Base de Datos como una macro, pero realmente será un grupo
de macros formado por las macros grupo1, grupo2, etc.
A partir de este momento podremos ejecutar las acciones AgregarMenu, CuadroMsj, y Beep
simplemente llamando a la macro Macro1

Botones de comando en formularios


Como su nombre indica estos controles sirven para ejecutar comandos cuando son pulsados.
Los usuarios avanzados de Access son capaces de concentrar muchísimas acciones en un solo
botón gracias a la integración de este programa con el lenguaje de programación Visual Basic
y al uso de macros.
El asistente para controles
Cuando procedemos a activar un botón de comando, teniendo el asistente activado, nos aparece
una cuadro de diálogo. Veremos paso a paso cómo deberemos seguirlo para conseguir nuestro
objetivo.

Escuela de Tecnología de la Información 153


Microsoft Office Access 2016

En la primera pantalla podremos elegir entre diferentes acciones a realizar cuando se pulse el
botón. Como puedes ver en la imagen estas acciones se encuentran agrupadas en Categorías.
Selecciona la Categoría que creas que se ajusta más a lo que quieres realizar y luego selecciona
la Acción en la lista de la derecha.
Pulsa Siguiente para continuar.

Ahora podrás modificar el aspecto del botón. Puedes elegir entre mostrar un Texto en el botón,
o mostrar una Imagen.
En el caso de escoger Imagen, podrás seleccionar una entre las que Access te ofrece. Marca la
casilla Mostrar todas las imágenes para ver todas las imágenes que Access tiene disponible para
los botones.
También podrías hacer clic en el botón Examinar para buscar una imagen en tu disco duro.
Cuando hayas terminado pulsa Siguiente para continuar, y que aparezca la siguiente pantalla

En esta última pantalla le daremos un nombre al control Botón de Comando para poder
reconocerlo más tarde en la lista de controles.

154 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

Pulsa Finalizar para terminar.


Al ser tan fácil añadir Botones de comando con el Asistente este control se convierte en una
forma muy sencilla de añadir acciones a tus formularios e informes.
Como podrás ver en las primeras ventanas del Asistente para controles existen varias acciones
que podrás realizar.
Con la categoría de Exploración de registros podrás moverte de forma rápida por todos los datos
del formulario, buscando registros o desplazándote directamente a alguno en particular.
Utiliza las acciones de Operaciones con registros
para añadir nuevos, duplicarlos, eliminarlos,
guardarlos o imprimirlos.
Del mismo modo podrás jugar con los formularios
aplicándoles filtros y actualizándolos. En cualquier
momento podrás añadir un botón para abrir, cerrar
o imprimir informes, formularios y consultas.

Macro Autoexec
Una macro Autoexec, es una macro que se ejecuta al abrir una base de datos.

Actividad 4: Crear un formulario de Login con autoexec


Vamos a proceder a crear un usuario que tres personas puedan acceder a través de un
usuario, dependiendo del usuario va a abrir determinado Formulario.
1. Primero creamos un Formulario Login de la siguiente manera

Escuela de Tecnología de la Información 155


Microsoft Office Access 2016

2. Procedemos a crear una Macro que me permita poder abrir este formulario que acabo
de crear.
3. Para ello clic en la Ficha Crear, clic en Macro y asignamos de acuerdo a nuestro gráfico
que se muestra a continuación.

4. Procedemos a guardar la macro con el nombre: autoexec

5. Probamos cerrando la base de datos y vovlviendola a abrir, observaremos que saldrá de


manera automática la pantalla de bienvenida

156 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

6. Procedemos a cambiar la vista del formulario en modo de diseño

7. Seleccionamos el objeto Login y vamos a la ficha eventos, seleccionamos el evento clic,


el botón de los tres puntos

8. Vamos a trabajar en ella con la macro, que hace referencia a la función Sí, para ello
vamos a considerar a tres usuarios: Liliana, Ximena y Nadia, cada uno de ellos
procederá a abrir un determinado Formulario:

Escuela de Tecnología de la Información 157


Microsoft Office Access 2016

9. Procedemos a agregar las condiciones para cada usuario presionando clic en el botón
Agregar o Sí, dejar configurado tal como se muestra en la pantalla.

10. Ejecutamos y vamos a observar que debe funcionar todo a la perfección, lo que significa
que se abre primero la pantalla de Bienvenida, y dependiendo del usuario va a abrir el
formulario correspondiente.

 Para omitir la macro AutoExec y otras opciones de inicio, mantenga presionada la


tecla MAYÚS mientras se inicia la base de datos. Para obtener más información,
vea el artículo Omitir las opciones de inicio cuando se abre una base de datos.
 Otra forma de realizar acciones cuando se inicie una base de datos consiste en
especificar un formulario de inicio y, a continuación, adjuntar las macros o código
VBA a los eventos AlAbrir o AlCargar del formulario. Para obtener más
información, vea el artículo Establecer el formulario predeterminado que aparece
cuando se abre una base de datos.

158 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

Actividad 5: Crear un formulario que filtre una tabla


Abrimos la base de datos bdSenati, de la tabla alumnos creamos un formulario usando el
asistente que se visualice de la siguiente manera

Ingresamos a vista diseño y en ella agregamos un cuadro combinado en la sección


encabezado de formulario, se activará el asistente de formulario.

Damos clic en siguiente:

Escuela de Tecnología de la Información 159


Microsoft Office Access 2016

Agregamos dos valores Femenino y masculino

Damos clic en siguiente

160 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

Ponemos de nombre Sexo y damos clic en Finalizar.


En la propiedad nombre, le ponemos comboSexo

Luego en la ficha: Eventos, en el evento Al hacer clic, damos clic en el botón:

Seleccionamos generador de macros y aceptamos


Nos muestra el editor de macros y procedemos a editar con la función si

Escuela de Tecnología de la Información 161


Microsoft Office Access 2016

Lo que se ha hecho es que Primeo en el combo Selecciono sexo y al estar seleccionado


esta opción lo que ocurre es que se filtre la data de acuerdo al sexo seleccionado

En esta vista se puede observar los 80 registros, debido a que no se ha seleccionado nada
del combo
Procesados a aplicar el filtro seleccionemos un sexo: ejemplo femenino

Si observa nos muestra 46 registros todos de sexo Femenino,

162 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

Opciones de navegación
Cuando se crea una categoría personalizada, se crea para la base de datos que está abierta y la
categoría está ligada a esa base de datos. No se pueden transferir categorías y grupos
personalizados a otras bases de datos.
Para crear y administrar categorías y grupos personalizados, se utiliza el cuadro de diálogo
Opciones de exploración. Éstos son los pasos generales del proceso:
 Primero, se crea una categoría personalizada. Access proporciona la categoría:
Personalizado. Puede cambiar el nombre de esa categoría y, a continuación, agregar o
quitar grupos según sus necesidades, o bien, puede crear una nueva categoría en
cualquier momento.
 Tras la creación de una categoría, se crea uno o varios grupos para la nueva categoría.
 Cierre el cuadro de diálogo Opciones de exploración y, en el panel de exploración,
arrastre o copie y pegue los objetos de la base de datos que desee asignar al grupo
personalizado. Los objetos se arrastran o se copian desde un grupo especial denominado
Objetos no asignados, que Access crea cuando se crea una categoría personalizada.
 Cuando se agrega un objeto de base de datos desde el grupo Objetos no asignados a un
grupo personalizado, Access crea un acceso directo a ese objeto: no se mueve ni se copia
el propio objeto. Si se cambia de nombre o se elimina un acceso directo en un grupo
personalizado, esos cambios no afectan al propio objeto, sólo al acceso directo a dicho
objeto.
 Tras rellenar los grupos personalizados, puede ocultar el grupo Objetos no asignados y
todos los demás grupos que no desee mostrar.
Crear Categorías
1. Haga clic con el botón secundario del mouse en el menú de la parte superior del panel
de exploración y, a continuación, haga clic en Opciones de navegación...

Escuela de Tecnología de la Información 163


Microsoft Office Access 2016

2. En el cuadro de diálogo Opciones de navegación, bajo la lista Categorías, haga clic


en Agregar elemento. Aparecerá una nueva categoría en la lista.

Esta figura ilustra una nueva categoría personalizada:

3. Escriba un nombre para la nueva categoría y, a continuación, presione ENTRAR.


Procure usar un nombre que tenga sentido para los usuarios de la base de datos. Tras
crear el nombre, observe que el título de la lista a la derecha cambia para reflejar ese
nombre.
Por ejemplo, si asigna el nombre Mi panel de control a la nueva categoría, el título de
la lista a la derecha será Grupos de "Panel de control".
Asimismo, observe que la lista contiene un grupo
denominado Objetos no asignados, que Access
crea de forma predeterminada. Este grupo
contiene todos los objetos de la base de datos, y
son dichos objetos los que se utilizan para rellenar
el grupo personalizado.

164 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

Tras crearse la categoría personalizada, se crea uno o varios grupos para dicha
categoría. Se pueden crear tantos grupos como sean necesarios. Mantenga abierto el
cuadro de diálogo Opciones de exploración y siga los procedimientos que se detallan
a continuación

Crear un grupo personalizado


1. Bajo la lista Grupos de "nombre de grupo", haga clic en Agregar grupo y, a
continuación, escriba un nombre para el grupo. Puede repetir este proceso tantas
veces como crea necesario. Por ejemplo, Mi panel de control puede contener tres
grupos: Formularios de entrada de datos, Informes y Consultas. Los grupos que
agregue en esta fase del proceso dependen de las necesidades de los usuarios o de
sus propias preferencias.

2. Mantenga activada la casilla de verificación situada junto a Objetos no asignados y


haga clic en Aceptar. Access cierra el cuadro de diálogo Opciones de exploración
y agrega el nuevo grupo personalizado al panel de exploración, pero aún no podrá
ver el nuevo grupo.
3. Siga los procedimientos descritos a continuación para poder ver el nuevo grupo y
agregar objetos al grupo.

Escuela de Tecnología de la Información 165


Microsoft Office Access 2016

Agregar objetos a un grupo personalizado


1. Haga clic en el menú situado en la parte superior del panel de exploración y, en la
sección superior del menú, haga clic en la nueva categoría. Los grupos creados para
la categoría aparecen en la sección inferior del menú, junto con el grupo Objetos no
asignados.
2. En el grupo Objetos no asignados, seleccione los elementos que desee usar en el
grupo personalizado y, a continuación, muévalos a ese grupo. Access permite mover
los elementos seleccionados de varias formas. Puede:
 Arrastrar los elementos individualmente.
 Mantener presionada la tecla CTRL y hacer clic en varios elementos y, a
continuación, arrastrar los elementos hasta el grupo personalizado.
 Hacer clic con el botón secundario del mouse (ratón) en uno de los elementos
seleccionados, elegir Agregar al grupo y, a continuación, hacer clic en el
nombre del grupo personalizado.
Cuando finalice, podrá dejar visible el grupo Objetos no asignados en el panel de
exploración u ocultarlo.

Ocultar el grupo Objetos no asignados


1. Haga clic con el botón secundario del mouse en el menú de la parte superior del
panel de exploración y haga clic en Opciones de exploración.

166 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

2. En el panel Grupos de categoría, desactive la casilla de verificación Objetos no


asignados.

Después de crear una categoría personalizado y un grupo personalizado y de agregar


algunos accesos directos al grupo, puede usar esos accesos directos para crear otros
grupos. En el siguiente procedimiento se explica cómo realizar esta operación.

Crear un nuevo grupo personalizado mediante un objeto de un grupo personalizado


existente
Para usar esta técnica, primero debe crear una categoría personalizada y agrupar los objetos
siguiendo los procedimientos descritos en las secciones anteriores.
1. Con una categoría y un grupo personalizados abiertos en el panel de exploración,
haga clic con el botón secundario del mouse en el objeto que desee colocar en un
grupo nuevo.
2. Elija Agregar al grupo y, a continuación, haga clic en Nuevo grupo.
Aparecerá un grupo nuevo en el panel de exploración

Escriba un nombre para el nuevo grupo y, a continuación, arrastre accesos directos


adicionales al nuevo grupo, según sea necesario.

Escuela de Tecnología de la Información 167


Microsoft Office Access 2016

Mostrar u ocultar los grupos y objetos de una categoría


Es posible ocultar algunos o todos los grupos de una categoría personalizada y algunos o todos
los objetos de un grupo. Recuerde los siguientes puntos:
 Access proporciona dos formas de ocultar un objeto. Se pueden usar los comandos del
panel de exploración para ocultar un objeto de su grupo y categoría primarios, o bien,
se puede elegir una propiedad de cada objeto y ocultarla de todos los grupos y categorías
de la base de datos abierta.
 Los objetos y grupos ocultos pueden quedar totalmente invisibles, o bien, se pueden
mostrar en el panel de exploración como iconos atenuados y no disponibles. Para ello,
active o desactive la casilla de verificación Mostrar objetos ocultos en el cuadro de
diálogo Opciones de exploración. Esta casilla de verificación se usa también para
mostrar o restaurar un grupo u objeto.
Los pasos que se describen en las siguientes secciones indican cómo se lleva a cabo cada tarea.
Ocultar un grupo en una categoría
 En el panel de exploración, haga clic con el
botón secundario del mouse en la barra de título
del grupo que desee ocultar y, a continuación,
haga clic en Ocultar.

Para realizar esta tarea también puede usar el cuadro de


diálogo Opciones de navegación…. Abra el cuadro de
diálogo (vea los pasos descritos en la siguiente sección
si no sabe cómo hacerlo) y, en la lista Grupos de
"categoría", desactive la casilla de verificación situada
junto al grupo que desee ocultar.

168 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

Restaurar un grupo oculto en una categoría


1. Haga clic con el botón secundario del mouse en la barra de menús de la parte superior
del panel de exploración y, a continuación, haga clic en Opciones de navegación… en
el menú contextual.
2. En la lista Categorías, seleccione la categoría que contenga el grupo oculto.
3. En la lista Grupos de "categoría", active la casilla de verificación situada junto al
grupo oculto.
4. Haga clic en Aceptar.

Ocultar un objeto en su grupo primario


 En el panel de exploración, haga clic con el botón secundario del mouse en el objeto y,
a continuación, haga clic en Ocultar.

Ocultar un objeto de todos los grupos y categorías


1. Haga clic con el botón secundario del mouse en el objeto que desee ocultar y, a
continuación, haga clic en Propiedades del objeto.

Escuela de Tecnología de la Información 169


Microsoft Office Access 2016

Aparecerá el cuadro de diálogo Propiedades y Access agregará el nombre del objeto al


título del cuadro de diálogo. Por ejemplo, si abre un formulario denominado Pedidos, el
título del cuadro de diálogo será Propiedades de Pedidos. La siguiente figura muestra
el cuadro de diálogo.

2. Active la casilla de verificación Oculto.


3. Haga clic en Aceptar.

Restaurar o mostrar un objeto oculto


1. Haga clic con el botón secundario del mouse en el menú de la parte superior del panel
de exploración y haga clic en Opciones de navegación… en el menú contextual.
2. Bajo Opciones de presentación, active la casilla de verificación Mostrar objetos
ocultos.
3. Haga clic en Aceptar y vuelva al panel de exploración. En el panel se muestra un icono
atenuado para todos los objetos ocultos.
4. Siga uno de estos procedimientos:
 Si ocultó el objeto únicamente de su grupo y categoría primarios, haga clic con
el botón secundario del mouse en el objeto y, a continuación, haga clic en
Mostrar.
 Si ocultó el objeto de todas las categorías y todos los grupos estableciendo la
propiedad Oculto, haga clic con el botón secundario del mouse en el objeto,
haga clic en Propiedades de vista y, a continuación, desactive la casilla de
verificación Oculto.

170 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

Quitar y restaurar objetos de grupos personalizados


Los grupos personalizados pueden cambiar con el tiempo a medida que cambien las
necesidades de los usuarios o de la empresa. Es posible agregar o quitar los objetos de un
grupo en cualquier momento. Los siguientes procedimientos indican cómo hacerlo.

Eliminar objetos de un grupo personalizado


 En el panel de exploración, haga clic con el botón secundario del mouse en el objeto
que desee quitar y, a continuación, haga clic en Eliminar.

Restaurar un objeto en un grupo personalizado


1. Si está oculto el grupo Objetos no asignados, muéstrelo.
a. Haga clic con el botón secundario del mouse en el menú de la parte superior
del panel de exploración y haga clic en Opciones de navegación… en el
menú contextual.
b. En el panel Grupos de "categoría", active la casilla de verificación situada
junto a Objetos no asignados.
2. Según sea necesario, arrastre o copie y pegue el objeto deseado del grupo Objetos no
asignados en el grupo personalizado.

Cambiar el nombre de un objeto de un grupo personalizado


1. En el panel de exploración, haga clic con el botón secundario del mouse en el objeto
cuyo nombre desee cambiar y, a continuación, haga clic en Cambiar nombre de
acceso directo. Escriba el nuevo nombre del acceso directo y, a continuación,
presione ENTRAR

Cambiar entre categorías


Para cambiar entre categorías, solo hay que hacer clic en el Menú de Categorías y elegir la
Categoría de su Preferencia

Ordenar categorías
Haga clic con el botón secundario del mouse en el menú de la parte superior del panel de
exploración y elija Ordenar por... Elegir la Opción que desee

Escuela de Tecnología de la Información 171


Microsoft Office Access 2016

Vistas
Haga clic con el botón secundario del mouse en el menú de la parte superior del panel de
exploración y elija Vista por:

Opciones de la base de datos


Formulario o página inicial
Cuando usted abre una base de datos se le muestra de forma predeterminada la ventana que le
permite administrar objetos en ella (ventana Base de datos); esto es bueno, pero en muchos
casos, cuando se entrega una base de datos a un usuario final, se desea que ellos accedan
directamente a los formularios en un orden predefinido (precisamente para eso se ha diseñado
el Panel de Control en este capítulo).

172 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

Usted puede configurar el comportamiento de Access al abrirse una base de datos de la siguiente
manera:
1. Haga clic en la ficha Archivo, Elija la opción Opciones, clic en la ficha Base de datos
actual.
Usted verá aparecer el cuadro de diálogo Base de datos actual

2. Especifique la configuración que desee establecer y haga clic en Aceptar.


3. Cierre la base de datos y vuelva a abrirla para ver el efecto de su configuración.

Para abrir una base de datos ignorando las opciones de inicio que se haya establecido
en ella:
1. Seleccione el archivo de la base de datos en el explorador de Windows.
2. Mantenga presionada la tecla SHIFT mientras hace doble clic sobre el archivo.

Actividad 6: Creando un formulario de inicio Panel de Control


Usted abrirá la base de datos BdSenati, vamos a configurar en opciones de inicio
 Crear el Formulario principal que nos muestre opciones para poder crear el Formulari
panel de control.
 Primero tenemos que insertar el comando Administrador de panel de Control, que
me permita poder crear dicho Formulario

Escuela de Tecnología de la Información 173


Microsoft Office Access 2016

 Para hacer esto tenemos que entrar a opciones de Access, lo que tenemos que
hacer es crear un Grupo, en el grupo creado agregamos el comando
Administrador del panel de control.

Damos clic al comando Administrador de panel de control, como no encuentra


un formulario de ese tipo me pregunta, si deseamos crear

Damos clic en Si

174 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

Damos clic en el botón modificar y nos muetra esta ventana

Procedemos a dar clic en el botón Nueva…

Damos clic en el botón Aceptar, visualizaremos

Escuela de Tecnología de la Información 175


Microsoft Office Access 2016

El proceso es repetitivo, siigo agregando

Procedo a cerrar, dando clic en el respectivo botón

176 Escuela de Tecnología de la Información


Capítulo 4: Macros y opciones de inicio

Si damos clic en cualquiera de los botones como abrir alumnos este formulario
me abre el formulario alumnos

Escuela de Tecnología de la Información 177


Microsoft Office Access 2016

Preguntas de Repaso
1. ¿Qué es una macro?
2. ¿Cómo se crea una macro?
3. ¿Cómo se asigna una macro a una etiqueta en un formulario?
4. ¿Cómo se asigna una macro a un botón de comando en un formulario?
5. ¿Cómo se crea una barra de herramientas?
6. ¿Cómo se especifican las opciones de inicio?
7. ¿Qué debe hacerse para que al abrirse una base de datos de Access se ignoren las
opciones de inicio que se haya especificado?

Ejercicios Casos Propuestos


Actividad propuesta 1
Abra la base de datos Biblioteca; en ella:
1. Cree un panel de control que abra los siguientes objetos de la base de datos:
a. El formulario Libro
b. El formulario Usuario
c. El informe Prestamo.
2. Cree un formulario Panel de control y a los objetos mencionados en la pregunta 1 de
esta actividad. Incluya el botón cerrar aplicacion
3. Establezca las opciones de inicio para que al abrirse la base de datos no se pueda abrir
directamente ninguna tabla o consulta y el Panel de control sea el primer objeto que se
muestre al usuario.
Actividad propuesta 2
Abra la base de datos bdNeptuno; en ella:
1. Cree un panel de control que abra los siguientes objetos de la base de datos:
a. El formulario Clientes
b. El formulario Categorias
c. El informe Empleados
2. Cree un formulario Panel de control y a los objetos mencionados en la pregunta 1 de
esta actividad.
Establezca las opciones de inicio para que al abrirse la base de datos no se pueda abrir
directamente ninguna tabla o consulta y el Panel de control sea el primer objeto que se
muestre al usuario.

178 Escuela de Tecnología de la Información


Capítulo

Programación con VBA


Objetivos Especificos:

Conocer variables que utiliza vba de access


Programar con VBA.
Agregar controles ActiveX
Crear procesos con VBA

Introduccion:
Sabemos que una macro no puede sacar una ventana que pida
introducción de datos en Access, cosa que si lo podemos hacer
con el editor de VBA, es por eso que programar con VBA vamos
a poder automatizar tareas de Access haciendo que nuestras
macros sean mas potentes.
Microsoft Office Access 2016

Uso de VBA en Access


VBA quiere decir Visual Basic para Aplicaciones. Viene a ser un conjunto de librerías, (un tipo
especial de programas), creado por Microsoft que incluye, un entorno de desarrollo y un
lenguaje de programación. Se puede lograr manipular objetos, ingreso de datos por parte del
usuario, modificaciones a nivel de sistema operativo, crear funciones propias, etc.

VBA no es único en Access; lo vamos a encontrar en todas las aplicaciones de Office como
Word, Excel, PowerPoint, Project o Visio, y en programas que no son de Microsoft y tan
diversos como Corel Draw o AutoCad. Dominando los fundamentos de VBA, se podría
desarrollar aplicaciones en cualquiera de esos aplicativos. VBA tiene un entorno de
programación que es semejante para todos estos programas.

VBA para Access VBA para MS Word

VBA para PowerPoint VBA para AutoCAD

180 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Los módulos
Los módulos al igual que las macros son los objetos que se utilizan para aumentar la funcionalidad
de la base de datos.
Un módulo es un conjunto de declaraciones, instrucciones y procedimientos que se almacenan de
manera conjunta como una unidad en los que se guarda el código que va a utilizar VBA. Hay 2
tipos de módulos.
 Módulos generales. - Contienen procedimientos generales que no están asociados
a ningún tipo de objeto, estos modulos se enumeran en el panel de exploración.
 Módulos de Clase. – Los módulos de clases se adjuntan a los formularios o
informes y generalmente contienen procedimientos específicos del formulario o
informe. Los módulos de clases no se enumeran en el panel de exploración.

Actividad 1: Crear nuestro primer archivo vba


Manos a la obra: vamos a crear una nueva base de datos con el nombre Ejercicio01.accdb

Se ingresa el nombre:
Ejericio01.accdb y damos clic
en el botón Crear.

Escuela de Tecnología de la Información 181


Microsoft Office Access 2016

Para acceder a los módulos generales debemos presionar en la Ficha Crear, y luego la
Nacros y codigo, para luego elegir Modulo.

Una vez hecho esto se abre el editor de VBA y nos crea un módulo con el original nombre
de Módulo1.

Este módulo está vacío, salvo la primera Linea: Option Compare Database
Desde la ventana del editor que se ha abierto, presionamos la opción de menú:
Herramientas > Opciones

182 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

En el formulario que aparece activaremos la opción [Requerir declaración de


variables].

Le damos a Aceptar.
¿Qué significa lo que hemos hecho?-
Cuando empecemos a escribir código, veremos que existen unos elementos que se
llaman variables, a los que podremos asignar valores.
Si tenemos activada la opción [Requerir declaración de variables] nos obligará a
declarar las variables antes de poder usarlas. Más adelante veremos que hay variables
que pueden contener Texto, Números, Fechas, Objetos, etc.
Esto significa darle nombre y expresar qué tipo de dato va a contener.
Una vez hecho esto grabamos el módulo dándole al botón Guardar ó a la opción de menú
Archivo, Guardar ó combinando las teclas [Ctrl] + [S]

Aceptamos el nombre por defecto Módulo1 y cerramos la ventana.

Escuela de Tecnología de la Información 183


Microsoft Office Access 2016

Para cerrar la ventana del editor podemos usar Varios caminos:


1. Hacemos clic en el menú Archivo y elegimos Cerrar y volver a Microsoft
Office Access

2. O simplemente usar el botón Cerrar

Ingresando código vba a un formulario


Vamos a crear un nuevo formulario que lo vamos a llamar Saludo. Para poder entender el
funcionamiento de un código vba.

Actividad 2: Creando un formulario, para ingresar código vba


1. Creamos un formulario en blanco y vamos a desactivar el botón del [Asistente
para controles]
2. Nos vamos a la Ficha Diseño, Vistas y hacer clic en Vista Diseño
3. Lo guardamos como Saludo

4. Añadimos una Etiqueta al formulario.

184 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

A esta etiqueta le vamos a aplicar las siguientes propiedades:

a. Utilizando las Propiedades, ponemos a la propiedad [Nombre] de la etiqueta el


valor lblSaludo (Ficha Otras de la hoja de Propiedades) sustituyendo el que
tenía por defecto: Etiqueta1.
b. Desde la Ficha [Todos] le ponemos a la propiedad [Título] el valor Saludo, a la
propiedad [Tamaño de la fuente] el valor 30, y al [Color de texto]
seleccionamos la opción Rojo y a la [Alineación del texto] el valor Centro.

1. Añadimos un Botón y le ponemos en la propiedad [Nombre],


cmdSaludo, en la propiedad [Título], le ponemos el nombre
Saludar

Escuela de Tecnología de la Información 185


Microsoft Office Access 2016

2. Damos clic al Formulario,


verificamos que se visualice el
nombre Formulario en la Hoja
de Propiedades y ponemos a
No las propiedades [Selectores
de registro], [Botones de
desplazamiento] y
Separadores de registro.

3. La propiedad [Centrado automático] la ponemos a Sí, y a la propiedad [Título] el


valor Mi primer código.
Si visualizamos el formulario se verá algo así como esto:

Si presionamos el botón vemos que no pasa nada. Vamos a hacer que cuando se
presione el botón aparezca el mensaje ¡¡¡Hola Mundo!!! en la etiqueta lblSaludo,
sustituyendo su contenido actual que es Saludo.
4. Guardar el Formulario con el nombre: Primer Formulario

Fundamentando los formularios


Windows trabaja con las llamadas Ventanas (formularios). Esas ventanas contienen
objetos, y tanto las ventanas como los objetos pueden mandar unos “mensajes” para
indicar a la aplicación que usa Windows, o al propio Windows que han ocurrido
determinadas cosas. Esos mensajes se llaman Eventos. Por cierto; en realidad muchos de
los objetos, como los botones, también son ventanas.
En nuestro caso tenemos los siguientes objetos:
• Formulario Saludo
• Etiqueta lblSaludo
• Botón cmdSaludo

186 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Cada uno de esos Objetos posee una serie de Propiedades, generan determinados
Eventos y pueden realizar determinadas acciones mediante unos procedimientos propios
que se llaman Métodos.
Por ejemplo, al presionar el botón cmdSaludo (se entiende presionar dar click con el botón
inquierdo del mouse), se genera el evento [Al hacer Clic] (Click). Podríamos capturar ese
evento y aprovecharlo para, por ejemplo, cambiar el texto de la etiqueta lblSaludo.
El texto que aparece en la etiqueta está en la propiedad [Título]; en inglés [Caption].
Ahora la pregunta: ¿dónde y cómo se hace todo eso? Cada formulario, y veremos más
adelante que también cada informe, lleva asociado un módulo especial. Se llama módulo
de clase del formulario.

Actividad 3: Agregar código vba a un formulario


Vamos a ejecutar el procedimiento explicado, cambiar el nombre de la etiqueta al
presionar el botón saludo.
En el modo Diseño del formulario Saludo, seleccionamos el botón cmdSaludo.
Abrimos la Hoja de propiedades y seleccionamos la pestaña [Eventos], y dentro de éstos
el evento [Al hacer clic]. Al poner el cursor sobre él, nos muestra un botoncito con tres
puntos.
Pulsamos en él, y seleccionamos [Generador de código] en la ventana que se nos abre. A
continuación, pulsamos en el botón [Aceptar].

Tras esto nos abrirá el módulo de clase del formulario Saludo, con el esquema de
código correspondiente al evento Clic del botón cmdSaludo:

Escuela de Tecnología de la Información 187


Microsoft Office Access 2016

Crea el siguiente código:


Option Compare Database
Option Explicit
Private Sub cmdSaludo_Click()

End Sub
Lo que ahora nos importa es el conjunto
Private Sub cmdSaludo_Click()
End Sub

Este código se corresponde al procedimiento que recoge el evento Clic del botón. Consta
de varias partes:
Private Sub: Indica que empieza un procedimiento del tipo Sub, más adelante veremos
en detalle qué es esto.
cmdSaludo_Click(): Indica que es el procedimiento al que llama el evento Click del
botón cmdSaludo.
End Sub: Indica el punto donde acaba el procedimiento
Entre esas dos líneas podemos escribir el código que le dirá a Access qué es lo que tiene
que hacer.
Vamos a hacer 2 cosas:
1. Escribiremos en la propiedad [Título] (Caption) de la etiqueta el texto
Hola Perú.

188 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

2. En la propiedad [Título] (Caption) del formulario mostraremos el texto.


Presente.
Debo modificar el texto del código para que ponga:
Option Compare Database
Option Explicit
Private Sub cmdSaludo_Click()
Me.lblSaludo.Caption = "¡¡¡Hola Perú!!!"
Me.Caption = "¡Presente!"
End Sub
Al escribir el texto, se abre una ventana de Ayuda contextual, lo que simplifica en gran
medida la escritura correcta del texto.

Esta ventana te va mostrando las propiedades y métodos. Para seleccionar uno en concreto
podemos utilizar la tecla [Enter], o mejor aún, la tecla [tab] ó de tabulación (es la tecla que
suele estar encima de la de Bloqueo de Mayúsculas).
Me.lblSaludo.Caption = "¡¡¡Hola Perú!!!"
Lo que hace es pones el texto ¡¡¡Hola Mundo!!! en la etiqueta lblSaludo. Las
comillas son para indicar a VBA que lo que hay dentro es un texto.
Me.Caption = "¡Presente!"
Pone el texto ¡Aquí estoy!en el título del formulario.
Me es el propio formulario.
Si nos fijamos en la sentencia Me.lblSaludo.Captionestá indicando la propiedad Caption
del objeto lblsaludo del formulario actual.
Fijese que cada objeto ó propiedad está
separada por un punto. Hablaremos más
de esto.
Cerramos la ventana de edición del
código, y si hemos seguido
correctamente los pasos, al presionar el
botón formulario debería tener un
aspecto semejante a éste:

Escuela de Tecnología de la Información 189


Microsoft Office Access 2016

Entorno de desarrollo
El área de desarrollo VBA es parecida a todos los entornos como el de Excel, Word,
PowerPoint, etc. Este entorno recibe el nombre de herramienta IDE, que significa algo así como
Entorno de Desarrollo Integrado. En el idioma inglés, se escribe Integrated Development
Environment.
Este entorno consta de una serie de ventanas y comandos, algunos de los cuales se muestran en
el siguiente gráfico

Interrumpir
Ejecutar Macro

A continuación, explicamos en detalle las características de la ventana vba de Access.

• Ventana de Código
Es la ventana en la que se escribe todo el código que va a gestionar nuestra aplicación.
Podemos seleccionar el módulo que se mostrará en cada momento, por ejemplo,
seleccionándolo con un doble clic en la ventana del Explorador del Proyecto.
En la parte superior de la ventana de código se encuentra dos cuadros combinados uno
de ellos es el Selector de objetos y el otro el selctor de procedimientos

190 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

• Ventana del Explorador del Proyecto


La ventana del proyecto nos muestra una lista de todos los objetos que poseen módulos.
Entre ellos tenemos los módulos de Formularios e Informes, los módulos estándar, y
los módulos de clase.
En esta primera etapa del curso vamos a trabajar con los módulos asociados a
formularios y los módulos estándar.
Si en la ventana del proyecto hacemos doble clic
sobre cualquiera de los objetos que aparecen,
abriríamos su módulo correspondiente.
Por ejemplo, si en la base de datos correspondiente
al gráfico presionáramos (doble clic) el formulario
Form_PrimerFormulario nos abriría el módulo
asociado al formulario frmPrimerFormulario.
Si presionamos sobre Funciones Marcianas nos
abriría el módulo estándar Funciones Marcianas y
si presionáramos sobre CMarciano, nos abriría el
módulo de clase CMarciano.
Fijaros que el icono asociado a cada módulo
cambia en función del tipo que sea.
• Ventana Inmediato
Esta es una ventana desde la que podemos ordenar que se ejecuten determinadas
órdenes, o imprimir desde el código determinados valores para efectuar
comprobaciones. Recibe también el
nombre de Ventana de
Depuración.
Su mayor utilidad es para la
depuración del código, es decir para
efectuar comprobaciones de
errores. De hecho, es un objeto que
recibe el nombre de Debug.

Escuela de Tecnología de la Información 191


Microsoft Office Access 2016

• Ventana Locales
Esta es una ventana que también sirve
para la comprobación y hacer el
seguimiento de los valores que van
tomando determinados parámetros,
variables, etc. durante la ejecución del
código.
Es por eso que, comparte la misma
función de depuración con la ventana
Inmediato.

• Ventana Propiedades
En esta ventana podemos ver las propiedades de los
diferentes objetos que intervienen en el proyecto, al estilo
de la ventana de propiedades del Formulario ó Informe
en el modo diseño.
Los módulos, como Objetos de Access, también tienen
sus propiedades.

Existen otras ventanas no comentadas aquí, pero que no dejan de


ser importantes. Entre ellas podemos destacar la Ventana del Examinador de Objetos, o la
Ventana de Inspección, de las que hablaremos más adelante.

Actividad 4: Conociendo la ventana Inmediato


Creamos una nueva base de datos a la que llamamos Ejercicio02.accdb
Vamos a Módulos y presionamos en el botón [Nuevo].
Nos creará un módulo con el original nombre de Módulo1.

¿Identificas lo que se ha explicado en los puntos anteriores?


Si por casualidad no apareciera la ventana Inmediato, haz lo siguiente:
Vete al menú Ver y presiona en la opción [Ventana Inmediato]; o más fácil aún,
presiona la combinación de teclas [Ctrl] + [G].
Vamos a mantener las ventanas de Código, la de Inmediato y la del Explorador
del proyecto. Las otras, si te molestan, puedes cerrarlas. Más tarde las podrás abrir
con los botones o las opciones de menú correspondientes (Menú Ver > y seleccionar
su opción).
¿Para qué sirve la ventana Inmediato? Vamos a hacer un ejemplo.
Pincha con el cursor en ella, escribe lo siguiente:

192 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Print 4 + 5 y dale a la tecla [Enter] , como respuesta obtendremos:


Escribe 9 en la siguiente línea.

Escribe: ? 4 + 5 más [Enter]


Y vuelve a escribir la cifra 9

Escribe: ? 4 * 5 más [Enter]


Respuesta obtenemos: 20

Ahora vamos a hacerlo un poco más


complicado
a = 2: b = 4: Print a * b
Escribe 8 en la siguiente línea.

Escribamos ahora:
? a^b y aprieto [Enter]?
La respuesta es: 16 que es 2 elevado
a4

Si ahora presiono la tecla de la barra de menú que tiene la forma de un


cuadradito azul y que en el gráfico la identifico con Interrumpir la
ejecución y reiniciar, si vuelvo a escribir.

? a^b como resultado me da 1.


Pensemos un poco sobre estos sorprendentes resultados. Tras la primera línea
a = 2 : b = 4 : Print a * b

Parece que Access recuerda que existe “algo” llamado a, que se le ha dado el valor 2 y
otro algo que lo llmamos b que tiene el valor 4, como se demuestra tras el resultado de
escribir la segunda vez
? a^b
Pero resulta que tras presionar el botón de Reiniciar (el cuadradito
azul) resulta que Access se equivoca y da como resultado 1.

Pues no, Access no se ha equivocado. El exponente b tiene el valor


0, y cualquier número elevado al exponente 0 da como resultado 1.

En realidad éste no es un gran ejemplo, ya que estaríamos en el


caso singular de 0 elevado a cero, que no está definido en el campo
de los números reales.

Vamos a hacer ahora otro experimento. Escribimos en la ventana Inmediato:


a = "2" : b = "4" : ? a + b

Si se te ha ocurrido que sería 6 te puedo decir que estás equivocado.


Si tu respuesta ha sido 24, has acertado.

Escuela de Tecnología de la Información 193


Microsoft Office Access 2016

Ingresar:
a = "2" : b = "4" : ? a + b,
Resultado: 24?

Observemos los datos ingresados: a = "2" y b = "4"


La cifra 2 está entre 2 comillas, lo mismo que la cifra 4.

Esto hace que VBA considere el 2 y


el 4, no como números, sino como
texto, también llamado cadena. Tras
esto el operador + no efectúa una
suma numérica, sino que enlaza dos
cadenas de texto. Si enlazamos la
cadena "2"con la cadena "4", nos da
la cadena "24".

En resumen, que con números hace la operación de Suma numérica y con cadenas de
texto la operación de enlazar cadenas.

Escribamos lo siguiente:
Print 2,4 * 2

Imprime:
Que nos imprime: 2 8

¿Por qué no nos ha dado como


resultado 4,8

De toda la vida la operación 2,4 * 2 ha dado como resultado 4,8

En una sentencia Print, cuando encuentra una coma entre dos valores, intercala
una tabulación.
Probemos ahora:

Print 2.4 * 2 y nos da 4,8

Ahora lo hace bien pero ¿no


hemos quedado que el separador
decimal es el punto?.

¿Por qué ahora me muestra el resultado decimal con una coma como separador?

Esto tiene que ver con sistema operativo Windows, en un apartado de configuración
regional.

194 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Vamos a dejar de equivocarnos y sigamos experimentando. Escribimos en la ventana


Inmediato lo siguiente:

a = 2 : b = "Patrias" : Print a + b

Este error que se muestra a continuación es debido a que no se puede sumar variables
de diferentes tipos texto con número.

¿Algo de lógica, es que no podemos sumar un número con un texto?

Le estamos diciendo a VBA que sume un número con un texto, y lógicamente se queja.
Cambiemos la línea

a = "2" : b = " Patrias" : ? a + b

Ahora sí imprime bien


2 Patrias

Al poner el 2 entre comillas, lo hemos cambiado al modo texto y entonces ha funcionado.


Si hacemos

a = "Dos" : b = " Patrias" : ? a + b

Nos imprimirá
Dos Peras

Tenemos “algo” llamado que le da lo mismo ser Número que Texto.

Escuela de Tecnología de la Información 195


Microsoft Office Access 2016

Variables
Una variable es un espacio de memoria usado para guardar un valor que corresponde a un tipo
de dato soportado por el lenguaje de programación, en el caso de nosotros VBA. Una variable
es representada y usada a través de una etiqueta (un nombre) que le asigna un programador o
que ya viene predefinida.
Haciendo referencia a la variable se puede devolver el dato al que apunta e incluso puede ser
modificado.
Las constantes son parecidas a las variables, sólo que su contenido se le asigna en el momento
de que son declaradas, posteriormente no es posible cambiarlo.
Hay tres argumentos que debemos considerar en una variable
 El nombre de la variable
 El tipo de dato al que apunta
 El ámbito en el que es visible.

Construcción del nombre de una variable (o constante).


Nombre
El nombre de una variable está compuesto por un conjunto de caracteres ASCII. Para su
construcción hay que ceñirse a las siguientes reglas:
• No se pueden usar caracteres que tienen un uso especial en Access, como son el Punto
“.”, los paréntesis “(“ “)”, la barra vertical “|”, o los caracteres que se pueden utilizar
como operadores; entre ellos
+ - / * < >.
• Una variable debe empezar por una letra ó por el signo de subrayado (guión bajo)
Estos nombres deberían ser correctos, lo que no quiere decir que sean aconsejables.
A123456 _Jechu R2P2
• El nombre de una variable no puede tener espacios en blanco.
Por ejemplo, no sería válido el nombre Apellidos Nombre (contiene con un espacio
en blanco entre el nombre y apellido).
En cambio, sí sería válido Apellidos_Nombre ó ApellidosNombre.
• Una variable puede terminar con un carácter de declaración de tipo
%&!#@$
Estos caracteres sólo se pueden declarar al final del nombre de la variable.
Nota: Estos caracteres también se pueden usar para declarar el tipo de dato que
devuelve una función.
Por ejemplo, esta cabecera de función sería válida:
Public Function Nombre$()
Que sería equivalente a:
Public Function Nombre() As String

196 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

• No se puede usar como nombre de variable una palabra reservada de VBA.


Por ejemplo, no se pueden usar String, integer, For, If como nombres de variable.
• El nombre de una variable puede tener hasta 255 caracteres (aunque no es
recomendable usar tantos caracteres)
• No esta permitido declarar dos variables con el mismo nombre dentro del mismo
procedimiento o en la cabecera de un mismo módulo.

Conociendo las variables


Pulsamos con el cursor en la ventana de Código y escribimos lo siguiente:
Option Compare Database
Option Explicit
Const Pi As Double = 3.14159265358979

¿Qué significa esta última línea?


Se declara una Constante llamada Pi del tipo Double (un valor numérico de coma
flotante de 8 bytes) y le asignamos el valor de Pi. Cuando declaramos Pi como
Constante nos impide que en otro punto del módulo podamos hacer algo así como
Pi = 25.36
¿Por qué? -
Porque el valor de una constante es en definitiva Constante, y no se puede cambiar-
Cuando se declara un valor como una constante, no permite midificación.

Ese algo, en contraposición a una constante, se llama Variable.

Escuela de Tecnología de la Información 197


Microsoft Office Access 2016

Para declarar variables se podría hacer algo así como


Dim Precio As Currency
Dim Nombre As String

Declaracion de Variables
Tipos de datos

Además de las Variables hay otra serie de elementos que manejan datos, como son las
Constantes, Procedimientos Sub y procedimientos Function que son capaces de manejar datos
de distintos tipos, e incluso las funciones que devuelven datos.
Pero ¿qué tipos de datos podemos manejar? Y ¿qué características tienen? Hay varios tipos de
datos.
Entre ellos podemos definir
 Numéricos Booleanos Fecha / Hora
 De texto (cadenas) Variant
 De objeto
 Registros de datos definidos por el usuario

Datos numéricos
Existen dos familias de datos numéricos:
 Datos numéricos de número entero
 Datos numéricos de coma flotante.

Boolean Verdadero o Falso, variable lógica

Byte Variable de 8 bits que puede almacenar valores de 0 a 255. Es muy


útil para almacenar datos binarios.

Double Variable numéica de 64-bit de coma flotante que se utiliza cuando se


necesita gran precisión. Pueden variar desde-
1.79769313486232E308 a -4,94065645841247E-324 para valores
negativos y de 4,94065645841247E-324 a 1.79769313486232E308
para valores positivos.

Integer El Integer o entero es un número de 16 bits que puede oscilar entre -


32768 y 32767. Es considerado en variables numéricas enteras.

Long El Long es un número de 32 bits que puede variar entre -


2.147.483.648 y 2.147.483.647. Estas variables sólo pueden contener
valores enteros.

198 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Decimal Es un subtipo de dato Variant, puede almacenar valores que va desde


-79.228.162.514.264.337.593.543.950.335 hasta
79.228.162.514.264.337.593.543.950.335 si el valor no contiene
cifras decimales. Tiene una precisión de hasta 28 decimales con
valores desde -7,9228162514264337593543950335 hasta
7,9228162514264337593543950335.

Single Dato numérico de 32 bits que va desde-3.402823E38 a -1,401298 E-


45 para valores negativos y desde 1,401298E-45 a 3.402823E38 para
valores positivos. Usado para trabajar con números fraccionarios.

String El String se utiliza generalmente como un tipo de longitud para una


cadena de texto.

Currency Variable de tipo Moneda entero. Se puede escalae por un factor de


10.000 para agregar cuatro dígitos a la derecha del punto decimal.
Permite hasta 15 dígitos a la izquierda del punto decimal, resultando
en un rango de aproximadamente -922.337.000.000.000 a
+922.337.000.000.000.

Date El Date almacena un valor numérico con formato especial que


representa tanto la fecha como la hora. El Date acepta la fecha o la
hora, o ambas cosas.

Object Esta variable puede señalar a cualquier tipo de dato, incluso cualquier
instancia de objeto que la aplicación reconozca. Es usado Object
cuando en el tiempo de compilación no se conoce a qué tipo de datos
puede señalar la variable.

Variant Esta viable almacenan valores numéricos y no numéricos. Son los


más flexible de todos los tipos disponibles, ya que almacena valores
muy grandes de casi cualquier tipo (coincide con el tipo de datos
numérico doble).

Prefijo

Por prefijo entenderemos el conjunto de letras que “es aconsejable” poner delante del
nombre de una variable, para indicarle a la persona que escribe, ó lee, el código, el tipo de
dato que contiene una variable.
La ventaja de utilizar estos métodos se valora inmediatamente. Así, sólo con leer que una
tiene como nombre lngDiasLaborados podríamos deducir que es una variable de tipo
Long que probablemente sirva para manejar los días trabajados.
Si en una línea de código aparece el nombre cmdDatos, podríamos deducir que es un botón
de comando que probablemente sirva para salir de un formulario u otro sitio.
Igualmente, lblResulta es una etiqueta y txtNombre es un cuadro de texto. Es una forma
de identificar que objeto se esta usando.

Escuela de Tecnología de la Información 199


Microsoft Office Access 2016

Repito que los prefijos, int, lng, txt, lbl, cmd, etc. no modelan el tipo de contenido de la
variable, sino que sirven como información adicional para la persona que escribe ó lee el
código, para un entendimiento mas accesible.

Ámbito ó Alcance de las Constantes y variables

Algo tan simple, y a la vez tan complejo, como los lugares en los que VBA puede “Ver”, a una
variable ó constante lo que equivale a que se entera que existen, las constantes y variables que
declaramos. Más adelante veremos que todo esto aún se puede generalizar para otros elementos
de la programación.
En el punto anterior hemos escrito. Pi en la ventana Inmediato y no ha pasado nada.
Al declarar en la cabecera de un módulo una variable con Dim, o una constante con Const
hacemos que esa variable, y esa constante sólo sean visibles desde dentro del código del módulo.
Para que puedan ejecutarse desde fuera es necesario ponerles la palabrita Public. Esto se hace de
forma diferente para las Constantes y Variables.
En el caso de las constantes se pone Public delante de la palabra Const. En el caso de las
variables Public se usa en vez de Dim.
El código del módulo quedaría así:
Option Compare Database
Option Explicit
Public Const Pi As Double = 3.14159265358979
Public Precio As Currency
Public Nombre As String

200 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Si ahora pulsamos con el ratón en la ventana Inmediato, escribimos ? Pi y pulsamos la tecla


[Enter] Nos escribirá 3,14159265358979.
Haciendo otro prueba
Escribe en la ventana Inmediato Pi = 5.2114 y
pulsa la tecla [Enter].
Simplemente que estamos intentando asignar un
valor a una constante que ya lo tenía.
Una constante sólo puede tomar el valor una vez,
“Hola Peru”. Por definición una constante no
puede ser modificado en el tiempo.
En cambio, las variables pueden cambiar de valor en cualquier momento de la ejecución del
programa.

Conociendo los tipos de variables


Dim
Si la instrucción Dim se utiliza para declarar una variable en la cabecera de un módulo, esa
variable sólo será “visible” por los procedimientos que estén dentro de ese módulo.
De forma semejante, si la instrucción Dim se utiliza dentro de un procedimiento, esa variable
sólo podrá ser vista por el código del interior del procedimiento.

Private
La instrucción Private se suele utilizar para definir de forma explícita que una constante,
variable o procedimiento sólo van a ser visibles desde dentro de un módulo.
Se suele utilizar para la declaración de variables y constantes en las cabeceras de módulos, así
como para definir el alcance de los procedimientos de ese módulo.
Dentro de un procedimiento se usa Dimen vez de Private.

Public
La instrucción Publicse suele utilizar para definir que una constante, variable o procedimiento
van a ser visibles desde cualquier parte de la aplicación.
Se suele utilizar para la declaración de variables y constantes en las cabeceras de módulos, así
como para definir el alcance de los procedimientos de ese módulo.
Por ello no es factible declarar una variable como Publicdentro de un procedimiento.
Sí se puede en cambio, declararla en la cabecera de cualquier módulo estándar o de clase.
Nota: Una aclaración respecto a los elementos declarados en un módulo de clase.
Si declaramos una variable, constante ó procedimiento como Publicen un módulo de clase, por
ejemplo, en un formulario, para poder usarlo hay que hacerlo a través de una Instancia de ese
módulo de clase.

Escuela de Tecnología de la Información 201


Microsoft Office Access 2016

Aquí han aparecido cosas nuevas; por ejemplo, la palabra Currencyy la palabra String. En el
ejemplo, con Currency, hacemos que la variable Preciosea del tipo Moneda; un tipo de datos
“aparentemente” de coma flotante creado para manejar datos monetarios sin errores de
“Redondeo”.
Puedes obtener ayuda sobre estos tipos de datos poniendo el cursor, por ejemplo en cualquiera
de sus nombres, por ejemplo Currencyy pulsando [F1]. Con String hacemos que la variable
Nombre sea tratada como una variable de tipo Cadena, que permite manejar cadenas de
Caracteres.

En realidad, podríamos haber hecho las declaraciones sin especificar su tipo, pero,
por el momento sin más explicaciones, esto genera código menos optimizado e
incluso puede dar problemas a la hora de encontrar posibles errores.
Por ejemplo, podríamos haber hecho:
Public Const Pi = 3.14159265358979
Public Precio
Public Nombre

En realidad, el declarar así una variable ó constante, equivale a haber hecho esta otra
declaración
Public Const Pi As Variant = 3.14159265358979
Public Precio As Variant
Public Nombre As Variant

Procedimientos y Funciones
Procedimientos Sub
Procedimientos Function o Funciones

Procedimientos Sub
Un procedimiento Sub llamado también Procedimiento es un conjunto de acciones u
operaciones que realizan determinadas tareas.
Suele estar contenido entre las expresiones Sub Nombre y EndSub
El término Sub puede ir precedido de otras expresiones, por ejemplo para delimitar el ámbito en
el que puede ser llamado el procedimiento.
Al procedimiento se le pueden pasar una serie de datos para que se use internamente. A estos
datos se les llama Parámetros ó Argumentos.
Si en la ventana de código escribimos la palabra Sub, le ponemos encima el cursor y
presionamos la tecla [F1], Access nos mostrará la ayuda aplicable a Sub.

202 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

En la ayuda podemos entre otras cosas podemos ver:

[Private | Public | Friend] [Static] Sub nombre [(lista_argumentos)] [instrucciones]


[Exit Sub]
[instrucciones]

End Sub

El cuadro muestra la estructura de un procedimiento Sub. Los elementos que están entre
Paréntesis Cuadrados [ ] son opcionales.
Cuando hay varias palabras separadas por Barras Verticales |, nos está indicando que podemos
seleccionar una de ellas.
Según esto serían igual de válidas las sentencias:

Sub Procedimiento_01()
End Sub

Public Sub Procedimiento_02()


End Sub

Private Sub Procedimiento_03()


End Sub

Public Sub Procedimiento_04(Argumento1 As Double)


End Sub

Actividad 5: Creando un procedimiento sencillo

En la base de dato abierta crear un modulo


En el módulo que hemos creado vamos a escribir el siguiente código:
Public Sub Circunferencia()
Dim Radio As Single Radio = 2.5
Debug.Print "Circunferencia = " & 2 * Pi * Radio
Debug.Print "Círculo = " & Pi * Radio ^ 2 & " m2"
End Sub

Escuela de Tecnología de la Información 203


Microsoft Office Access 2016

Ahora, en la ventana Inmediato escribe Circunferencia y presiona [Enter]


Efectivamente, en esa ventana se escribirá:
Circunferencia = 15,7079632679489
Círculo = 19,6349540849362 m2

Fijese que mientras lo escribes se les muestra una “Ayuda en línea” que les permite
seleccionar lo que quieres escribir.

El objeto Debug es propia ventana Inmediato. El método Print imprime lo que se ponga a
continuación. Lo primero que imprime es una cadena, en nuestro caso "Circunferencia = "
A continuación vemos el operador &seguido de la expresión 2 * Pi * Radio Este operador
hace de “Union” entre dos expresiones.
En este caso enlaza la cadena primera con el resultado de la operación 2 * Pi * Radio
Dando como resultado Circunferencia = 15,7079632679489
Lo mismo es aplicable a la siguiente línea.
Con End Sub se acaba el código del procedimiento.

204 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

- Esto está bien, pero sólo puede imprimir los datos de la circunferencia de radio 2,5,
lo que no es gran cosa.

Vamos a modificar el procedimiento de la siguiente manera:


Public Sub Circunferencia (Radio As Single)
Debug.Print "Circunferencia = " & 2 * Pi * Radio
Debug.Print "Círculo = " & Pi * Radio ^ 2 & " m2"
End Sub

Observe que la declaración de la variable Radio ya no se hace en el cuerpo del


procedimiento, sino en su cabecera. Además, ha desaparecido la línea en la que
asignábamos el valor del radio.
¿Y cómo se utiliza esto?
Vamos a modificar la forma como llamamos desde la ventana Inmediato al procedimiento,
y escribimos
Circunferencia 5.5

Actividad 6: Conociendo los ámbitos de las variables


Abrimos un archivo nuevo de Access, clic en Crear Múdulo
Vamos a crear el procedimiento ámbito_variables()

Escuela de Tecnología de la Información 205


Microsoft Office Access 2016

Vamoa a crear otro Modulo: Sub Ambito_variables2(), solo copiamos el código


de MsgBox.

Ejecutamos este modulo, y nos mostrará el siguiente error:

Esto es debido a que no reconoce la variable creada en el modulo anterior,


procedemos a copiar la definción de variables dentro de:

206 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Ejecutamos el procedimiento y veremos que si ejecuta:

Ahora veremos el alcance de variables para un proyecto


Para ello el cambiamos el tipo de variable definido como Dim a Public.
Creamos el procedimiento Sub Ambito_variables3(). Copiamos el texto de
MsgBox, cambiamos algunos detalles internos del MsgBox

Escuela de Tecnología de la Información 207


Microsoft Office Access 2016

Ejecutamos desde el procedimiento Sub Ambito_variables3()

El ejercicio debe de correr sin problemas, cuando damos clic al botón ejecutar.

Guardamos y cerramos

Funciones
Otro de tipos de procedimientos son los llamados Function, que al igual que los procedimientos
Sub están delimitados por Functiony End Function.
La principal diferencia entre un procedimiento Sub y un procedimiento Function es que este
último devuelve un valor.
Entre los dos delimitadores se escribe el código que va a realizar las tareas que deseemos, y al
final devolverá algún valor.
Si vamos a la ventana Inmediato, escribimos Function, ponemos el cursor en lo escrito y
presionamos [F1], entre otras cosas nos aparece la sintaxis de su declaración:

208 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

[Public | Private | Friend] [Static] Function nombre [(lista_argumentos)] [As tipo]


[instrucciones]
[nombre = expresión] [Exit Function] [instrucciones]
[nombre = expresión]
End Function

Vemos que para declarar una función empezaríamos, por ejemplo poniendo la palabra Public (si
quisiéramos que la función sea accesible desde cualquier parte de Access) a continuación la
palabra Function, después abriríamos un paréntesis y pondríamos los parámetros que
necesitáramos, cerraríamos el paréntesis y finalmente pondríamos el tipo de datos que
devolvería la función.
Supongamos que quisiéramos escribir una función que calcule mediante pitagoras el tercer lado.
Si ya la tuviera declarada en otro módulo este paso no sería necesario. El código sería el
siguiente:

Option Compare Database


Option Explicit

Public Function TercerLado (LadoA As Single, LadoB As Single) As Single


TercerLado = (LadoA * LadoA + LadoB * LadoB) ^ (1 / 2)
End Function

Vamos a probar la función. Para ello escribiremos en la ventana Inmediato.


? TercerLado(3,4)

Escuela de Tecnología de la Información 209


Microsoft Office Access 2016

Tras completar la expresión, y darle a [Enter] nos escribirá: 5 que es la longitud del TercerLado
o la Hipotenuza

Actividad 7: Funciones en Formularios


Vamos a hacer una pequeña y elemental calculadora que nos permita sumar dos cifras.
Cerramos los módulos y creamos, ó abrimos un formulario en modo diseño.
Este formulario no lo
enlazamos con ninguna tabla ni
consulta. Ahora vamos a
deshabilitar el Asistente para
controles.
En la barra de controles,
pulsamos en la “Varita mágica”
para deshabilitarla. como se
indica en el gráfico, para que
quede deshabilitada.
Ponemos dos cuadros de texto en el formulario.
Por defecto, Access les pondrá un nombre semejante a Texto1 y Texto2. Vamos a cambiar
esos nombres.

Abrimos la hoja de propiedades, les recuerdo Ficha Diseño > Cinta Herramientas, ó
pulsando las teclas [Alt] + [Enter].

210 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

En la ficha [Todas] modificamos las propiedades de la etiqueta Resultado, como se


muestra en el grafico adjunto.

OBJETO PROPIEDAD NOMBRE

Cuadro de texto Nombre txt1

Cuadro de texto Nombre txt2

Boton de Comando Nombre cmdCalcular

Label Nombre lblResultado

La grafica queda de la siguiente manera

Damos clic al botón de Comando, seleccionamos en la [Hoja de Propiedades] pulsamos


en la pestaña Eventos.
Seleccionamos el cuadro
correspondiente a “Al hacer clic” y
pulsamos en el pequeño botón con
tres puntos que nos aparece. (Debe
estar desactivado el botón
Asistente para Controles )

A continuación, veremos una


pequeña ventana que nos permite
seleccionar entre:

Escuela de Tecnología de la Información 211


Microsoft Office Access 2016

 Generador de expresiones
 Generador de macros
 Generador de código

Lógicamente seleccionamos Generador de código, y pulsamos [Aceptar] ó doble clic en


[Generador de código].
Es el procedimiento que captura el evento Clic del botón cmdSumar.
Escribimos lo siguiente, dentro del procedimiento
Private Sub cmdSumar_Click()

Me.lblResultado.Caption = txt1.Value + txt2.Value

End Sub
Cuando se presione sobre el botón cmdSumar (evento clic) pon como título de la etiqueta
lblResultado(propiedad caption) el resultado de sumar el contenido (propiedad Value) del
cuadro de texto txt1y del cuadro de texto txt2.
El control Cuadro de texto es un TextBox y la Etiqueta un control Label. Bueno, grabamos
el código y el formulario y lo abrimos.
Nos quedará algo así como

212 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Si ahora introducimos, por ejemplo el valor 2 en el primer cuadro de texto, el valor 3 en


el segundo y presionamos el botón Sumar, nos llevamos una pequeña sorpresa:

¿Qué ha ocurrió?
¿Por qué en vez de un 27 nos da 1512?
Esto quiere decir que si ponemos texto nos va a dar un resultado de concatenación de dos
textos, probando:

Private Sub cmdSumar_Click()

Me.lblResultado.Caption = Val(txt1.Value) + Val(txt2.Value)

End Sub
Y ejecutamos

Escuela de Tecnología de la Información 213


Microsoft Office Access 2016

Entonces concluimos en lo siguiente después de desarrollar el ejercicio:


Primero deberíamos convertir los valores contenidos en los cuadros de texto a valores
numéricos.
Para efectuar esa conversión existe una función de VBA llamada Val(Valor)
Si escribimos en la ventana inmediato la palabra Val, ponemos en ella el cursor y
presionamos [F1] nos aparece la ayuda de la función Val.
Con la siguiente información:
Devuelve los números contenidos en una cadena como un valor numérico del tipo
adecuado.
Sintaxis
Val(cadena)
El argumento obligatorio cadena es cualquier expresión de cadena válida.

Probando los tipos de variables


Procedemos a probar datos tipo fecha que maneja Access, creamos un Módulo con el
nombre de Public Sub TiposDatoFecha().

214 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Ahora probamos el tipo de datos Boolean conocido como boleano


El tipo Boolean es un dato adecuado para manejar datos de tipo Sí / No, True / False.
Sorprendentemente el tipo Boolean su tamaño es de 2 Bytes. El prefijo para un boleano
es bln.
A una variable Boleana se le puede asignar un valor de varias formas

Nota: La instrucción CInt (blnDatoBoleano) convierte a un valor Entero el contenido de


la variable blnDatoBoleano.
Para asignar a una variable booleana a falso le podemos hacer de cualquiera de las dos formas
False ó 0.
Para asignarle a verdadero lo podemos hacer pasándole directamente a True ó cualquier
valor numérico diferente de Cero, incluso aunque sea de coma flotante.
Si convertimos el contenido de una variable Boleana que contenga True a un valor
numérico, nos devolverá -1.

Escuela de Tecnología de la Información 215


Microsoft Office Access 2016

Estructuras de Control.
Las estructuras de control son fragmentos de código en cualquier lenguaje de programación que
nos permiten tomar decisiones en base a unos datos entregados, o repetir procesos (bucles)
mientras sucedan determinadas condiciones en los parámetros controlados por el código.
Estas estructuras vienen determinadas por una serie de instrucciones, entre las que
mencionaremos:
Estructuras de Decisión
 If . . . . Then
 If . . . . Then . . . . Else
 IIF
 Select . . . . Case
Estructuras de Repetitivas o de Bucle
 While
 Do Loop While
Indeterminados
 Do Loop Until
 Until
 For . . . Next
 For - Each Determinados

Estructuras de Decisión.
La Instrucción If
Permite ejecutar un conjunto instrucciones de código, en función de que el valor de una
condición sea esta Verdadera o Falsa True/ False.
PRIMERA FORMA BASICA DE LA CONDICIONAL

If condición Then [instrucciones si la condición es True]

SEGUNDA FORMA BASICA DE LA CONDICIONAL


If condición Then
[instrucciones si la condición es True]
End If

TERCERA FORMA BASICA DE LA CONDICIONAL

If condición Then
[instrucciones para el caso de que condición sea True]
Else
[instrucciones para el caso de que condición sea False]
End If

216 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Para poder utilizar la condición nos valemos de los operadores de comparación:


= Igual a
< Menor que
<= Menor ó igual que
> Mayor que
>= Mayor ó igual que
<> Diferente que

Ejemplo:

Con el InputBox solicitamos el ingreso de datos tanto para el Dividendo como el divisor
Ejecutamos y vemos las pantallas que nos muestra:

Ahora visualizamos el resultado

Escuela de Tecnología de la Información 217


Microsoft Office Access 2016

Supongamos que queremos hacer una comparación de dos números, saber cual es el mayor,
procedemos a crear otro procedimiento.
Ejemplo:

Si ejecutamos el código visualizaremos

El resultado obtenido:

La Función IIf
Es una función similar o parecida a la condicional If . . Then . . Else
Devuelve uno de entre dos valores, en función del resultado de una expresión: Su sintaxis es
IIf(condición, ValorTrue, ValorFalse)
Se evalúa la expresión y si es True, devuelve ValorTrue; caso contrario devuelve ValorFalse

218 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Aca un ejemplo de como trabaja


Public Function EsPar(ByVal Numero As Long) As Boolean
EsPar = IIf(Numero Mod 2 = 0, True, False)
End Function
Si escribimos lo mismo con la función IF, el código seria el siguiente:
Public Function EsPar2(ByVal Numero As Long) As Boolean
If Numero Mod 2 = 0 Then
EsPar2 = True
Else
EsPar2 = False
End If
End Function

Actividad 8: Ejemplo de condicional mas compleja


Vamos a ingresar tres números y que mediante un mensaje me salga en orden descendente
de mayor a menor
Escribimos el siguiente código

Si observa el código al final utilizo el carácter “&” que me permite poder concatenar
textos, como se observa en el MsgBox.

Escuela de Tecnología de la Información 219


Microsoft Office Access 2016

Ejecutamos el programa

Como se puede observar el pregroma se ejecuta de manera correct, podemos probar para
otros valores.

La Instrucción Select Case


Con la instrucción If . . Then, es posible crear estructuras de decisión complejas como hemos
sabemos, pero existe otra herramienta también poderosa que simplifica este proceso es la
instrucción SelectCase que permite crear un código más ordenado y claro.
Si vemos la ayuda de Acces podemos leer que la sintaxis de Select Case es:
Select Case expresión_prueba [Case lista_expresion-1 [instrucciones-1]] ...
[Case lista_expresion-2
[instrucciones-2]] ...
--------
[Case lista_expresion-n
[instrucciones-n]] ...
[Case Else [instrucciones_else]] End Select

expresión_prueba debe ser una variable, o expresión que devuelva una cadena de texto ó un
número.
lista_expresion son una serie de valores, del tipo que da expresión_prueba.
Si expresión o la condición coincide con alguno de los valores de lista_expresion, se ejecutarán
las instrucciones que existen a continuación, hasta llegar al siguiente Case, ó End Select.

220 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

A partir de este punto se saldría de la estructura o terminaría el proceso y se seguiría con el


siguiente código, después del End Select.
Si en caso no se cumpliera la condición de ninguno de los Case lista_expresion, existe un
famoso Case Else, donde se ejecutarán las donde no se cumple con las condiciones.

Actividad 9: Ejemplo de instrucción Select Case


Supongamos que queremos crear una función que nos cualifique el tipo de los pagarés de
los clientes en función del número de días de pago:.
Se ingresará el número de días que el cliente debe a la empresa. Si la dependiendo del
número de días, deberá devolver la cadena “Pago vencido”. Si es del día de hoy “Vence
hoy”, si quedan entre 1 y 3 días “Cobro inmediato”, si menos de 31 días “Corto Plazo”
si son menos de 181 días “Medio Plazo” y si es mayor “Largo Plazo”

Ejecutamos el programa:

El resultado será: Guardamos y finalizamos

La instrucción case también se puede aplicar a una cadena de texto, he aquí un pequeño
ejemploo.

Escuela de Tecnología de la Información 221


Microsoft Office Access 2016

Vamos a suponer que queremos hacer una clasificación de los alumnos de una institución
educativa en 4 grupos, en función de su apellido.
Aquéllos cuyo apellido empiece por una letra comprendida entre la A y la D pertenecerán al
grupo 1, entre la E y la L al grupo 2, entre la M y la P al 3 y entre la Q y la Z al 4.
Public Sub GrupoAlumno()
Dim
Apellido = Trim(UCase(Apellido))
Select Case Apellido
Case Is < "E" : Grupo = 1
Case "E" To "LZZZZ" : Grupo = 2
Case "M" To "PZZZZ" : Grupo = 3
Case "Q" To "TZZZZ" : Grupo = 3
Case Is >= "U" : Grupo = 4
End Select
End Sub
Estructuras Repetitivas
Las Instrucciones WHILE …WEND
Este bucle funciona de la siguiente manera. Cuando se va a ejecutar, evalúa una expresión o
condición y compreba que esta da resultados positivos. Si es así, ejecuta el cuerpo del bucle (las
sentencias que siguen hasta el WEND), en caso contrario se sale. Podemos ver la sintaxis a
continuación.
While (condición)
Sentencias
Sentencias
Wend
Vamos a crear un ejemplo sencillo entender mejor como funciona este bucle, vamos a crear un
pequeño ejemplo que el programa se ejecute mientras el numero sea menor a 13

Public Sub Uso_While2()


Dim a As Integer
a=0
While (a < 13)
a = InputBox("Ingresa un número entero, please", "Solicita un dato numérico")
Wend
End Sub

222 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Las instrucciones Do…Loop


El bucle DO...LOOP es muy versátil. Con el se pueden crear gran variedad de bucles distintos,
bucles que comprueben una condición antes de ejecutar el bucle una vez, después de la primera
ejecución y con conbinaciones con mientras (WHILE) que se cumple una condición o hasta
(UNTIL) que esa condicion se cumpla. la sintaxis de esta estructura es la siguiente:

Do
[instrucciones] [Exit Do] [instrucciones] El bucle al menos se
ejecutará una vez antes
Loop [{While | Until} condición] de evaluar la condición
O con esta otra sintaxis:

Do [{While | Until} condición] [instrucciones] El bucle se ejecutará


[Exit Do] después de evaluar la
[instrucciones] condición
Loop

Veamos un ejemplo, usamos el mismo del caso anterior:

Public Sub Usando_DoLoop()


Dim a As Integer
a=0
Do
a = InputBox("Ingresa un número entero, please", "Solicita un dato numérico")

Loop While (a < 13)


End Sub
Probando ahora con Do---Loop Until

Public Sub Usando_DoLoop()


Dim a As Integer
a=0
Do
a = InputBox("Ingresa un número entero, please", "Solicita un dato numérico")

Loop Until (a >= 13)


End Sub

Escuela de Tecnología de la Información 223


Microsoft Office Access 2016

La Instrucción For - - - Next


La instrucción For--- Next, es una instrucción que repite el código, una cantidad finita de veces
entre la línea que contiene la palabra Fory la línea que contiene a su correspondiente Next.
Su sintaxis es
For contador = principio To fin [Step incremento]
[instrucciones]
[Exit For]
[instrucciones]
Next [contador]
Contador es una variable numérica que irá tomando sucesivos valores, con incrementos ó
decrementos iguales al valor de incremento.
Si no se pusiera el valor incremento, el contador iría creciendo en una unidad cada vuelta.
Las instrucciones se irán repitiendo hasta que contador tome el valor de fin, ó se encuentre con
la instrucción Exit For.
Por ejemplo, supongamos que tenemos que generar un programa que nos imprima las tablas de
multiplicar que van del 1 al 10.

Public Sub TablasDeMultiplicar()


Dim n As Integer, m As Integer
For n = 1 To 10
Debug.Print "-----------"
For m = 1 To 10
Debug.Print n & " x " & m & " = " & n * m
Next m
Next n
End Sub
Cuando ejecutamos

224 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Actividad 10: Ejemplos de instrucciones Repetitivas


1) Vamos a crear un programa que me permita poder calcular calcular el factoria de un
número, para ello trabajamos con el archivo que venimos trabajando con VBA.
Digitamos el siguiente código:

Ejecutamos y observamos que, si ingresamos un número bajo se ejecuta el procedimiento,


sin problemas.

Ahora observaremos en otra ejecución de un número mas grande. 15 por ejemplo, observe
el error que aparece. Error de desbordamiento “error 6”.

Ahora observaremos, que sucede si en lugar de un número ingreso un texto.

Escuela de Tecnología de la Información 225


Microsoft Office Access 2016

Observamos que cuando se ingresa un texto aparece un error de tipos de datos no


coinciden, el numero de “Error es 13”.

Modificamos el código de acuerdo al gráfico:

La instrucción On Error Goto, va a provocar que cuando se produzca el error el código


salte hacia la línea donde dice el nombre, en el ejemplo Datito. Ejecutamos el ejemplo
provocando nuevamente los errores antes ocurridos.
Otro detalle que no se mencionó es se cambió el tipo de variable a Long.

226 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

El otro error sería:

Si ingresamos un dato, no demasiado grande se debe de ejecutar sin ningún problema.

Guardamos y cerramos.

2) Vamos a crear un programa tipo un juegito que me permita poder adivinar cual es el
numero la PC ingresó.
Creamos un nuevo módulo y procedemos a ingresar el siguiente código

Si obervamos, estamos empleando Math.Rnd, esta línea de código genera un numero


aleatorio decimal, es por eso que se multiplica por 100, para generar un numero de
dos cifras.
Procedemos a ejecutar el código y observamos lo que pasa.

Escuela de Tecnología de la Información 227


Microsoft Office Access 2016

La finalización de la ejecución del código termina de la siguiente forma:

3) Vamos a crear un programa tipo un juegito que me permita poder adivinar cual es el
numero que se ingreso
Creamos un nuevo módulo y procedemos a ingresar el siguiente código

228 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Ejecutamos el código, e ingresamos una dirección correcta

Ahora vamos a ingresar una dirección de correo sin el arroba, y observamos que pasa

Ahora ingresamos una dirección de correo sin el punto después del arroba

Progamación orientada a objetos


Programación orientada a objetos (POO), es un paradigma en la programación actual, ya que
usa objetos en sus interacciones para diseñar aplicaciones y programas informáticos y Acess a
través de VBA, esta preparado para eso.
POO esta basada en varias técnicas, donde se incluye herencia, polimorfismo, abstracción y
encapsulamiento.
Como Access son objetos, estos objetos tienen una jerarquía, vamos a graficar la jerarquía:

Escuela de Tecnología de la Información 229


Microsoft Office Access 2016

Application
Formulario1
Formulario2
Formulario3
Forms

Boton1
Controls ComboBox1
CuadroCombinado

Botón Etiqueta Menú etc

Cuando hacemos referencia a un objeto, la sintaxis de esta es de la siguiente forma, por ejemplo
vamos a referenciar un Botón en un formulario.
Forms(“frmAlumnos”).Controls(“btnAceptar”).Visible = False
Para entenderlo mejor vamos a ejecutar un pequeño ejercicio, Creamos un formulario con una
etiqueta, dos botones.

En la vista Diseño del formulario seleccionamos el botón “Probando”, activamos las


Propiedades y en la ficha Eventos, Seleccionamos el evento hacer clic en el botón tres puntos
damos clic, seleccionamos código de eventos e ingresamos el siguiente código.

230 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Guardamos y cerramos la ventana de VBA y


procedemos a cambiar la vista del formulario
y procedemos a dar clic al botón “Probando”
y observamos los cambios que ocurre con los
objetos.
Los cambios son los siguientes:
 La caja de texto ha modificado su
tamaño. Es debido a la propiedad
Width = 5000.
 La caja de texto se ha movido a la
parte superior derecha, eso es debido a
que se ejecutado la propiedad Move
10, 10
 Y el botón de comando a cambiado su
altura, también es debido a que la
propiedad usada es Height = 5000
Que son eventos?
Son desencadenantes de una acción. Modo mediante el cual los objetos se relacionan e
interactúan con el medio. Esta acción se desencadena cuando el usuario realiza una acción.
Existen estos diferentes tipos de eventos

Eventos

De De
A.D.O Dinámicos
Formulario Informe

Escuela de Tecnología de la Información 231


Microsoft Office Access 2016

Eventos de Formularios.- Son cosas que suceden en un formulario como por ejemplo: Cuando
hacemos clic en un botón de comando, cuando se introduce texto en una caja de texto, etc.
Dentro de estos eventos tenemos los de alto nivel que gestionan acciones con un formulario y
los de bajo nivel que gestionan respuestas a acciones mas especificas de usuarios.
Eventos de Informes.- Son cosas que suceden durante la presentación de un informe, por
ejemplo antes de que Access de formato a una sección, antes de que se imprima el informe, etc.
Eventos ADO.- Son cosas que suceden al conectar con una base de datos.
Eventos dinámicos. - Son cosas que suceden al momento de aplicar tablas dinámicas.

Actividad 11: Aplicando eventos al formularios


Creamos un nuevo formulario y lo ponemos en Vista Diseño. Añadimos al formulario una
etiqueta, un cuadro de texto y un botón.
Nombres aplicados a los controles:
Etiqueta lblMensaje
Cuadro de texto txtNumero
Etiqueta del cuadro de texto lblNumero
Botón cmdPrimo
Ajustamos algunas de las propiedades del formulario, por ejemplo para quitar los
separadores de registro, botones, etc.…
Para que el formulario tenga este aspecto,
he modificado algunas de sus propiedades:
Propiedad Valor
Selectores de registro No
Botones de navegación No
Separadores de registro No
Estilo de los bordes Diálogo

Abrimos la ventana de propiedades y teniendo seleccionado el formulario, vamos a la


página de Eventos.
Hacemos que al abrir el formulario ponga como título del mismo "Test de números
primos", y como texto de la etiqueta lblMensaje, "Introduzca un número entero".

232 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Al abrir el formulario quedará así:


Vamos a hacer ahora que tras introducir un
número en el cuadro de texto, y presionar el
botón, nos diga en la etiqueta si el número
es primo.
Volvemos a la hoja de propiedades y
seleccionamos Eventos.
Teniendo seleccionado el botón, activamos
el evento Al hacer clic, pulsamos en el
botoncito que aparece con los tres puntos y
seleccionamos Generador de código, y a
continuación Aceptar.
Vamos a escribir el código:

Tambien debemos ingresar el código la una function llamada EsPrimo.

Escuela de Tecnología de la Información 233


Microsoft Office Access 2016

Tras presionar el botón cmdPrimo se produce el evento clic, por lo que se ejecuta el
procedimiento cmdPrimo_Click()que maneja ese evento

234 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Este procedimiento lo primero que hace es declarar dos variables de tipos diferentes,
strNumero de tipo string y lngNumero de tipo Long.
Luego se procede a asignar el contenido del cuadro de texto txtNumero, procesado primero
con la función Nz, que devuelve una cadena vacía si tiene el valor Null, y a continuación
le quita los posibles espacios en blanco de los extremos mediante la función Trim.
Seguidamente pasa por la primera estructura de decisión If, controlando si la cadena
strNumero es de tipo numérico.
Si la condición es falsa muestra el mensaje "No ha introducido un número". Si fuera
verdadera, lo primero que hace es comprobar si la expresión numérica de strNumero está
entre 1 y 214748364, rango de valores válidos en el rango de los Long, para la función
EsPrimo.

Si no fuera así, muestra el mensaje "El número está fuera de rango", lleva el cursor al
control txtNumeroy sale del procedimiento.
Supongamos que el contenido de strNumero ha logrado pasar todos estos controles.
Mediante la función Val(strNumero)asigna el valor a la variable lngNumero. Como ya
no vamos a utilizar la cadena strNumeropara más cálculos, para mostrar el número, le
asignamos el resultado de la función Format(lngNumero, "#,##0").
Con esta utilización, la función Formatdevuelve una cadena formada por el número con
los separadores de miles.
La función Formatt tiene un amplio abanico de posibilidades en la conversión de
números y fechas a cadenas de texto.
El siguiente paso es comprobar si el número lngNumero es primo, utilizando la función
EsPrimo que escribimos anteriormente.
Si lo fuera, escribiríamos en la etiqueta "El número "seguido del contenido de la
cadena strNumero, y el texto " es primo".
Si no lo fuera, escribiríamos lo mismo, pero indicando " no es primo". Terminado todo
esto llevamos el cursor al cuadro de texto txtNumeromediante su método SetFocus.

Escuela de Tecnología de la Información 235


Microsoft Office Access 2016

Aunque el programa esta terminado, nos piden que se añada dos pequeños botones tipo flecha,
como se muestra en la imagen.

Actividad 12: Continuando con eventos al formulario


Al primer botón, con una flecha hacia arriba lo llamamos cmdPrimoSiguiente, y al
segundo, con una flecha hacia abajo lo llamamos, cmdPrimoAnterior.
Este es el diseño que queda en el formulario:

En el código anterior podemos ver algunas cosas interesantes. Uno de ellos ya lo hemos
visto en un ejemplo anterior, pero de todas maneras es importante señalarlo
On Error Resume Next
Esta es la forma más básica de efectuar un control de los errores que se puedan originar
durante la ejecución de un programa en VBA.

236 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Simplemente se le está indicando a VBA que si se produjera un error en algún punto del
procedimiento lo ignore y vaya a la siguiente sentencia del código.
Vamos visualizando el código:

A continuación nos encontramos con otro Operador, es el operador negación Not.


Do While Not blnPrimo
Not hace que la expresión lógica que le sigue cambie su valor. Así si blnPrimocontiene
el valor True
Not blnPrimo devolverá el valor False. La expresió equivale a:
Mientras blnPrimo no sea cierto
Que es equivalente a
Mientras blnPrimo sea falso.
Con ello se ejecutará el código contenido entre la línea de Doy la línea del Loop.

Escuela de Tecnología de la Información 237


Microsoft Office Access 2016

Cuando lngNumero sea primo, la función EsPrimo asignará True a blnPrimo,


automáticamente se saldrá del bucle, colocará la cadena de texto del número txtNumero
en el cuadro de texto y luego ejecutará el procedimiento cmdPrimo_Click, como si se
hubiera presionado en el botón [cmdPrimo].
Si el valor de lngNumerono hubiera cumplido con el rango de valores, pone un 1 en el
cuadro de texto txtNumero, y ejecuta el procedimiento cmdPrimo_Click.

En otro procedimiento que maneja la pulsación de la tecla [cmdPrimoAnterior] aunque


tiene una estructura semejante, se introducen unos cambios que es importante remarcar.
En primer lugar se observamos que se utiliza una estructura del tipo Do Until, en vez de
Do While. Además, como condición no utiliza una variable como en el ejemplo anterior,
sino que lo compara directamente con el valor devuelto por la función EsPrimo, que
devuelve True ó False dependiendo el caso:

238 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Do Until EsPrimo(lngNumero)
Con esto nos evitamos utilizar una variable y una sentencia adicional. Además el código
resulta algo más claro.Observamos el codigo

En este caso, si la variable no supera los filtros, pone el valor "2147483647"en el cuadro
de texto.

Procedemos a guardar la aplicación, observamos que se ha utlizado otros procesos


repetitivos y vemos la diferencia que existe entre ellos.

Escuela de Tecnología de la Información 239


Microsoft Office Access 2016

Tratamiento de los errores en procedimientos


A la hora de utilizar el código de un módulo, hay dos tiempos
• Tiempo de Diseño.
• Tiempo de Ejecución.
El tiempo de diseño transcurre mientras estamos modificando el contenido del código de un
módulo, sea del tipo que sea, o cuando estamos cambiando las propiedades de controles,
formularios o informes, en la llamada Vista Diseño, ya sea directamente ó mediante ejecución
de código.

Access permite crear mediante código, formularios básicamente utilizando el método


CreateForm, que devuelve una referencia a un nuevo formulario, también permite
añadirle controles mediante el método CreateControl, e incluso lo puede asociarlea un
módulo, escribiendo todo su contenido. Para esto último tendríamos que crear una
referencia al objeto Module del formulario, y para insertarle el código utilizar su método
InsertText.
De forma semejante existe el método CreateReport para la creación dinámica de
informes. Si queremos usarlos posteriormente deberemos guardarlos, por ejemplo con el
método Save del objeto DoCmd.

El tiempo de ejecución transcurre cuando hemos creado una instancia de un objeto, formulario,
informe, clase o hemos llamado a un procedimiento de un módulo estándar. En otras palabras
cuando se esta ejecutando los objetos o el código de Access.
Errores en Tiempo de Diseño
En Tiempo de Diseño podemos cometer una serie de errores, a la hora de escribir el código.
Muchos de estos errores serán detectados inmediatamente por el editor de Access.
Cuando escribimos una línea de código, Access realiza un análisis del texto que estamos
escribiendo. En este proceso se realiza fundamentalmente su análisis sintáctico.
También comprueba si hay sentencias incompletas, por ejemplo If sin Then.
Si encuentra una expresión errónea lanza un mensaje de Error de compilación e incluso aporta
una cierta información que nos puede orientar sobre el origen del error.

240 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

La línea de código incorrecta queda marcada en color rojo.


Cuando ejecutamos el código, la primera vez que lo hace, no sólo realiza un análisis sintáctico,
además va comprobando que todas las constantes y variables, ya sean de tipos estándar,
referencias de objetos ó tipos definidos por el usuario, estén perfectamente declaradas, y los
tipos de objeto existan y sean correctos.

Si se detecta algún error se interrumpe la ejecución del código y se lanza un aviso, marcando la
zona del código donde el error se ha producido. Esta depuración del código se va realizando
conforme se efectúan llamadas a los diferentes procedimientos.
Podría ocurrir que tuviéramos un procedimiento que sólo se usara en determinadas condiciones
y que contuviera por ejemplo una variable mal declarada.
Si al ejecutar el código no se llega a utilizar ese
procedimiento, no se detectaría el error que
contiene.
Para evitar “sorpresas” posteriores, es
aconsejable realizar una pre-compilación del
código. Para realizarla podemos utilizar la
opción de menú [Compilar
NombreDelFicheroAccess] de la opción de
menú [Depuración].
Esta pre-compilación revisa todo el código, e
incluso posibles procedimientos que no serían
utilizados durante la ejecución del programa.
Esto nos da más garantía sobre la calidad del
código y nos protege frente a ciertos tipos de
error que de otra forma no podríamos detectar.

Errores en Tiempo de Ejecución


Hay una serie de errores que se pueden producir durante la ejecución del código, que no son de
sintaxis ni originados por código incompleto o declaraciones inadecuadas.
Son, por ejemplo los errores provenientes de valores no previstos por el código pasados ya sea
por el propio usuario extraídos de tablas, ficheros u otras fuentes de origen.

Escuela de Tecnología de la Información 241


Microsoft Office Access 2016

Son los típicos errores de Tiempo de Ejecución.


Supongamos que tenemos que dividir entre sí dos cantidades; si el denominador vale cero, nos
dará un error de división entre cero.
Podría ocurrir que no hayamos previsto que un cuadro de texto contuviera el valor Null. Esto
nos podría generar error al intentar asignar este valor a una cadena de texto.
También podría ocurrir que en una expresión por la que queremos asignar el resultado de una
operación a una variable, ese resultado superara el rango admisible por el tipo de la variable, con
lo que tendríamos un error de Desbordamiento.
Un programa profesional debe adelantarse a todas estas posibilidades.
Por ejemplo, si tenemos que dividir dos números, se debería comprobar que el denominador no
contuviese el valor Cero.
Si tuviéramos que obtener, un elemento de una matriz, ó colección, podríamos evitar un error
de subíndice fuera de intervalo.
Hay muchas circunstancias en las que se pueden producir errores en tiempo de ejecución. VBA
nos provee de una herramienta para poder controlarlos una vez que se han producido.
Supongamos que tenemos el siguiente procedimiento.

- Sí, ya se que es un código sin mucho sentido; lo pongo sólo como ejemplo didáctico.
Si se ejecutara este procedimiento, ya sea llamado desde la ventana Inmediato o desde cualquier
punto de la aplicación se producirá el preceptivo error:

Inmediatamente se interrumpirá la aplicación.

242 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Editando el código de las macros de Access


Código frente a macros
Access posee un potente conjunto de macros que permiten un
alto grado de automatización en una serie de tareas.
Si vamos a la ayuda de Access veremos que una macro se define
como un conjunto de acciones creadas para automatizar algunas
de las tareas comunes.
Veamos en la práctica cómo se manejan.
Vamos a crear un formulario y en él pondremos una
etiqueta grande con un texto en rojo, por ejemplo
Formulario abierto.

Guardamos el formulario con el nombre VbayMacros.


Abrimos la ventana macros, haciendo clic en la ficha
Crear, Cinta de opciones Otros y en el botón [Macro].

Una vez dentro podremos ver la columna Acción.


Seleccionamos la acción [AbrirFormulario]. Inmediatamente después de hacerlo, nos aparece
en la parte inferior unos cuadros en los que podemos introducir los argumentos de la macro.

Si nos ponemos en el cuadro Nombre del formulario, vemos que nos aparece una flecha hacia
abajo que nos permite seleccionar un formulario.
Si la base de datos era nueva nos aparecerá únicamente el formulario VbayMacros que
acabamos de guardar.
Damos clic en la flecha de Agregar Nueva Acción, y
seleccionamos la acción [Cuadro de Mensaje], y en los
cuadros de abajo ponemos:

En Mensaje: Formulario abierto, y en Tipo: Información.

Escuela de Tecnología de la Información 243


Microsoft Office Access 2016

A continuación, presionamos en el botón guardar,


determinando el nombre Autoexec. Cerramos la ventana de
macros, e incluso Access.

Volvemos a abrir el archivo y veremos que ahora se abre el


formulario PruebaMacro inmediatamente después de cargar el archivo. y nos muestra un cuadro
de mensaje tipo a los que ya hemos visto con la función MsgBox.

Hemos verificado como se explicó en los temas de macros, si a una macro, le ponemos como
nombre Autoexec, se ejecutarán sus acciones en el momento de abrir el archivo de Access.

244 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Las macros han sido una herramienta muy utilizada por “usuarios expertos en Access” que no
tenían conocimientos de programación y que querían
conceder a sus aplicativos de cierto grado de automatismo.

Lo que quizás algunos de esos usuarios no sabían es que


Access permite realizar una conversión directa de las
macros a código VBA.
Las funciones y procedimientos de VBA tienen más
flexibilidad y sucesos que las macros. Además, las macros
no pueden realizar tareas como por ejemplo un control de
errores, o el acceso a un único registro con la misma
simplicidad que con VBA.
Vamos al panel de Exploracion y seleccionamos la macro
Autoexec, clic derecho y abrir en modo diseño.

Luego hacemos clic en el Boton Archivo, para luego indicarle la opción Guardar como, luego
Guardar objeto como

Escuela de Tecnología de la Información 245


Microsoft Office Access 2016

Tras esto nos aparece una nueva ventana en la que se nos propone cambiar el nombre de la
Macro.

En el segundo cuadro seleccionamos [Módulo] y presionamos el botón [Aceptar].


Aparecera otra ventana, no cambiamos esos valores y presionamos el botón [Convertir].

Si ahora nos vamos a la ventana de Módulos veremos que aparece un nuevo módulo llamado
Macro convertida - Autoexec.

Despues de hacer doble clic sobre el módulo Macro covertida -Autoexec, nos mostrará el
código correspondiente

246 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

El proceso de conversión de macros se puede también realizar siguiendo estos pasos


1. Seleccione la macro a convertir en el panel de exploracion.
2. Seleccionamos la ficha [Herramientas de base de datos], en el Grupo de opciones
Macro y dentro de ella el botón [ Visual Basic]

3. Damos clic en Visual basic y el archivo lo abre en el editor VBA.

Otro procedimiento sería, teniendo abierto el editor de Macros.


1) En el grupo de opciones de Herramientas, damos clic en convertir Macros a Visual
Basic.

Escuela de Tecnología de la Información 247


Microsoft Office Access 2016

Se pueden convertir tanto las macros generales como las macros asociadas a formularios o
informes.
Esta función tiene dos partes que se corresponden con las dos acciones de la macro. La acción
AbrirFormulario se sustituye por el método OpenFormdel objeto DoCmd. La acción Cuadro
de Mensaje se sustituye por la función MsgBox.
Las mismas acciones que hemos puesto en la macro Autoexec, podríamos haberlas puesto en
un mismo archivo de Macro, como dos macros independientes.

¿Cuándo usar Macros y cuándo código VBA?


Las macros permiten mecanizar, de una forma simple y sencilla, tareas como Abrir un
formulario, abrir o cerrar un informe o permitir desplazarnos entre los registros de una tabla.
Para el resto de las acciones recomienda la utilización de VBA.
La mayor parte de las acciones probables mediante macros, pueden ser realizadas
favorablemente usando VBA mediante los métodos del objeto DoCmd, que las implementa.

El objeto DoCmd
El objeto DoCmd es uno de los objetos específico de Access, creado para sustituir a las acciones
de las Macros. De hecho, sustituye con mucha ventaja a casi todas ellas.

Los argumentos de la acción serán ahora los argumentos del método de DoCmd.
En la acción AbrirFormulario, poníamos como Nombre del formulario VbayMacros, como
vista Formulario y como modo de la ventana Normal.

248 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Al método OpenForm, que abre un formulario, le pasamos como nombre del formulario
(FormName) "VbayMacros", como vista (View) acNormal, y como tipo de ventana
(WindowMode)acNormal.
Las constante acNormal está definida como una variable constante enumerada miembro de
Access. AcFormView. El valor numérico es 0.
Como se podrá observar hay un paralelismo total entre la acción de macro y el método
correspondiente de DoCmd.
Hay que tener en cuenta que no todas las Acciones de las macros están implementadas en los
métodos de DoCmd. Por ejemplo, en la conversión de macros a código VBA hemos visto que
Cuadro de Mensaje se reemplaza por la función MsgBox.
Otras acciones no implementadas en DoCmd son las siguientes:
Acción Equivalencia en VBA
RunApp Función Shell
RunCode Llamada a la subrutina correspondiente
SendKeys Instrucción SendKeys
SetValue Operador =de asignación
StopAllMacros Instrucciones Stopo End
StopMacro Instrucciones Exit Subo Exit Function
Podemos ver directamente los métodos implementados en la clase DoCmd, mediante la ventana
del Examinador de objetos. Para activar esa ventana pulsaremos la tecla [F2] desde el editor de
código.
Para localizar la clase DoCmd seleccionamos la biblioteca de Access y escribimos el nombre de
la clase que queremos buscar.
Tras pulsar la tecla de búsqueda se nos posicionará en la clase DoCmd.
En la columna de la derecha podremos ver sus métodos.
Se puede comprobar que, al contrario de otras clases, no posee ni propiedades ni eventos.

Escuela de Tecnología de la Información 249


Microsoft Office Access 2016

A continuación, se describen algunos métodos implementados con DoCmd, en algunos casos se


aplica ejemplos de código.

METODO FUNCIONALIDAD

AddMenu Permite crear barras de menú y menús contextuales.


Se le asigna el Nombre del menú, el Nombre de la macro de menú y el
Texto de la barra de estado.

ApplyFilter Permite aplicar filtro a una consulta o una cláusula “con la condición
WHERE” de una instrucción SQL a una tabla, a un formulario o a un
informe.
Se le pasan como parámetros el Nombre del filtro y la Condición que
aparecería después del Where.
Un ejemplo de como se aplica el filtro
 DoCmd.ApplyFilter , "Marca Like '[ABC]*'"

Beep Usado para emitir sonidos en la Pc.

CancelEvent Usado para cancelar un evento. Sólo tiene efecto cuando se ejecuta
como resultado de un evento. No utiliza parámetros.

Close Usado para cerrar la ventana de un objeto, se tiene que pasar como
parámetros el tipo y el nombre del objeto.
Este código cierra el formulario actual, en la primera no pregunta si
desea guardar en el segundo caso si hace la pregunta.
 DoCmd.Close
 DoCmd.Close acForm, " PruebaMacro", acSaveYes

CopyDatabaseFile Copia la bd que se encuentra conectada al proyecto actual en un


archivo de base de datos de Microsoft SQL Server para exportación.
Los parámetros son Nombre del Archivo Base De Datos, Sobrescribir
un Archivo Existente y Desconectar Todos Los Usuarios.

CopyObject Permite copiar objetos de la bd, tales como Tablas, Consultas,


Formularios, Informes, Módulos, etc… en la base de datos actual o en
otra que se especifique. Te da la facilidad que cuando copies el objeto
lo puedas cambiar de nombre.
Como parámetros se coloca el Nombre de la base de datos destino, el
Nuevo nombre que vaya a tener el objeto copiado, el Tipo de objeto a
copiar y el Nombre del mismo.
Por ejemplo este código copia la tabla Docente en la tabla Instructores
DoCmd.CopyObject, "Instructores", acTable, "Docente"
Tener en cuenta que cuando se copia sobre tablas vinculadas crea un

250 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

nuevo vínculo.

DeleteObject Elimina un objeto de una base de datos.


Se coloca como parámetros el Tipo y el Nombre del objeto. Este
ejemplo borra la tabla Docente.
DoCmd.DeleteObject acTable, "Docente"
Tener en cuenta que si se aplica sobre tablas vinculadas elimina el
vínculo solamente.

DoMenuItem Método antiguo obsoleto sustituido por RunCommand.

Echo Se utiliza para mostrar u ocultar los resultados de la ejecución de una


macro mientras se está ejecutando.
DoCmd.Echo True
Para desactivar Eco mostrando un mensaje
DoCmd.Echo False, "Ejecutándose código de VBA"

FindNext Busca el siguiente registro que cumpla las condiciones definidas


previamente mediante el método FindRecord.

FindRecord Opción muy importante ya que permite buscar un registro que cumpla
determinados criterios.
Usa los mismos criterios que la opción de menú [Edición] [Buscar].
Los criterios son Cadena a buscar, Coincidencia de la cadena de
búsqueda, Distinguir mayúsculas, Sentido a buscar, buscar en Campo
activo o en Todos, Buscar el primer registro o en Siguientes, buscar en
Campos con formato, en el Campo activo y buscar Primero
El parámetro Coincidencia toma una de las siguientes constantes del
tipo AcFindMatch
acAnywhere
acEntire (valor predeterminado)
acStart
Como Sentido toma una de las constantes AcSearchDirection
acDown
acSearchAll (valor predeterminado)
acUp
Como Campo activo toma una de las constantes AcFindField
acAll
acCurrent (valor predeterminado)
La siguiente instrucción busca el primer registro que contenga el texto
"Jpm"en cualquiera de sus campos, distinguiendo entre mayúsculas y
minúsculas, considerando también los campos con formato.
DoCmd.FindRecord "Jpm", acAnywhere, True, acSearchAll, True

Escuela de Tecnología de la Información 251


Microsoft Office Access 2016

GoToControl Desplaza el foco al campo o control desarrollado.


El código que se muestra desplaza el foco al control txtNombre del
formulario.
DoCmd.GoToControl "txtNombre"

GoToPage Traslada el foco al primer control de la página detallada en un


formulario en el que se han colocado saltos de página, o a una ficha
determinada de un control ficha.
El parámetro Número de página es obligatorio.
Los valores opcionales posición Horizontal y posición Vertical son
útiles si el formulario es mayor que el tamaño de la ventana de
Windows. Este código traslada el foco al primer control de la página 3
del formulario.
DoCmd.GoToPage

GoToRecord La acción GoToRecord (IrARegistro) convierte el registro


especificado en el registro actual de un conjunto de resultados de una
tabla, formulario o consulta.
Admite los siguientes parámetros:
Tipo de objeto, Nombre, Registro (Anterior, Siguiente, Primero,
Último, Ir a o Nuevo), Número de registros a desplazar.
Como tipo de objeto se utiliza una constante AcDataObjectType
Esta constante puede tomar los valores
acActiveDataObject (Valor predeterminado)
acDataForm
acDataFunction
acDataQuery
acDataServerView
acDataStoredProcedure
acDataTable
El parámetro Registro puede tomar el valor de una constante del tipo
AcRecord. Sus posibles valores son
acFirst acGoTo acLast acNewRec
acNext (Valor predeterminado)
acPrevious
Este código activa el tercer registro del formulario "Empleados".
DoCmd.GoToRecord acDataForm, "Empleados", acGoTo, 3

Hourglass Hace aparecer un reloj de arena en vez del cursor normal del ratón.
Si el parámetro es False, vuelve a colocar el cursor por defecto.
DoCmd.Hourglass True

252 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Maximize Maximiza la ventana actual para ocupar totalmente la ventana de


Windows. No hay parámetros.
DoCmd.Maximize
Lo contrario a maximiza
Minimize
DoCmd.Minimize

OpenForm Abre el formulario especificado


Se pueden pasar hasta 7 parámetros que controlarán el Nombre del
formulario a abrir, el Tipo de vista como se Mostrará el formulario, el
Filtro que se aplicará a los datos, una Cláusula Where que define las
características que deben cumplir los datos, el Modo como se editarán
(sólo lectura, etc.) y el Modo como se mostrará la ventana.
Adicionalmente se le puede incluir los Argumentos de apertura.
Como Tipo de vista se puede usar una de las siguientes constantes
AcFormView
acDesign
acFormDS
acFormPivotChart
acFormPivotTable
acNormal (predeterminado)
acPreview
El Modo de edición toma una constante AcFormOpenDataMode
acFormAdd
Se puede agregar registros nuevos pero no se pueden modificar los
existentes.
acFormEdit
Se pueden modificar los registros existentes y agregar registros nuevos.
acFormPropertySettings (predeterminado)
acFormReadOnly
Los registros sólo se pueden ver.
El Modo como se mostrará la ventana toma uno de los valores
AcWindowMode
acDialog
El formulario será Modal y Emergente.
acHidden
El formulario estará oculto.
acIcon
Se abre minimizado.
acWindowNormal valor predeterminado
La siguiente línea abre el formulario Alumnos, en modo de sólo
lectura, con los datos de los alumnos residentes en Pamplona.
DoCmd.OpenForm "Alumnos", , , _ "Poblacion = 'Lima'",
acFormReadOnly

Escuela de Tecnología de la Información 253


Microsoft Office Access 2016

OpenFunction Abre una función definida por el usuario en una base de datos de
Microsoft SQL Server para verla desde Microsoft Access.
Los parámetros son el nombre de la función, la Vista como se va a
mostrar la función, y el Modo de visualización o edición de los datos.
La Vista puede es una constante del tipo AcView.
acViewDesign Abre la función en la vista Diseño.
acViewNormal (predeterminado).
acViewPivotChart Vista Gráfico dinámico.
acViewPivotTable Vista Tabla dinámica.
acViewPreview Abre la función en la Vista preliminar.
El modo de visualización es del tipo AcOpenDataMode.
acAdd
Abre la función para la inserción de datos.
acEdit (predeterminado).
Abre la función para actualizar los datos existentes.
acReadOnly Abre la función en Sólo lectura.
La siguiente línea abre la función Ajuste en vista normal y en el modo
edición de datos.
DoCmd.OpenFunction "Ajuste", , acEdit

OpenModule Permite poder abrir un procedimiento.

Uso de DoCmd en los Asistentes


para controles
Los Asistentes para controles de
Access, por ejemplo, en los
formularios, hacen un amplio uso del
objeto DoCmd.
Por ejemplo, al formulario siguiente
le vamos a agregar un botón siguiente
que me permita poder ir alsiguiente
registro.

Si Vamos a añadir un botón de


comando a un formulario, teniendo
activado el asistente para controles,
vamos a observar que Access nos
muestra una ventana (asistente) en el que nos pide información acerca de la acción que queremos
que ocurra cuando presionemos en el botón.

254 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Ejecutamos dicho asistente

En nuestro caso vamos a crear un botón que haga que vayamos al registro siguiente respecto al
registro actual. En la ventana de la derecha (acciones) seleccionaremos [Ir al registro siguiente],
clic en siguiente

Escuela de Tecnología de la Información 255


Microsoft Office Access 2016

Presionamos la tecla [Siguiente] nuevamente y ponemos como nombre del botón


cmdRegistroSiguiente, y presionamos la tecla [Finalizar].

Si hemos seguido estos pasos, nos mostrará en el formulario un botón con una flecha a la
derecha. Si damos clic en propiedades del archivo nos mostrara la siguiente macro.

Todo esto, genera este código:

256 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Private Sub cmdRegistroSiguiente_Click()


On Error GoTo Err_cmdRegistroSiguiente_Click
DoCmd.GoToRecord , , acNext
Exit_cmdRegistroSiguiente_Click: Exit Sub
Err_cmdRegistroSiguiente_Click: MsgBox Err.Description
Resume Exit_cmdRegistroSiguiente_Click
End Sub

Vemos que nos ha generado un procedimiento de evento que define qué debe pasar
cuando se presione el botón [cmdRegistroSiguiente].
En concreto vemos que usa el objeto DoCmd con el método GotoRecord, y el
parámetro acNext.
Esto hace que intente posicionarse en el registro siguiente. Incluso define un sistema
para controlar posibles errores que se puedan generar.

Actividad 13: Editando botones para operar registro y Formulario


Vamos a crear un formulario a partir de la tabla Instructores de la base de datos bdSenati,
modificamos algunas propiedades del formulario, para que se muestre sin los botones de
navegación y selectores de registro.

Procedemos a ingresar botones de comando, damos clic a cancelar cuando me sale el


asistente. Vamos a la ventana de propiedades le ponemos nombre de acuerdo a los botones
que se muestra de acuerdo a la lista:

Escuela de Tecnología de la Información 257


Microsoft Office Access 2016

a) Ir al primer registro cmdPrimerRegistro


b) Ir al registro anterior cmdRegistroAnterior
c) Ir al registro siguiente cmdRegistroSiguiente
d) Ir al último registro cmdRegistroUltimo
e) Agregar nuevo registro cmdAgregarRegistro
f) Guardar registro cmdGuardarRegistro
g) Cerrar Formulario cmdSalir

El paso siguiente es seleccionar una imagen para cada botón, el proceso es darle clic a las
propiedades de el botón seleccionado la opción imagen. Botón …

Nos muestra la siguiente ventana

Seleccionamos la imagen deseasa y clic en aceptar.


De tal manera que nuestro formulario quedará de la siguiente manera:

258 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

El paso siguiente es poner codigoVBA en cada botón, para ello damos clic en la pestaña
eventos en la ventana de propiedades del primer botón.

En esta pestaña seleccionamos el evento Al hacer clic, en el botón …

Luego clic en el generador de código.

Procedemos a ingresar código a cada botón.

Escuela de Tecnología de la Información 259


Microsoft Office Access 2016

Digitanos el código del botón salir:

260 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Ejecutamos el vista formulario y probamos

Los modelos de objetos de Access


Estructura de los Objetos de Access
Una aplicación Access está compuesta de una gran cantidad de objetos que se interrelacionan.
Algunos de ellos son objetos individuales, pero otros están agrupados en Colecciones. En la
cumbre de todos ellos está el objeto Application
El objeto Application hace referencia a la aplicación de Access que está activa en ese momento.
El orden de tres grandes grupos que siguen son los siguientes: Objetos Access, Objeto Datos
Access y Objetos VBA,

Escuela de Tecnología de la Información 261


Microsoft Office Access 2016

APPLICATION

OBJETOS OBJETO DATOS


OBJETOS VBA
ACCESS ACCESS

Tabla Formulario TablaDef QueryDef DoCmd

Botón RecordSet Container

Cuadro de
Texto

Menú
Despegable

Informe Módulo

La estructura de objetos representada en el gráfico anterior es sólo un resumen del total de


objetos propios de Access.
Los objetos representados en color azul, representan colecciones. Por ejemplo, la colección
Forms contiene objetos del tipo Form (Formularios), que a su vez contiene una colección
Controls (botón, caja de texto, label, etc) de objetos Control.

Los Controles ActiveX


Agregando controles en el Formulario
Formularios
Conocemos que un formulario es el elemento primordial para la introducción de datos y su
mantenimiento, por parte del usuario final de nuestra aplicación.
También puede servir para mostrar avisos, al estilo de un Cuadro de mensaje, como formulario
de inicio de una aplicación, como formulario del tipo “Acerca de…” o incluso como contenedor
de otro subformulario u objetos ActiveX.
Ya se ha mencionado que el objeto Form, que representa a un formulario y que además es un
elemento de la colección Forms.
Vemos también que un objeto Form contiene como atributo el objeto Module. Este objeto
Module representa al módulo de clase del formulario, en el que podemos, al igual que en una
“clase normal” definir propiedades y métodos personalizados.

262 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Para efectuar las pruebas de código, vamos a crear un formulario “simple” y a trabajar con su
código de clase.
Para shacerla mas sencilla no lo enlazaremos con ningún origen de datos.

Durante la vida de un formulario ocurren una serie de eventos.


Es interesante saber en qué orden se producen éstos, tanto al abrirse el formulario, como al
cerrarse.
Tenemos aca en un cuadro una serie de eventos que posteriormente lo emplearemos en un
ejemplo para entender mejor como funciona.
En este cuadro se menciona cada uno de los eventos y lo que ocurre cuando estos eventos se
ejecutan

Evento Lo que ocurre


Activate Al activar Cuando el formulario pasa a ser ventana activa
Close Al cerrar Al cerrarse y retirarse de la pantalla
Current Al activar registro Cuando se enfoca un registro como actual
Deactivat Al desactivar Cuando la ventana del formulario pierde el
eGotFocus Al recibir el foco foco
Cuando el formulario recibe el foco
Load Al cargar Al abrir un formulario y mostrar sus registros
LostFocu Al perder el foco Cuando el formulario pierde el foco
s
Open Al abrir Al abrir pero antes de mostrar el primer
Resize Al cambiar el tamaño registro
Al abrir un formulario o cambiar de tamaño
Unload Al descargar Al cerrar un formulario, antes de desaparecer

Escuela de Tecnología de la Información 263


Microsoft Office Access 2016

Actividad 14: Conociendo el orden de los eventos de un Formulario


Primero creamos, a nivel del módulo, una variable que se irá incrementando cuando se
produzcan determinados eventos.
Vamos asociando cada uno de los eventos y escribimos su código
El código sería tan simple como éste:

Option Compare Database


Option Explicit
Dim intNumero As Integer

Private Sub Form_Activate()


MuestraOrden "Activate"
End Sub

Private Sub Form_Close()


MuestraOrden "Close"
End Sub

Private Sub Form_Current()


MuestraOrden "Current"
End Sub

Private Sub Form_Deactivate()


MuestraOrden "Deactivate"
End Sub

Private Sub Form_GotFocus()


MuestraOrden "GotFocus"
End Sub

Private Sub Form_Load()


MuestraOrden "Load"
End Sub

Private Sub Form_LostFocus()


MuestraOrden "LostFocus "
End Sub

Private Sub Form_Open(Cancel As Integer)


MuestraOrden "Open"
End Sub

Private Sub Form_Resize()


MuestraOrden "Resize"
End Sub

264 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Private Sub Form_Unload(Cancel As Integer)


MuestraOrden "Unload"
End Sub

Private Sub MuestraOrden(ByVal Evento As String)


intNumero = intNumero + 1
MsgBox CStr(intNumero) & " " & Evento
End Sub

Private Sub cmdCerrar_Click() On Error GoTo


HayError
DoCmd.Close
Salir:
Exit Sub
HayError:
MsgBox Err.Description
Resume Salir
End Sub
Ejecutamos el formulario .

Estos eventos son los que se ejecutan en ese orden antes de que se muestre el
formulario

Escuela de Tecnología de la Información 265


Microsoft Office Access 2016

Tras presionar el botón de cierre, se genera el evento Unload, y justo antes de que
se cierre y se descargue de memoria, el evento Close.

Crear propiedades y métodos públicos en el módulo de clase del formulario.

Se ha mencionado que el código asociado a un formulario es su código de clase, por lo tanto, es


posible poder escribir nosotros propiedades y métodos en él. Para entenderlo mejor lo haremos
con un ejemplo donde se va a crear la propiedad Numero que contendrá un dato numérico que
asociaremos al formulario.
Repasando el tema de propiedades y métodos, crearemos un nuevo formulario al que
llamaremos FormularioNumerado. Le pondremos un botón de cierre, con el nombre
cmdCerrar y ingresamos código en el evento Al hacer Clic. Y asignamos el nombre al
formulario de Form_FormularioNumerado
En el código del módulo de la clase le pondremos una variable privada de tipo numérico y
crearemos la propiedad Número.
El código de este nuevo formulario será:

Option Compare Database


Option Explicit
Dim intNumero As Integer
Public Property Get Numero() As Integer
Numero = intNumero
End Property
Public Property Let Numero(ByVal NuevoNumero As Integer)
intNumero = NuevoNumero
Caption = "Formulario Nº " & Format(.Numero, "000")
End Property
Private Sub cmdCerrar_Click()
On Error GoTo HayError
DoCmd.Close
Salir:
Exit Sub

266 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

HayError:
MsgBox Err.Description
Resume Salir
End Sub

Si abrimos el Examinador de objetos, vemos que en la clase del formulario ha aparecido la


propiedad Numero.

Igualmente podríamos comprobar que existe el procedimiento privado cmdCerrar_Click

Instanciar un formulario
Existen múltiples formas de instanciar a un formulario, o lo que es lo mismo, asignar un
formulario concreto a una variable.
Hay que tener en cuenta que una variable, que vaya a hacer referencia a un formulario debe ser
del tipo Variant, Object o Form.

Escuela de Tecnología de la Información 267


Microsoft Office Access 2016

Se ha mencionado anteriormente que el tipo Variant es el más usado de todos, admitiendo casi
cualquier cosa. El tipo object admite usualmente cualquier tipo de objeto, pero al contrario que
el Variant, no puede admitir valores que no sean objetos.
La vinculación en tiempo de ejecución, empleando variables del tipo Variant u Object crea una
serie de inconvenientes, como un control más vago de los posibles errores, un código menos
eficiente y la falta de ayuda “en línea” al escribir el código.
Por ello, cuando a una variable hay que establecer un objeto concreto, es mejor declararla que
sea declarada del tipo de ese objeto; en nuestro caso del tipo Form; y mejor aún como Ya hemos
dicho que nuestro formulario es un objeto del tipo Form_FormularioNumerado, podríamos
declarar una variable de su tipo, con lo que para activarlo bastaría con asignarlo a la variable con
Set y New.
Para comprobarlo, vamos a crear un módulo estándar y en él procederemos a crear una variable
del tipo Form_FormularioNumerado,
Precisamos que el asistente en línea, nos lo muestra como una de las posibilidades,
acompañándolo con el icono que define a las clases.

Vamos ahora a crear un procedimiento que presente una instancia de ese formulario y le asigne
algunas propiedades
Option Compare Database
Option Explicit
Public MiFormulario As Form_FormularioNumerado
Public Sub CargaFormulario()
' Creamos la instancia del formulario
Set MiFormulario = New Form_FormularioNumerado
With MiFormulario
.Numero = 1
.Caption = "Formulario Nº " & Format(.Numero, "000")
End With
MiFormulario.visible=True
End Sub
Ejecutamos el procedimiento y superficialmente no ha pasado nada. De hecho, sí ha pasado. Lo
que ocurre es que el formulario está cargado, vamos a Access y lo vamos a ver en vista
Formulario.

268 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Múltiples instancias de un formulario


También, como con el resto de las clases, podríamos crear Instancias múltiples de un formulario.
Por ejemplo, si tuviéramos el formulario Clientes, podríamos crear 5 instancias, cada una de
ellas mostrándonos los datos de un cliente diferente.
Vamos a ver cómo podríamos hacerlo con nuestro formulario. En un módulo ponemos

Public aFormularios(1 To 10) As Form


Public Sub FormulariosMultiples() Dim i As Integer
For i = 1 To 10
Set aFormularios(i) = New Form_FormularioNumerado
With aFormularios(i)
.Caption = " Formulario Nº " & Format(i, "000")
.Visible = True
End With
Next i
End Sub

En el caso anterior hemos creado diez formularias, cada uno de ellos con una barra de título
diferente.
En realidad, los formularios se muestran todos en la misma posición, pero han sido desplazados
individualmente para que aparezcan tal como aparecen en la imagen. Verificamos con esto que
tenemos libertad para cambiar las propiedades individuales de cada formulario.

Escuela de Tecnología de la Información 269


Microsoft Office Access 2016

En concreto casi cualquier propiedad del formulario que sea de escritura, por ejemplo
verificamos en la barra de titulo el cambio de la propiedad Caption en cuanto al nombre del
Formuario.

Hagamos otro ejemplo, donde aparte de la propieda Caption vamos a modificar la propiedad
Color del Formulario.
Las variaciones de color en la sección Detalle se ha realizado de la siguiente forma:

Public aFormularios(1 To 10) As Form


Public Sub FormulariosMultiples() Dim i As Integer
Dim lngColor As Long
For i = 1 To 10
Set aFormularios(i) = New Form_FormularioNumerado
With aFormularios(i)
' Pongo el título del formulario
.Caption = " Formulario Nº " & Format(i, "000")
' Color de la sección Detalle
lngColor = RGB(25.5 * i, 128 + 12 * i, 170 + 6 * i)
.Detalle.BackColor = lngColor
' Elimino el selector de registros
.RecordSelectors = False
' Elimino los botones de navegación
.NavigationButtons = False
' Hago visible el formulario

270 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

.Visible = True
End With
Next i
End Sub

Conexión con datos en un formulario

Sabemos que un formulario puede existir sin estar conectado a ninguna tabla de la base de datos
o consulta.
Pero a la vez, se puede establecer la conexión de un formulario con un origen de datos por código
VBA en tiempo de ejecución. E incluso, como veremos con la biblioteca de ADO, podríamos
enlazarlo a un conjunto de datos (Recordset) que exista únicamente en la memoria de la PC.
Para comprobarlo, vamos a crear la tabla Datos con los siguientes campos

A continuación, creamos un formulario, de nombre frmDatos, con dos cuadros de texto. Sus
nombres serán txtDatCodigoy txtDatNombre.

Escuela de Tecnología de la Información 271


Microsoft Office Access 2016

Al cuadro de texto que contendrá el campo DatCodigo (autonumérico) le cambiaremos sus


propiedades Habilitado (Enabled) y Bloqueado (Locked), para que no se pueda acceder,
desde el formulario al campo Datcodigo, que es autonumérico

Pero esto lo haremos por código en el evento Al cargar (OnLoad) del formulario.

Para asignar una tabla, o consulta, a un formulario, utilizaremos la propiedad Origen del
registro (RecordSource).
Esto lo podemos hacer también en el evento Al cargar.
A la propiedad le asignaremos una cadena que puede contener:
 El nombre de una tabla
 El nombre de una consulta guardada
 Una cadena SQL.
En nuestro caso serían igualmente válidas las siguientes opciones:
 Me.RecordSource = "Datos"
 Me.RecordSource = "Select * From Datos;"
 Me.RecordSource = "Select DatCodigo, DatNombre From Datos;"
 Me.RecordSource = "Select Datos.Datcodigo, Datos.DatNombre From Datos;"
 Me.RecordSource = "Select [DatCodigo], [DatNombre] From Datos;"

272 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Respecto a la palabra Me, que estamos utilizando podemos recordar que la vimos cuando
analizábamos las clases. De esto deducimos que Me representa el objeto creado mediante
la clase, es decir, representa al propio formulario.
Por eso, si escribimos Me y a continuación el punto, nos aparece la ayuda en línea que nos
suministra el propio editor de Visual Basic.
Las siguientes instrucciones serían tan válidas, como los utilizadas en las líneas anteriores.
txtidDato.Enabled = False
txtidDato.Locked = True
RecordSource = "Select DatCodigo, DatNombre From Datos;"
Si abrimos el formulario, sin asignarle un origen de datos, tendrá un aspecto semejante a
éste:

Vamos a observar cómo cambia al asignarle un origen de datos.


En el evento, Al cargar del formulario, escribimos lo siguiente:
Private Sub Form_Load()
Dim strSQLDatos As String
txtidDato.Enabled = False
txtidDato.Locked = True
strSQLDatos = "Select DatCodigo, DatNombre From Datos;"
RecordSource = strSQLDatos
End Sub

Escuela de Tecnología de la Información 273


Microsoft Office Access 2016

Observamos que nos indica que tenemos un determinado número de registros Exactamente 10,
por lo que podemos creer que efectivamente está conectado a la tabla Datos. La única
observación seria que no se visualiza nada en los cuadros de texto.
Esta conexión entre los cuadros de texto y los correspondientes campos de la tabla, se debe
realizar después de que hayamos conectado la tabla al formulario.
En un control, el campo al que se conecta, lo determina la propiedad Origen del control
(ControlSource). Su sintaxis es así
NombreDelControl.ControlSource = NombreDelCampo
Para ello cambiaremos el código del evento Al cargar de la siguiente manera:

Con lo que el formulario se verá de una forma semejante a esta:

274 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Comprobamos que ahora sí tenemos acceso a los datos.


Cambio, en tiempo de ejecución del origen de datos.
Vamos a crear ahora una segunda tabla a la que vamos a
llamar Datos2.
Para facilitar haremos que esta nueva tabla contenga los
mismos campos que la tabla Datos.
Modificaremos el contenido de la columna DatNombre
para que podamos evaluar la diferencia. Se ha
modificado los datos como se muestra en la ventana de
la Tabla Datos2.

Para demostrar el proceso, copiamos el formulario


anterior y le ponemos como nombre
frmDatosAlterados. Al copiar el formulario, se
copiará con sus propiedades y código asociado.
A continuación, a este nuevo formulario le
añadiremos dos botones que serán los que
efectúen el “reemplazo” al hacer Clic sobre ellos.

A estos botones le pondremos por nombre


cmdTabla1y cmdTabla2.
En cada uno de los eventos Al hacer clic , escribimos respectivamente lo siguiente.
Sólo con esto podemos comprobar que cambiamos el origen de datos para el formulario
simplemente modificando la cadena de SQL que define el conjunto de datos con el que queremos
trabajar, utilizando simplemente la propiedad.

Escuela de Tecnología de la Información 275


Microsoft Office Access 2016

Ejecutamos el formulario y damos clic a los botones respectivamente y observamos el cambio.

Modificar en tiempo de ejecución del origen de datos, con nombre de campos diferentes.
En los puntos anteriores, hemos conectado un formulario a dos tablas diferentes, con sólo pulsar
un botón. El problema era muy sencillo de resolver, ya que los campos tienen el mismo nombre
en ambas tablas.

Actividad 15: Usando la propiedad ControlSource en tablas diferentes


Del ejercicio anterior desarrollado de conexión a datos con ControlSource, vamos a tomar
el mismo formulario y vamos a copiar le ponemos de nombre a la copia frmTresTablas
y le añadimos un nuevo botón cmdDepartamento.
Copiaremos dicha tabla de la base de datos Senati, con los campos depCodigo y
depNombre.

276 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Vamos a hacer que cuando se pulse el botón cmdDepartamento se muestren las


provincias, y cuando se pulsen los otros botones, se muestren sus respectivas tablas.
Adicinalmente le vamos a agregar en la barra del título del formulario nos muestre el
nombre de la tabla conectada usando la propiedad Caption del formulario.
También vamos a modificar el nombre de las etiquetas asociadas a los cuadros de texto,
poniéndoles como nombres respectivos, lblCodigo y lblNombre. El prefijo lbl nos ayuda
a entender que ese nombre le corresponde a una etiqueta (Label).
Nuestro formulario en modo diseño quedara así:

Para lograr nuestro objetivo, añadimos código para gestionar el evento Clic del nuevo
botón, y modificamos el código anterior.
El código completo quedará así:
Option Compare Database
Option Explicit
Private Sub Form_Load()
Dim strSQLDatos As String
txtidDato.Enabled = False
txtidDato.Locked = True
cmdTabla1_Click
End Sub

Private Sub cmdTabla1_Click()


AjustaCamposTablas
Caption = "Tabla Datos1"
RecordSource = "Select Datcodigo, DatNombre From Datos;"
End Sub
Private Sub cmdTabla2_Click()
AjustaCamposTablas
Caption = "Tabla Datos2"
RecordSource = "Select Datcodigo, DatNombre From Datos2;"
End Sub
Private Sub cmdDepartamento_Click()
RecordSource = "Departamentos"
Caption = "Tabla Departamento"
txtDatCodigo.ControlSource = "depCodigo"

Escuela de Tecnología de la Información 277


Microsoft Office Access 2016

txtDatNombre.ControlSource = "depNombre"
txtDatCodigo.Format = "00"
If lblCodigo.Caption <> "Clave:" Then
lblCodigo.Caption = "Clave:"
lblNombre.Caption = "Departamento:"
End If
End Sub
Private Sub AjustaCamposTablas()
txtDatCodigo.ControlSource = "DatCodigo"
txtDatNombre.ControlSource = "DatNombre"
txtDatCodigo.Format = "#,##0"
If lblCodigo.Caption <> "Codigo:" Then
lblCodigo.Caption = "Codigo:"
lblNombre.Caption = "nombre:"
End If
End Sub
Podemos ver que desde el evento Load, se llama directamente al gestor del evento Clic del
botón cmdTabla1mediante la instrucción:
cmdTabla1_Click
Esto es así porque un gestor de evento no deja de ser un procedimiento Sub y además por
tanto se puede le llamar de forma directa. El formulario mostrará la información que
seleccionemos mediante los botones:

Propiedades de los formularios


Es de conomiento ya a esta altura que una clase esta definida por:
 Propiedades
 Métodos
 Eventos.
Una propiedad es una característica que tiene un objeto de una clase determinada que podemos
leer, escribir o ambas cosas.
Los métodos son procedimientos determinados en una clase que pueden devolver valores, como
es el caso de funciones, o sólo ejecutar una serie de instrucciones de código.

278 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Los métodos pueden recibir parámetros, tanto por valor como por referencia. Pueden entregar
datos simples, como cadenas, valores numéricos, boleanos, etc… ú objetos.
Lo dicho en el punto anterior es perfectamente aplicable a las propiedades. Las propiedades de
los formularios a las que podemos acceder, o construir, afectan:
 Al diseño y aspecto del formulario, tal como su tamaño, posición, color…
 A los orígenes de datos a los que puede estar conectado.
 Otras características, como la forma en que se imprimirá en una impresora en
particular.
Por lo extenso del tema no podremos dar un repaso a todas las propiedades de los formularios,
pero sí hablaremos de las más interesantes.

Propiedades de Formato
Para hablar de las propiedades tenemos que ver la versión en la cual se esta trabajando, en nuestro caso,
Access 2016.

Propiedad Título (Caption)


Controla en un formulario el texto que aparecerá en la barra de título de un formulario. Es una
propiedad de tipo cadena (String) y es de lectura – escritura.
Esta propiedad ya fue usada en el ejemplo anterior
Caption = "Tabla Departamento"
Recordemos que la línea anterior es equivalente a:
Me.Caption = "Tabla Departamento"
Esta propiedad caption no es exclusividad de los
formularios, hay otros objetos que también
poseen esta propiedad, como las etiquetas,
informes, botones de comando, etc…
Vamos a poner en un formulario nuevo una
etiqueta de nombre lblTitulo y un botón de
comando de nombre cmdTitulo.

En el evento Al cargar del formulario escribimos:


Private Sub Form_Load()
Caption = "Este es el valor de la propiedad Caption"
lblTitulo.Caption = "Título de la etiqueta"
cmdTitulo.Caption = "Título del botón"
End Sub
Al abrir el formulario veremos algo como esto:

Escuela de Tecnología de la Información 279


Microsoft Office Access 2016

Propiedad Presentación Predeterminada (DefaultView)


Especifica qué modo de presentación tendrá el formulario en el momento en que se abra. Sus
posibles valores son

Modo de Presentación Valor Descripción

Formulario simple 0 Es el valor predeterminado. Muestra un solo


registro cada vez.

Formularios continuos 1 Esta opción permite visualizar múltiples registros.

Hoja de datos 2 Muestra los datos del formulario organizados en


filas y columnas como si fuera una hoja de cálculo
donde las filas representan a los registros y las
columnas a los campos.
PivotTable 3 * Muestra el formulario como una tabla dinámica.

PivotChart 4 ** Muestra el formulario como un gráfico


dinámico.
Estas propiedades sólo pueden establecerse por código cuando el formulario está en modo
diseño. Si tratamos de hacerlo en tiempo de ejecución nos dará un error.
Puede causarnos sorpresa, pero en un formulario por código no sólo podemos modificar sus
características, sino incluso añadirle controles. Algunos de estos procesos sólo pueden
realizarse si ponemos el formulario en modo diseño.
Propiedad AllowFormView
Nos permite inspeccionar si podemos mostrar el formulario en el modo de presentación de
Formulario simple.
Propiedad AllowDatasheetView
Nos permite controlar si se permite el modo de presentación Hoja de datos
Estas dos últimas propiedades mencionadas, son de tipo Boleano.

280 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Propiedad Barras de Desplazamiento (ScrollBars)


Mediante esta propiedad podemos especificar la aparición o no, tanto de la barra de
desplazamiento vertical como de la horizontal.
Es aplicable a formularios y cuadros de texto, teniendo en cuenta que los cuadros de texto sólo
pueden tener barras verticales
Sus posibles valores son

Barras Valor Descripción

Ninguna 0 No aparecen barras de desplazamiento. En los cuadros de texto


esta es la opción predeterminada

Sólo horizontal 1 Muestra barra de desplazamiento horizontal en el formulario

Sólo vertical 2 Muestra una barra de desplazamiento vertical.

Ambas 3 Es el valor predeterminado para los formularios. En el


formulario aparecen barras de desplazamiento tanto horizontal
y vertical. No se aplica a cuadros de texto.

Propiedad Selectores de registro (RecordSelectors)


Permite Mostrar u ocultar la barra vertical selectora de registros.
Vamos a poner en un formulario un botón de comando con el nombre cmdSelectores y
comprobemos el resultado cada vez que lo presionamos.
Private Sub cmdSelectores_Click()
RecordSelectors = Not RecordSelectors
If RecordSelectors Then
cmdSelectores.Caption = "Ocultar selector de registro"
Else
cmdSelectores.Caption = "Mostrar selector de registro"
End If
End Sub

Escuela de Tecnología de la Información 281


Microsoft Office Access 2016

Propiedad Botones de desplazamiento (NavigationButtons)


Permite Mostrar u ocultar los botones de desplazamiento entre registros y las etiquetas que
indican su número.
Ponemos un botón con el nombre cmdBotonesDeDesplazamiento y comprobemos el resultado
cada vez que lo presionamos.

Private Sub cmdBotonesDesplazamiento_Click()


NavigationButtons = Not NavigationButtons
If NavigationButtons Then
cmdBotonesDeDesplazamiento.Caption = "Ocultar Botones de Desplazamiento"
Else
cmdBotonesDeDesplazamiento.Caption = "Mostrar Botones de Desplazamiento"
End If
End Sub

Otras Propiedades de formato de tipo Bolean que pueden establecerse en tiempo de


ejecución.
 Separadores de registros (DividingLines) especifica si habrá separadores de
registros separando las secciones de un formulario o los registros mostrados en un
formulario continuo.
 Formulario movible (Moveable) establece si el formulario se podrá o no
desplazar por la pantalla.
 Propiedad Activado (Enabled) esta propiedad define si un objeto está activado y
por tanto podrá responder a eventos.
 Propiedad Bloqueado (Locked) esta propiedad especifica si se pueden editar los
datos de un control en la vista Formulario. Es muy útil para mostrar datos en un
cuadro de texto, que no queremos que el usuario pueda cambiar.

282 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Visualizar en un Formulario un campo


Si deseamos que se visualice en un formulario un campo, en este caso de tipo auto numérico, que
el usuario no pueda editarlo, es habitual poner, para ese control, la propiedad Enabled a False,
y la propiedad Locked a True.
Este es un ejemplo de formato para un TextBox, en el evento Al cargar del formulario.
Private Sub Form_Load()
With codigoProducto
.Enabled = False ' Sin activar
.Locked = True ' Bloqueado
.BackStyle = 0 ' Fondo transparente
.BorderStyle = 1 ' Borde fino
.ForeColor = 128 ' Color Burdeos del texto
.FontName = "Arial" ' Fuente de tipo Arial
.FontSize = 12 ' Tamaño de fuentuntos
.FontBold = True ' Fuente en negrita

End With
End Sub
Así se vería el control:

Como se ha visto se puede modificar la apariencia del control

Propiedad Imagen (Picture)


Mediante esta propiedad podemos establecer la imagen que queremos mostrar como fondo del
formulario, de un botón, informe, etc…
Admite distintos tipos de ficheros gráficos
Su sintaxis es
Objeto.Picture = "RutaYNombreDelFicheroGráfico"
Nota:
cmdPaletas.Picture ="c:\Icono\icono.gif"

Escuela de Tecnología de la Información 283


Microsoft Office Access 2016

Los Botones de Access no admiten mostrar


simultáneamente un texto y una imagen.
Esto no es un problema solucionable, ya
que podemos crearnos un fichero gráfico
que incluya el texto, con cualquier
herramienta de diseño.
En el ejemplo, tenemos un botón con el
gráfico típico de salida y el texto.
Si agregamos el siguiente código:
Me.Picture ="c:\iconos\MiFoto.jpg"

Si Modificamos el código anterior por este otro, observaremos:


Picture ="c:\Iconos\logo.bmp"

Podríamos incluso hacer cambiar el gráfico cuando se pulse el botón, y cuando se vuelve a soltar.
Para ello podemos aprovechar los eventos
 Al bajar el Mouse (MouseDown) que se produce al presionar un botón del ratón
sobre el botón
 Al subir el Mouse (MouseUp) se produce al levantar el botón del ratón sobre el
botón después de haberlo presionado

284 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Diseñamos el siguiente formulario

Private Sub cmdMouse_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

cmdMouse.Picture = "C:\iconos\mouse1.gif"
End Sub

Private Sub cmdMOuse _MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

cmdMouse.Picture = "C:\iconos\mouse2.gif"
End Sub
Ejecutamos el formulario y observaremos

Eventos del ratón MouseDown y MouseUp


En el controlador de estos eventos, podemos averiguar
 Mediante el parámetro Button, qué botón hemos presionado pudiendo tomar estos
valores:
acLeftButton 1 Botón izquierdo del ratón
acRightButton 2 Botón derecho
acMiddleButton 4 Botón central

Escuela de Tecnología de la Información 285


Microsoft Office Access 2016

Podemos controlar también si hemos presionado, de forma simultánea alguna de estas teclas
 Mayúscula 1
 Control. 2
 Alt 4
Y cualquier combinación de ellas (es la suma de los valores anteriores)

Este código nos mostrará en un cuadro de mensaje si se ha presionado alguna de las teclas
anteriores mientras se pulsaba un botón del ratón.
Private Sub cmdMiBoton_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Select Case Shift


Case 0
MsgBox "Sólo el ratón"
Case 1
MsgBox "Tecla Mayúscula"
Case 2
MsgBox "Tecla Control"
Case 3
MsgBox "Teclas Mayúscula y Control"
Case 4
MsgBox "Tecla Alt"
Case 5
MsgBox "Teclas Mayúscula y Alt"
Case 6
MsgBox "Teclas Control y Alt"
Case 7
MsgBox "Teclas Mayúscula Control y Alt"
End Select
End Sub
Estas combinaciones nos permiten definir diferentes comportamientos de un control al pulsarlo
con el ratón dependiendo de si se ha pulsado simultáneamente una tecla Mayúscula Control o
Alt, o incluso combinaciones de ellas.

286 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Trabajando con colores en un control


Propiedad Estilo del fondo (BackStyle)
Controla si el fondo de un control es opaco ó transparente.

0 Transparente El control completo o parte de él serán transparentes

1 Opaco El fondo del control tendrá el color definido por la propiedad


Color de fondo (BackColor)

Propiedad Color de fondo (BackColor)


La propiedad que gobierna el color de fondo de la mayoría de los objetos es la propiedad
BackColor.
Esta propiedad admite valores de tipo Long, en el rango:
del RGB(0,0,0) 0 (Negro)
al valor RGB(255,255,255) 16.777.215 (Blanco)
Otra forma de acceder a los colores es mediante la función QBColor(Índice), que admite para
el parámetro Índice, valores del 0 al 15

Indice Color Indice Color

0 Negro 8 Gris

1 Azul 9 Azul claro

2 Verde 10 Verde Claro

3 Aguamarina 11 Aguamarina claro

4 Rojo 12 Rojo claro

5 Fucsia 13 Fucsia claro

6 Amarillo 14 Amarillo claro

7 Blanco 15 Blanco brillante

Utilización de las constantes definidas en el módulo


ColorConstants: Estas son:

vbBlack Negro 0

vbBlue Azul 16.711.680

vbCyan Cyan 16.776.960

Escuela de Tecnología de la Información 287


Microsoft Office Access 2016

vbGreen Verde 65.280

vbMagenta Magenta (rojo primario) 16.711.935

vbRed Rojo 255

vbWhite Blanco 16.777.215

vbYellow Amarillo 65.535

Propiedad Color del texto (ForeColor)


Esta propiedad define el color que va a mostrar el texto de un control. Hay otras propiedades
que definen aspectos del color en un objeto BorderColor
Como su propio nombre indica, define el color de los bordes de un objeto. Fijémonos en el
siguiente código:
Private Sub Form_Load()
With txtDato
.Enabled = False
.Locked = True
.BackStyle = 0
.BackColor = vbYellow
.BorderStyle = 1
.ForeColor = vbBlue
.FontName = "Arial"
.FontSize = 12
.FontBold = True
.BorderWidth = 2
.BorderColor = vbRed
End With
End Sub

288 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Define un cuadro de texto (TextBox) en el que lo que escribamos se verá en color azul, tendrá
un borde rojo y el fondo del mismo será de color amarillo.

Propiedad Color de los bordes (BorderColor)


Define el color que van a mostrar los bordes de un control.
El grosor de los bordes lo define la propiedad Ancho de los bordes (BorderWidth)

Otras propiedades para el formato de objetos

Propiedad Estilo de los Bordes (BorderStyle)


Es una propiedad que funciona de forma diferente, si se aplica a un formulario o se aplica a un
control.
En un formulario puede tomar los siguientes valores
0 Ningún No aparece ningún borde ni ningún elemento relacionado con los
borde mismos. No se puede cambiar el tamaño del formulario.

1 Bordes El formulario tiene un borde fino y puede mostrar los elementos


delgados relacionados. No se puede cambiar su tamaño.

2 Bordes Es el valor predeterminado de Access.


ajustables Puede mostrar los elementos relacionados con el borde, y ajustar su
tamaño con el cursor.
3 Cuadro de El borde del formulario se pone de tamaño doble. Nos muestra una barra
Diálogo de título, un botón cerrar y un menú control. El formulario no puede ni
maximizarse, ni minimizarse ni cambiar de tamaño.
Además, puede mostrarse como Modal (por encima de todas las demás
ventanas) poniendo sus propiedades Emergente (PopUp) y Modal al
valor True.

Escuela de Tecnología de la Información 289


Microsoft Office Access 2016

En un control sus valores pueden ser

0 Transparente Predeterminado sólo para etiquetas, gráficos y sub-


informes
1 Sólido Línea sólida (Predeterminado)

2 Guiones Línea de guiones

3 Guiones cortos Línea de guiones cortos

4 Puntos Línea de puntos

5 Puntos separados Línea de puntos separados

6 Guión punto Línea con una combinación de punto y raya

7 Guión-punto-punto Línea con una combinación de raya punto y punto

8 Sólido doble Líneas dobles


Propiedad: ancho de los bordes (BorderWidth)
Especifica el ancho del borde de un control. Es de tipo Byte. Valores admitidos:
0 Trazo fino Predeterminado sólo para etiquetas, gráficos y sub-
informes
1 a 6 De 1 a 6 ptos. Ancho en puntos

En la ayuda de Access puede encontrar información completa de cómo hacer efectiva esta
propiedad.

Editando el código de los controles ActiveX


Los controles ActiveX son pequeños objetos que se crean para generar aplicaciones para
manejo de datos. Los usos más frecuentes de los controles ActiveX son los botones de comando,
cuadros de lista, etiquetas, botones de opción y cuadros de diálogo.

Actividad 16: Creando una barra de progreso


Vamos a crear un formulario en el que vamos a colocar tres barras que funcionarán al
estilo de las Barras de Progreso (ProgressBar).
Haremos que, al desplazar las barras, varíe la proporción de Rojo, Verde y Azul del fondo
del formulario, con lo que irá variando su color.
Hay que notar que que no se va a utilizar ningún control ActiveX, como los que vienen
en la librería MsComCtlLyb, para realizar las barras de desplazamiento.
Éstas las vamos a crear nosotros. Fijémonos en el siguiente gráfico:

290 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Para imitar la barra utilizaremos 3 etiquetas colocadas una encima de la otra. La inferior
lblColor3 tendrá el fondo de color blanco.
La intermedia lblColor2 será de color Rojo, Verde ó Azul, e irá cambiando su anchura
cuando pulsemos con el cursor en la etiqueta superior y lo desplacemos.
La superior lblColor1, a diferencia de las otras dos, será transparente, además de poseer
un borde negro y mostrar un valor numérico, del 0 al 255, también en negro.
El procedimiento será el siguiente, en un formulario colocamos una etiqueta con el texto
Rojo, ocupando casi todo el ancho del mismo.
Le ponemos como nombre lblRojo1

Seleccionamos la etiqueta, la copiamos y la pegamos dos veces.


A estas dos nuevas etiquetas les ponemos como nombres lblRojo2 y lblRojo3.
Estas dos últimas las hacemos más pequeñas y las ponemos cerca de la primera, pero por
debajo de ella.
Quedarán con un aspecto similar a éste.

Escuela de Tecnología de la Información 291


Microsoft Office Access 2016

Ahora seleccionamos la etiqueta lblRojo1 y


pulsamos en la opción Traer al frente del grupo
de comandos Tamaño y orden que se encuentra en
la ficha Organizar.
Repetimos la misma acción para la etiqueta
lblRojo2 y lblRojo3.

Propiedad Izquierda (Left)


Nos permite especificar la distancia de la parte izquierda de un objeto a la parte izquierda
del objeto que lo contiene.
Se puede especificar, por ejemplo, la distancia de una etiqueta respecto del borde izquierdo
de un formulario o de un informe. Es de Lectura y Escritura.
Existe otra propiedad semejante:
Propiedad Superior (Top)
Nos permite especificar la distancia de la parte superior de un objeto al borde superior del
objeto que lo contiene.
Estas dos propiedades mencionadas son de tipo Long en los informes y de tipo integer
en los formularios
Propiedades Alto y Ancho (Height) y (Width)
Height especifica la altura de un objeto
Width especifica su anchura
Vamos a utilizar estas propiedades para colocar y dimensionar correctamente las etiquetas.
En el evento Al cargar del formulario escribimos:

292 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Abrimos el formulario y observamos que sólo nos muestra la palabra Rojo.

Pero esa es precisamente la demostración de que hemos conseguido una parte de lo que
queríamos y es que las tres etiquetas están colocadas exactamente una encima de la otra.
Ahora vamos a mostrar las etiquetas, para lo que modificaremos el código.
En vez de ponerlo todo en el evento Al Cargar haremos que desde este evento llame al
procedimiento FormateaEtiquetasque es el que hará todo el trabajo:

Ingresamos a generar código y escribimos

Grabamos con el nombre frmEtiquetas01.

Escuela de Tecnología de la Información 293


Microsoft Office Access 2016

El resultado de este código es éste:

294 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

En el código aparece la propiedad TextAlign


Propiedad Alineación del texto (TextAlign)
Con esta propiedad podemos definir la colocación del texto que aparece en un control
0 General Texto a la izquierda, números y fechas a la derecha
1 Izquierda Todos los datos a la izquierda
2 Centro Centrado
3 Derecha Alineación a la derecha
4 Distribuir El contenido se reparte por la anchura del control.
Ojo: No es lo mismo que la Justificación del texto de
Word.

El valor pasado a la propiedad TextAlign ha sido 2, con lo que vemos el valor 50 centrado
en la etiqueta.
Antes de continuar vamos a dar formato al formulario.
Primero ponemos la propiedad Estilo de los bordes al modo Cuadro de diálogo, desde su
ventana Propiedades.
A continuación, por código haremos las siguientes operaciones:
 Quitar la barra de desplazamiento que aparece en horizontal
 Quitar el selector de registros
 Quitar los botones de desplazamiento
 Quitar el separador de registros

Para ello crearemos el procedimiento FormateaFormulario, que será llamado desde el evento
Al Cargar.
Para conseguirlo el código quedará así:
Private Sub Form_Load()
FormateaEtiquetas
FormateaFormulario
End Sub

Private Sub FormateaFormulario()


ScrollBars = 0 ' Sin barras de desplazamiento
RecordSelectors = False ' Sin selector de registros
NavigationButtons = False ' Sin Botones desplazamiento
DividingLines = False ' Sin Separador de registros
End Sub

Escuela de Tecnología de la Información 295


Microsoft Office Access 2016

Con estas modificaciones el formulario quedará así:

Vemos que el aspecto del formulario ha quedado mucho más limpio.


Sabemos que se pudo haber editado a través de la ventana de propiedades, pero el objetivo
básicamente dos cosas.
 Mostrar cómo se puede hacer por código
 Demostrar el alto grado de control que podemos tener sobre el diseño del mismo

PROGRAMACION A.D.O
ADO significa ActiveX Data Object (Objetos de datos Activex) define un conjunto de acciones
dentro de su modelo para poder accede a los origenes de datos. Este modelo proporciona los
medios necesarios para realizar dichas acciones mediante los métodos y propiedades de los
objetos, y los eventos informan de si se van produciendo satisfactoriamente o no. Los pasos de
esta secuencia son:
 Conectarse a un Origen de Datos, empleando un objeto Connection. Si se desea realizar
una transacción con otra base de datos externa a Access, se debe hacer en este punto.
 Especificar un comando (objeto Command) para tener acceso al origen de datos,
opcionalmente con parámetros variables (objeto Parameter ). Se puede usar una
instrucción SQL se deberán indicar columnas, tablas y valores de la instrucción SQL
como parámetros.
 Ejecutar Comando
 Si el comando hace que los datos se devuelvan en form de filas, almacenar las filas en
un objeto Recordset que se pueda examinar, manipular o cambiar con facilidad.
 Agregar, eliminar o cambiar filas y columnas que uno desee, y actualizar el origen de
datos con los cambios de las filas de la memoria.
 Como resultado de la conexión o de ejecutar un comando, se proporciona un medio
general de detección de errores ( objeto Error )

296 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

 Por ultimo, se ha de finalizar la conexión. En caso de utilizar una transacción, se deberá


confirmar o cancelar.
Este tipo de conexión sustituye a la antigua modelo de conexión llamado DAO, que solo
permitia poder conectar solo base de datos relacionales, mas no a datos orientados a objetos.
Esquema básico de como funciona una conexión ADO

1.-Crear conexión, es necesario el objeto Connection

2.-Extraer información, es necesario el objeto Command

3.-Almacenar la información extraída, es necesario el objeto


Recordset

La relación de base de datos que se puede conectar están


 Access
 Oracle
 MySQL
 Excel (no es base de datos relacionales)
 Páginas Web, etc
Instalacion de una Referencia a ADO
Para poder trabajar con ADO y que esta reconozca es necesario agregarle unas librerías ya que
están no vienen instaladas por defecto.
El procedimiento será el siguiente

Escuela de Tecnología de la Información 297


Microsoft Office Access 2016

Abrir el editor de código de la base de datos


Una vez que estamos en modo edición de código VBA,
debe activarse la opción Herramientas – Referencias de
la barra de menú superior.
Cuando se pulsa esta opción, aparece una ventana que
muestra todas las bibliotecas de software disponibles,
ordenadas por orden alfabetico. La biblioteca deseada
es “Microsoft ActiveX Data Objects 6.1 Library” y
también debemos seleccionar “Microsoft ADO Ext. 6.0
for DLL and Security”. Para seleccionarla, basta con
pulsar sobre el recuadro blanco situado a su izquierda.

Actividad 17: Conectando a datos con ADO

Vamos a ejecutar un ejemplo con la propia base de datos actual.


Para elloabrimos bdSenati, nuestra tabla de datos que vamos a utilizar como medio de
conexión es Cursos:

298 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Procedemos a crear un módulo nuevo e independiente le ponemos de nombre DatosADO

Cuando ingreamos la primera línea de código, nos debe mostra la siguiente imagen

Esto significa que se ha actividad las librerías Ado.


El código ingresado es el siguiente.

Escuela de Tecnología de la Información 299


Microsoft Office Access 2016

Procederemos a explicar, que significa cada línea de código, para poder entenderla
Dim nuevaconexion As New ADODB.Connection
 Crea una variable de utilizando el objeto Connection
Set nuevaconexion = CurrentProject.Connection
 CurrentProject.Connection, permite establer la conexión con la base de datos actual.
Dim cadena As String
 Declaramos una variable de tipo cadena de texto

cadena = "SELECT * FROM Cursos"


 Guardamos la variable declarada como texto, una instrucción SQL.
Dim mirecordset As New ADODB.Recordset
 Aca se crea el objeto recordset que es como si fuera una tabla virtual
mirecordset.Open cadena, nuevaconexion
 Aca se abre el recordset, donde utilizamos la conexión activa y además insertamos la
instrucción SQL que fue declarada anteriormente.
Do Until mirecordset.EOF
 Con este código recorre el recordset hasta que llegue al final (EOF, significa End Of
File- Final del archivo)

300 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Debug.Print mirecordset!curnombre
 Imprime en la ventana inmediato el campo curnombre, de la tabla cursos.
mirecordset.MoveNext
 Avanza al siguiente registro, dentro del mismo recordset a cada vuelta del bucle.
Loop
 Termina el proceso repetitivo: Do Until --- Loop
mirecordset.Close
 Cierra el recordset
Set mirecordset = Nothing
 Libera la memoria de los recursor utilizados en el recordset
nuevaconexion.Close
 Cierra la conexión
Set nuevaconexion = Nothing
 Libera la memoria de los recursos utilizados

Cuando se trabaja con tablas existen variables de tipo booleano que son: BOF y EOF
La diferencia entre estas es que BOF significa inicio del fichero o tabla y EOF el final del
fichero o tabla. Por Ejemplo, si ingresamos el siguiente código:
If tablita.BOF=True And tablita.EOF=True Then
MsgBox ¨Tabla Vacia",
End If
Tambien observamos que se puede utilizar las siguientes líneas de comando como son:
Movenext, moveprev, movelast y movefirst, estas opciones me van permitir poder navegar
entre registros.

Escuela de Tecnología de la Información 301


Microsoft Office Access 2016

datos no duplicados en una tabla


Una de las características que no se puede hacer con Ado es que por código VBA, puedes
configurara que no se dupliquen datos al momento de ingresar a una tabla.

Actividad 18: Verificar que al guardar datos no se duplique en la bd


Vamos crear una tabla con las siguientes características:

Creamos un formulario independiente, con las siguientes caracteristicas

Ingresamos datos a la BD, solamente dos registros

Vamos a proceder a crear el siguiente procedimiento y lo ejecutamos , vamos a observar


como se repite en la ventana inmediato, el campo usuario

302 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Procedemos a cambiar el Procedimiento sub por una función, el cambio de código es de


la siguiente manera

Sub CompruebaUsuario Function CompruebaUsuario(elusuario As String) As Boolean

If

End if

End Sub End Function

He aquí el código yla modificación realizada, una vez creada la función, para poder
probarla procedemos a crear, un pequeño procedimiento que lo llamamos prueba y
ejecutamos comoel usuario ingresado es lbello, el mensaje sale verdadero.

Escuela de Tecnología de la Información 303


Microsoft Office Access 2016

Aca vemos la modificación del código en el procedimiento Prueba.

Como es el usuario, el que se desea no se modifique, ingresamos el siguiente código en


el Formulario en el evento LostFocus de la caja de texto correspondiente al txtUsuario.

304 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

El código ingresado es el siguiente:

Abrimos el formulario en vista diseño: si


el nombre que ingresamos a la caja de
texto: txtUsuario es similar a de algunos de
los usuarios qe ya están ingresados en la
tabla, en el caso del ejemplo ( lbello y
xponce) nos saldrá un mensaje y la caja de
texto no poldrá salir de esta caja de texto
hasta que ingresemos un campo

Procedemos a ingresar información en las


cajas de texto y observemos que pasa.:

Escuela de Tecnología de la Información 305


Microsoft Office Access 2016

Cuando le de clic al botón aceptar el foco quedara en la caja de etxto usuario, observemos

Esto quiere decir, mientras yo no modifique correctamente el campo respectivo no podre


almacenar la información en la base de datos, específicamente en la tabal usuario.

Verificamos lo almacenado en la tabla.

306 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Preguntas de Repaso

1. Para que se muestre un mensaje de cuadro de dialogo sin solicitud de entrada de


datos hay que solicitar
a. InputBox
b. MsgBox
c. Debug.Print
d. Print.Debug
2. Si deseo imprimir en la ventana inmediato cual es el comando a utilizar
a. Debug.Print
b. Print.Debug
c. Print.InputBox
d. Ninguna
3. De las siguientes constantes VBA, cual de ellas esta asociada al cuadro de dialogo
a. vbUsesSystem
b. vbDefaultButton
c. vbOkOnly
d. Debug.Print
4. Si desea que el código de un bucle se ejecute al menos una vez ¿Qué bucle elegiría?
a. For-Next
b. Do – Loop While
c. Do While - Loop
d. Ninguna
5. La instrucción If, en que casos se debe emplear
a. En cualquier momento
b. Cuando hay que tomar decisiones
c. Solo cuando se repite las instrucciones
d. Ninguna
6. ¿Para que se utiliza la instrucción Exit For?
a. Salir de la aplicación
b. Salir del proceso repetitivo
c. Salir de la condicional
d. Ninguna

Escuela de Tecnología de la Información 307


Microsoft Office Access 2016

7. ¿Los comandos como DoCMD también pueden usarse en otras aplicaciones de


Office?
a. Verdadero
b. Falso
8. ¿La instrucción SQL, para mostrar registros es?
a. Open
b. Select
c. Load
d. Where
9. La propiedad RecordSource, permite especificar el origen de datos de:
a. Formulario
b. Informe
c. Lista
d. Ninguna
10. ¿Cuál es el mejor tipo de datos para representar datos con puntos decimales?
a. Integer
b. Single
c. Boolean
d. String
11. ¿Cómo se realiza la declaración de una constante pública Pi?
a. Const Public Pi = 3.1415926
b. Public Const Pi = 3.1415926
c. Const Pi = 3.1415926
d. Ninguna
12. ¿Una variable puede ser de tipo:?
a. Tabla
b. Objeto
c. Formulario
d. Ninguna
13. El tipo de datos mas preciso es:
a. Single
b. Currency
c. Double
d. Integer

308 Escuela de Tecnología de la Información


Capítulo 5: Programación con VBA

Ejercicios Casos Practicos


01. Haz un procedimiento de nombre Programa1, que funcione de la siguiente forma:
- El programa nos pide que escribamos dos números positivos menores de 50.
- El programa nos da como resultado el producto de los dos números.
- Si los números no son positivos o son mayores de 50, el programa nos lo dice y
salimos del programa.
- El programa nos pregunta al final si queremos volver a empezar.
02. Escribe un procedimiento de nombre Programa2, que nos vaya pidiendo números. Si
escribimos el número 4 o múltiplo de 4 se acaba; por último, el programa nos da como
resultado el número de números introducidos, exceptuando el 4 o múltiplo de 4.
03. Escribe un procedimiento de nombre Programa3, que haga lo mismo que el anterior,
pero además nos dé la suma de todos los números introducidos, exceptuando el 4 o
múltiplo de 4
04. Escribe un procedimiento de nombre Programa4, que haga lo mismo que el anterior,
pero además nos dé el producto de los números introducidos, exceptuando el 4 o
múltiplo de 4.
05. Escribe un procedimiento de nombre Programa5, que escriba todos los múltiplos de 17
inferiores a 500 y por último nos suma de todos ellos.
06. Escribe un procedimiento de nombre Programa6, que sirva para calcular un cateto de
un triángulo rectángulo a partir del otro cateto y la hipotenusa de la siguiente forma:
- El programa nos pide el valor de la hipotenusa
- El programa nos pide el valor de un cateto.
- Si el cateto es mayor que la hipotenusa, el programa nos da un mensaje de error
y se acaba.
- El programa nos da como resultado el valor del otro cateto y nos pregunta si
queremos volver a empezar.
07. Escribe un procedimiento de nombre Programa7, que escriba los 25 primeros múltiplos
de 3, su suma y su promedio. El programa ha de tener la posibilidad de volver a empezar.
08. Escribe un procedimiento de nombre Programa8, que sirva para calcular el perímetro
de un triángulo o el perímetro de un rectángulo o el perimetro de un círculo. El programa
ha de tener la posibilidad de volver a empezar. Utiliza la estructura “Case”.
09. Escribe un procedimiento de nombre Programa9, que “dibuje” un cuadrado con el
carácter que introducimos por teclado, a partir del lado.
10. Escribe un procedimiento de nombre Programa10, que nos pida un número y dé como
resultado la tabla de multiplicar del número introducido.
11. Escribe un procedimiento de nombre Programa11, que trabaje con funciones, de la
siguiente manera:
- Calcular una suma (crea una “function” de nombre suma)

Escuela de Tecnología de la Información 309


Microsoft Office Access 2016

- Calcular una división (crea una “function” de nombre divide)


- Calcular una Multiplicación (crea una “function” de nombre multiplica).
12. Escribe un procedimiento de nombre Programa12, que nos pida dos sumandos y nos
dé la suma de sus cuadrados y su diferencia (utiliza las funciones: SumaCuadrado y
RestaCuadrado)
13. Escribe un procedimiento de nombre Programa13 que funcione de la siguiente forma:
- El programa nos pide 10 valores.
- El programa calcula la media aritmética (function).
- El programa calcula las desviaciones respecto a la media.
- El programa calcula la desviación media (llamada a la función anterior).
- El programa calcula la varianza (llamada a la función anterior).
- Por último el programa calcula la desviación típica.
14. Escribe un procedimiento de nombre Programa14, que calcule los 25 primeros
términos de la sucesión de término general: 2n+1

15. Un formulario con una etiqueta y dos botones. Cuando se pulsa uno de los botones
aumenta el tamaño del texto. Cuando se pulse el otro botón disminuiría su tamaño.

16. Crear un formulario que llame a una base de datos que se llame usuario y que una vez
ingresado los datos correctamente ingrese al formulario tipo panel de control.

310 Escuela de Tecnología de la Información

S-ar putea să vă placă și