Documente Academic
Documente Profesional
Documente Cultură
UTILIDADES ......................................................................................................................... 75
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:
3. Seleccione los campos que desea incluir en el formulario. Para esto usted puede:
Para deseleccionar campos haga doble clic en los elementos de la lista derecha
o emplee los botones < o <<.
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:
Formulario Instructor
Procedimiento
1. Haga clic en la ficha Crear, en la Cinta Formularios, elegir Asistente para
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 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.
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.
Procedimiento
1. Hacer clic en la ficha Crear, luego la cinta Formularios, luego Formulario en Blanco.
Propiedad Valor
Selectores de registros No
Botones de navegación No
Separadores de registro No
Ancho 10cm
Botón Cerrar Sí
Imagen LogoSenati
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.
4. Puede aplicar colores, que permite conjugar los colores de los formularios que desee
modificar.
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.
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).
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
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).
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.
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.
- 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.
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á.
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. 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
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.
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.
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.
Puede crear una columna de búsqueda en la vista Hoja de datos o en la vista Diseño.
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.
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.
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.
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.
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.
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.
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.
Procedimiento
1. Clic a la ficha Crear, seleccione Diseño de Formulario.
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:
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.
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
Haga doble clic sobre el campo NombreProducto para indicar que ese
campo es el que empleará como origen del control y pulse Siguiente.
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á.
Un formulario que “llama” a otro (a través de un botón de comando) para mostrar los
detalles de los registros relacionados.
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.
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
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.
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
c. El mismo procedimiento del ejempo anterior con la diferencia que cuando llamas a un
subformulario, lo haces mediante una tabla.
Actividad propuesta 2
Abra la base de datos Biblioteca y en ella:
1. Formulario de Bienvenida
Utilidades
Objetivos Especificos:
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
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
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.
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.
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.
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.
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.
6. Para finalizar damos clic en Aceptar, observamos que se agregó la nueva dirección
de confianza.
d) Clic en Guardar
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.
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:
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.
8) El asistente nos muestra el aviso, donde recomienda no dividir la tabla, damos clic
en Aceptar
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
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.
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.
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.
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
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.
Preguntas de Repaso
1. ¿Que entiendes por abrir una base de datos en modo exclusivo y en que casos se debe
de hacer?
3. ¿Provee Access una herramienta para hacer copias de respaldos de una Base de Datos?
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?
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?
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
3. Navega hasta la carpeta ejercicios del curso y selecciona el archivo Lista de Clientes.txt.
Clic en el botón Abrir.
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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
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
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, 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.
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.
Elemento Resolución
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.
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.
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.
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
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:
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.
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.
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.
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.
Por ejemplo:
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.
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.
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.
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.
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.
7) Se observa lo siguiente
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.
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.
14) Damos clic en Agregar Sino, para el valor Falso de la función Sí.
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:
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
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.
Macro Autoexec
Una macro Autoexec, es una macro que se ejecuta al abrir una base de datos.
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.
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:
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.
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
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...
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
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
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:
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
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.
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 en Si
Si damos clic en cualquiera de los botones como abrir alumnos este formulario
me abre el formulario alumnos
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?
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
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.
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.
Se ingresa el nombre:
Ejericio01.accdb y damos clic
en el botón Crear.
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
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]
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
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.
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:
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ú.
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:
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
• 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
• 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.
Escribamos ahora:
? a^b y aprieto [Enter]?
La respuesta es: 16 que es 2 elevado
a4
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.
Ingresar:
a = "2" : b = "4" : ? a + b,
Resultado: 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
En una sentencia Print, cuando encuentra una coma entre dos valores, intercala
una tabulación.
Probemos ahora:
¿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.
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.
Le estamos diciendo a VBA que sume un número con un texto, y lógicamente se queja.
Cambiemos la línea
Nos imprimirá
Dos Peras
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.
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.
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.
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.
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.
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
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.
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.
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
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.
- Esto está bien, pero sólo puede imprimir los datos de la circunferencia de radio 2,5,
lo que no es gran cosa.
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:
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:
Tras completar la expresión, y darle a [Enter] nos escribirá: 5 que es la longitud del TercerLado
o la Hipotenuza
Abrimos la hoja de propiedades, les recuerdo Ficha Diseño > Cinta Herramientas, ó
pulsando las teclas [Alt] + [Enter].
Generador de expresiones
Generador de macros
Generador de código
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
¿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:
End Sub
Y ejecutamos
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 para el caso de que condición sea True]
Else
[instrucciones para el caso de que condición sea False]
End If
Ejemplo:
Con el InputBox solicitamos el ingreso de datos tanto para el Dividendo como el divisor
Ejecutamos y vemos las pantallas que nos muestra:
Supongamos que queremos hacer una comparación de dos números, saber cual es el mayor,
procedemos a crear otro procedimiento.
Ejemplo:
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
Si observa el código al final utilizo el carácter “&” que me permite poder concatenar
textos, como se observa en el MsgBox.
Ejecutamos el programa
Como se puede observar el pregroma se ejecuta de manera correct, podemos probar para
otros valores.
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.
Ejecutamos el programa:
La instrucción case también se puede aplicar a una cadena de texto, he aquí un pequeño
ejemploo.
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
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:
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”.
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
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
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
Application
Formulario1
Formulario2
Formulario3
Forms
Boton1
Controls ComboBox1
CuadroCombinado
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.
Eventos
De De
A.D.O Dinámicos
Formulario Informe
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.
Tras presionar el botón cmdPrimo se produce el evento clic, por lo que se ejecuta el
procedimiento cmdPrimo_Click()que maneja ese evento
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.
Aunque el programa esta terminado, nos piden que se añada dos pequeños botones tipo flecha,
como se muestra en la imagen.
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.
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:
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.
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.
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.
- 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:
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:
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.
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.
Luego hacemos clic en el Boton Archivo, para luego indicarle la opción Guardar como, luego
Guardar objeto como
Tras esto nos aparece una nueva ventana en la que se nos propone cambiar el nombre de la
Macro.
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
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.
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.
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.
METODO FUNCIONALIDAD
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]*'"
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
nuevo vínculo.
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
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
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
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
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.
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.
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 …
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.
APPLICATION
Cuadro de
Texto
Menú
Despegable
Informe Módulo
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.
Estos eventos son los que se ejecutan en ese orden antes de que se muestre el
formulario
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.
HayError:
MsgBox Err.Description
Resume Salir
End Sub
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.
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.
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.
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:
.Visible = True
End With
Next i
End Sub
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.
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;"
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:
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:
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.
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
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:
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.
End With
End Sub
Así se vería el control:
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
cmdMouse.Picture = "C:\iconos\mouse1.gif"
End Sub
cmdMouse.Picture = "C:\iconos\mouse2.gif"
End Sub
Ejecutamos el formulario y observaremos
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)
0 Negro 8 Gris
vbBlack Negro 0
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.
En la ayuda de Access puede encontrar información completa de cómo hacer efectiva esta
propiedad.
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
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:
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
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 )
Cuando ingreamos la primera línea de código, nos debe mostra la siguiente imagen
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
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.
If
End if
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.
Cuando le de clic al botón aceptar el foco quedara en la caja de etxto usuario, observemos
Preguntas de Repaso
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.