Sunteți pe pagina 1din 143

Guía alfabética de Tablas, Consultas, Formularios e Informes.

BaseDatos Tablas Consultas Formularios Informes


Macros y Módulos. (Ir con Alt+F12).

BASE DE DATOS
Una base de datos es un conjunto de información relacionada con un asunto o con una finalidad, tal como el
seguimiento de los pedidos de clientes o una colección de música. Si la base de datos no está almacenada en una
máquina, o sólo lo está parte de la misma, es posible que necesite controlar información de varias fuentes distint-
as que tiene que organizar y coordinar usted mismo.
Si utiliza Access, puede administrar toda la información desde un único archivo de base de datos. Dentro de este
archivo, divida los datos en contenedores de almacenamiento separados denominados tablas; vea, agregue y
actualice los datos en las tablas mediante formularios en línea; busque y recupere solamente los datos que neces-
ite mediante consultas; y analice o imprima los datos con el esquema deseado mediante informes.
Para almacenar los datos, cree una tabla para cada tipo de datos de información. Defina relaciones entre las tabl-
as para recuperar datos de varias tablas en una consulta, formulario o informe.
Cree una consulta para buscar y recuperar exactamente aquellos datos que cumplen unas determinadas condicio-
nes que usted mismo especifica. Una consulta también puede actualizar o eliminar múltiples registros al mismo
tiempo, así como realizar sobre los datos diversos cálculos incorporados o personalizados.
Cree un formulario para ver, introducir o cambiar datos directamente en una tabla de una manera sencilla. Cua-
ndo abre un formulario, Microsoft Access recupera los datos de una o más tablas y los muestra en la pantalla
usando el esquema que eligió en el Asistente para formularios o usando un esquema que creó desde el principio.
Cree un informe para analizar los datos o presentarlos de una determinada manera al imprimirlos. Por ejemplo,
podría imprimir un informe que agrupe datos y calcule totales, y otro informe con distintos datos en un formato
para imprimir etiquetas de correo.
Access proporciona una base de datos y dos aplicaciones de ejemplo que puede utilizar mientras esté aprendien-
do Access. Se encuentran normalmente en C:\Archivos de programa\ Microsoft Office\Office\Ejemplos.
· La base de datos de ejemplo Neptuno. Utilice esta base de datos de ejemplo cuando comience a apren-
der Access. La base de datos Neptuno contiene los datos de ventas de una compañía ficticia denominada Imp-
ortadores Neptuno, que importa y exporta comida especializada de todo el mundo. Si examina las tablas, consu-
ltas, formularios, informes, macros y módulos incluidos en la base de datos Neptuno, podrá desarrollar ideas
para su propia base de datos de Access. También puede utilizar los datos de Neptuno para experimentar con
Access antes de introducir sus propios datos. Por ejemplo, puede comenzar a practicar el diseño de consultas
utilizando la tabla Pedidos ya que contiene suficientes registros para producir resultados significativos.
La base de datos Neptuno incluye un archivo de Ayuda llamado Muéstreme que presenta las características prin-
cipales de la base de datos.
· Aplicación de ejemplo Pedidos. La aplicación de ejemplo Pedidos es una ayuda instructiva para Cre-
ación de aplicaciones con Access 97. Utilice esta aplicación con Creación de aplicaciones para aprender cómo
crear una aplicación sencilla.
Los empleados de la compañía ficticia Importadores Neptuno utilizan la aplicación Pedidos para introducir ped-
idos nuevos e imprimir facturas. La aplicación muestra diferentes técnicas de creación de aplicaciones, por eje-
mplo: controlar cómo se inicia una aplicación; utilizar formularios para enlazar los objetos; personalizar la inter-
faz de usuario con barras de menús, barras de herramientas, teclas de método abreviado y mensajes de error
personalizados; y controlar el orden de tabulación en tiempo de ejecución.
La aplicación Pedidos incluye un archivo de ayuda denominado Muéstreme que proporciona una introducción a
los formularios e informes incluidos en la aplicación.
· La base de datos de ejemplo Soluciones para el programador. Utilice esta aplicación para aprender
técnicas de creación de aplicaciones más complejas. La aplicación de ejemplo Soluciones para el programador es
una colección de formularios, informes y elementos de interfaz que se utilizan habitualmente en la creación de
aplicaciones. Puede utilizar los ejemplos de Soluciones para el programador como plantillas para los formularios
e informes que desee crear o como ideas para mejorar sus aplicaciones.
La aplicación Soluciones para el programador incluye un archivo de ayuda denominado Muéstreme que describe
cómo reproducir los formularios e informes incluidos en la aplicación.
Nota: Access incluye también un Asistente para bases de datos que puede usar para crear bases de datos de uso
corriente, como la base de datos Administrador de contactos. Puede utilizar las bases de datos creadas con el
Asistente para un uso inmediato o como una herramienta de aprendizaje para ayudarle a diseñar sus propias
bases de datos.

GUIA ACCESS
MENUS EN VISTA GENERAL
MENU ARCHIVO
Obtener datos externos, Importar. Copia los datos de un archivo de texto, hoja de cálculo o tabla de base de
datos a una tabla de Access 97. Además, copia los objetos de otra base de datos de Access a la base de datos
actual.
Obtener datos externos, Vincular tablas: Vincula los datos de una tabla de otra base de datos a una tabla de la
base de datos actual de Access 97. La vinculación de datos le permite la lectura y en muchos casos la actualiza-
ción de los datos en el origen de datos externo sin tener que importar. El formato del origen de datos externo no
se modifica para que pueda continuar utilizando el archivo con el programa que lo creo originalmente, pero tam-
bién puede agregar, eliminar o editar sus datos utilizando Microsoft Access.
Guardar como o exportar: Guarda una copia de un objeto seleccionado de la base de datos activa bajo un no-
mbre distinto. Exporta el resultado de un objeto seleccionado a un archivo externo (por ejemplo como texto o
como formato de texto enriquecido RTF) o a una base de datos externa (como Access o Paradox). Convierte una
macro seleccionada a un nuevo módulo de Visual Basic.
Guardar como HTML: Inicia el Asistente para publicar en el Web, que crea o modifica una publicación del
Web. Puede seleccionar cualquier combinación de objetos de base de datos para exportar a formatos estáticos
(.html) o dinámicos (.idc/.htx y .asp) y almacenar varios valores de opción en un perfil de publicación Web.
Comando Configuración de página: Controla la configuración de los márgenes (por ejemplo el ancho del
margen), la configuración de las páginas (por ejemplo, la orientación y el tamaño del papel), así como opciones
de diseño para formularios e informes (como el número de columnas a imprimir).
Vista preliminar: Muestra el objeto activo, tabla, formulario o informe, tal y como va a aparecer cuando se
imprima (excepto en la ventana Macro, donde presenta primero el Documentador). Puede acercar o alejar una
página o ver varias páginas al mismo tiempo.
Imprimir: Imprime un formulario, informe, tabla, consulta o módulo. Primero presenta el cuadro de diálogo
Imprimir, con lo que se puede cambiar la configuración y las propiedades de la impresora. En la ventana Macros,
presenta el Documentador, de forma que pueda elegir imprimir una o más secciones del informe. Luego, impri-
me el informe de la macro en la impresora predeterminada.
Enviar: Envía el resultado de una tabla, consulta, formulario, informe o módulo mediante su programa de correo
electrónico. Puede enviar todo el resultado de un objeto o una parte seleccionada de una hoja de datos en alguno
de los siguientes formatos: HTML, texto MS-DOS, formato de texto enriquecido RTF o Excel.
Propiedades de la base de datos: Muestra las propiedades de la base de datos, de forma que pueda verlas o
modificarlas.
MENU EDICION
Crear acceso directo. Crea un acceso directo, para que pueda abrir rápidamente un objeto de la base de datos,
haciendo clic en un icono. Puede crear accesos directos para objetos que están almacenados en una base de datos
en su PC, en un servidor de archivos de la red o en un directorio compartido. Los iconos de acceso directo se
pueden situar en el Escritorio, en una carpeta o en el menú Inicio.
Eliminar: Elimina de forma permanente el elemento seleccionado sin colocarlo en el Portapapeles. En la venta-
na Relaciones, al eliminar una línea de combinación se elimina la relación entre las dos tablas. En la vista Diseño
de una consulta, la eliminación de una línea de combinación hace que la consulta devuelva todas las combinaci-
ones de registros entre las dos tablas, pero no elimina la relación, si es que existe, entre las dos tablas.
Cambiar nombre: Cambia el nombre del objeto seleccionado de la base de datos. Escriba el nuevo nombre y
presione INTRO. Puede restablecer el nombre original haciendo clic en el comando Deshacer Cambiar nombre
en el menú Edición antes de ejecutar ningún otro comando.
MENU VER
Objetos de la Base de Datos activa. Muestra la lista de cada clase de objetos de la base de datos activa, según
selección.
Propiedades: Presenta la hoja de propiedades del elemento seleccionado, por ejemplo, un campo de una tabla o
un control de un formulario. Si no se selecciona nada, muestra la hoja de propiedades del objeto activo.
Código: Presenta el código del formulario o informe seleccionado en la ventana Módulo.
Barras de herramientas: Muestra u oculta las barras de herramientas. Para mostrar una barra de herramientas,
active la casilla de verificación que se encuentra junto a su nombre. Para ocultar una barra de herramientas, des-
active la casilla de verificación correspondiente. Personalizar: Personaliza los botones de la barra de herramie-
ntas, los comandos de menú y la asignación de teclas de método abreviado.
MENU INSERTAR
Tabla, Consulta, etc.: Inserta una nueva Tabla, Consulta, etc. Es lo mismo que ir a la ficha correspondiente en
el diálogo general de la Base de Datos y seleccionar Nuevo.
Autoformulario: Crea Automáticamente un formulario, basado en la tabla o consulta seleccionada. Ver Crear
con Autoformulario, pág. 42.
Autoinforme: Crea automáticamente un informe, basado en la tabla o consulta seleccionada.

GUIA ACCESS
MENU HERRAMIENTAS.
Vínculos con Office, Combinar con MS Word . Inicia el Asistente para combinar correspondencia con Word,
que combina los datos de Access con un documento Word, de forma que puede crear, por ejemplo, cartas con
formato o etiquetas postales.
Vínculos con Office, Publicar con MS Word: Crea un archivo con formato de texto enriquecido(.rtf) con el
objeto seleccionado (por ejemplo una tabla, un informe, o una parte de una hoja de datos) y lo carga en Word.
De forma predeterminada, el nombre de archivo es el nombre del objeto, la extensión del archivo es .rtf, y el
documento se guarda en la carpeta de Access.
Vínculos con Office Analizar con MS Excel: Crea un archivo Excel (.xls) con el objeto seleccionado (por
ejemplo una tabla, un informe, o una parte de una hoja de datos) y lo carga en Excel. De forma predeterminada,
el nombre de archivo es el nombre del objeto, la extensión del archivo es .xls, y el documento se guarda en la
carpeta de Access.
Relaciones: Presenta la ventana Relaciones de forma que pueda ver, modificar o definir relaciones entre tablas y
consultas. Ver Tablas, Menú Herramientas, Relaciones. Ver Pág 19, Relaciones.
Analizar, Tabla: Inicia el Asistente para análisis de tablas, el cual analiza una tabla, y si es necesario, la divide
en tablas relacionadas creando un diseño de tablas más eficiente.
Analizar, Rendimiento: Inicia el Analizador de rendimiento, que analiza el rendimiento de la base de datos y
sus objetos.
Analizar, Documentador. Ver, imprimir, dar salida o guardar las características de diseño de los objetos de la
base de datos
Utilidades, Convertir base de datos:
Convierte una base de datos de una versión anterior de Access a una base de datos de Access 8.0.
Utilidades, Compactar base de datos: Vuelve a organizar la forma en la que está fragmentada la base de datos
almacenada en el disco. La compactación de una base de datos suele reducir su tamaño y mejorar su rendimient-
o.
Utilidades, Reparar base de datos: Repara una base de datos dañada. La base de datos puede dañarse si, por
ejemplo, se produce una interrupción del suministro eléctrico o si el equipo experimenta un problema de hardw-
are mientras se está utilizando la base de datos.
Utilidades, Crear archivo MDE: Copia una base de datos no abierta (.mdb) a una base de datos MDE (.mde).
Utilice esta opción para crear una aplicación de base de datos compilada, compactada y que realice un uso efici-
ente de la memoria en la que el código de origen de VBA se ha quitado para que los usuarios no puedan modif-
icarlo.
Seguridad, Establecer contraseña para la base de datos: Alterna entre establecer y eliminar la contraseña
utilizada para abrir la base de datos activa. Sólo los usuarios con autorización de Administrador en la base de
datos activa y que conozcan la contraseña actual pueden establecer o eliminar la contraseña de la base de datos.
Proteger una base de datos agregando una contraseña de base de datos
1 Cierre la base de datos. Si la base de datos se comparte en una red, pida a los demás usuarios que cierr-
en la base de datos.
2 Haga una copia de seguridad de la base de datos y guárdela en un lugar seguro.
3 En el menú Archivo, haga clic en Abrir base de datos.
4 Seleccione la casilla de verificación Exclusiva y después abra la base de datos.
5 En el menú Herramientas, señale Seguridad y después haga clic en Establecer contraseña para la base de
datos.
6 En el cuadro Contraseña, introduzca su contraseña. Las contraseñas distinguen mayúsculas de minús-
culas.
7 En el cuadro Confirmar contraseña, confirme su contraseña escribiendo de nuevo la contraseña y hacie-
ndo después clic en Aceptar.
La contraseña está ahora habilitada. La próxima vez que se abra la base de datos, aparecerá un cuadro de diálogo
pidiendo la contraseña.
Precaución
· Si pierde u olvida su contraseña, no puede ser recuperada, de forma que no podrá abrir su base de datos.
· No utilice una contraseña de base de datos si va a replicar una base de datos. Las bases de datos replica-
das no pueden sincronizarse si se definen contraseñas para ellas.
Notas
· Si fuera necesario una mayor seguridad que la que le proporciona la contraseña de la base de datos, es
necesario que defina la seguridad a nivel de usuario.
· No es posible habilitar una contraseña de base de datos si se ha definido seguridad a nivel de usuario
para su base de datos y no tiene permiso de Administrador para la base de datos. Asimismo, una contraseña de
base de datos se define además de la seguridad a nivel de usuario. Si esta seguridad a nivel de usuario hubiera
sido definida, permanece en efecto cualquier restricción basada en los permisos de seguridad a nivel de usuario.
· Si una tabla de una base de datos protegida con contraseña está vinculada, la contraseña se guarda en la
base de datos y se vincula a la misma cuando se establece el vínculo. Esto puede tener consecuencias inesperada-
s.
GUIA ACCESS
Seguridad, Permisos de usuario y de grupo: Muestra, asigna y elimina los permisos de las cuentas de usuario
y de grupo para la base de datos activa y sus objetos. Así mismo, muestra, asigna y cambia la pertenencia de los
objetos de la base de datos.
Seguridad, Cuentas de usuario y grupo: Muestra, imprime, agrega, elimina y cambia las cuentas de usuario y
de grupo. Además, cambia la contraseña de la cuenta de usuario predeterminada, Administrador.
Seguridad, Asistente para seguridad a nivel de usuario: Inicia el Asistente para seguridad a nivel de usuario,
que crea una nueva copia protegida de la base de datos activa.
Proteger una base de datos con el Asistente para seguridad a nivel de usuario.
1.- Cierre Access. Cree un nuevo Grupo de Trabajo a partir de Wrkgadm.exe en C:\Windows\System. ‘Organiz-
ación’ no es obligatorio. Cambie el nombre del archivo System.mdw y colóquelo como *.mdw junto a la base de
datos para acompañarlo en las copias de seguridad. Nunca debería sustituir un archivo *.mdw ya existente. Co-
mience siempre creando con System.mdw en la misma carpeta que Wrkgadm.exe.
2.-Abra la base de datos y en Herramientas/Seguridad/Cuentas de Usuario y Grupo/Ficha Usuarios. Ver que
Nombre es ‘Administrador’. Pase a Ficha Cambiar contraseña de conexión, deje en blanco Contraseña anterior y
en Nueva y Confirmar escriba la nueva y guárdela.
3.- Cierre Access y al abrirlo de nuevo le pedirá la contraseña de ‘Administrador’. Escríbala y abra la base de
datos. Vuelva a la Ficha Usuarios del punto 2 y Nuevo. Escriba su nombre de administrador y contraseña y acé-
tela. En Grupos disponibles seleccione administradores y Agregar, con lo que será nuevo miembro de administr-
adores y usuarios (todos los miembros también son usuarios).
4.- Cierre Access y vuelva a entrar con el nombre y contraseña del nuevo administrador. Pase a la Ficha Usuar-
ios y en Nombre busque ‘Administrador’ y en Miembro de señale Administradores y Quitar. ‘Administrador’
quedará sólo como Usuario, sin ningún acceso. ‘Administrador’ no se puede eliminar. Pase a la ficha Asistente
para seguridad a nivel de usuario y siga sus pasos. Al terminar, antes de eliminar el original no protegido, debe
copiarlo en un diskette, como seguridad. Al eliminar el original, a la base protegida le puede dar el mismo nom-
re.
5.- Abra la nueva base de datos protegida y cree los nuevos nombres de los posibles nuevos administradores y/o
usuarios, de forma similar al paso 2 dónde se creó usted como nuevo administrador. Cada uno, aparte de cualq-
uier administrador, puede cambiar después su contraseña.
6.- Asigne a cada usuario sus permisos en la ficha Permisos de usuarios y de grupos en Seguridad.
Ver ‘Crear cuentas de usuario o de grupo y conceder permisos’, ‘Asignar o quitar permisos para una base de
datos y para objetos’ y ‘Asignar permisos predeterminados para nuevos objetos de base de datos’, con el Asist-
ente de Ayuda de Access. En principio, todo el grupo Usuarios no tiene ningún permiso, excepto los que también
son administradores.
Seguridad, Codificar o descodificar base de datos: Realiza una copia codificada o descodificada de la base de
datos. La codificación de una base de datos protege su información al hacerla indescifrable para los programas
de utilidades o los procesadores de texto (aunque con un ligero descenso del rendimiento). La descodificación de
la base de datos invierte la codificación.
Réplica, Sincronizar ahora: Sincroniza la réplica o el Diseño principal abiertos con otro miembro del conjunto
de réplicas.
Réplica, Crear réplica: Crea una réplica de la base de datos abierta en una ubicación designada. También puede
crear una réplica arrastrando la base de datos desde la ventana Base de datos hasta Mi Maletín de Windows en el
escritorio. Las réplicas permiten a usuarios situados en distintas ubicaciones compartir fácilmente los cambios
que estén realizando en la base de datos.
Réplica, Resolver conflictos: Inicia el Asistente para resolver conflictos, que muestra los registros que estaban
en conflicto durante las sincronizaciones anteriores entre el Diseño principal o la réplica abierta y otros miemb-
ros del conjunto de réplicas.
Réplica, Recuperar diseño principal: Convierte la réplica abierta en el Diseño principal para el conjunto de
réplicas. El Diseño principal es el único miembro del conjunto de réplicas que puede utilizar para cambiar la
estructura de la base de datos. Nota: Utilice este comando sólo cuando la réplica de Diseño principal se haya
perdido permanentemente. El uso de más de un Diseño principal puede provocar problemas irreparables en el
conjunto de réplicas.
Inicio: Controla y personaliza varias propiedades y acciones de inicio de la base de datos, tales como el icono y
el título de la aplicación, y cual es el formulario inicial a presentar.
Macro, Ejecutar macro: Ejecuta una macro.
Macro, Convertir macros a Visual Basic: Convierte una macro a procedimientos de evento de Visual Basic en
el módulo formulario o informe.
Macro, Crear menú a partir de macro: Crea una nueva barra de menús de estilo Access 97 desde una macro
seleccionada.
Macro, Crear barra de herramientas a partir de macro: Crea una nueva barra de herramientas de estilo
Access 97 desde una macro seleccionada.
Macro, Crear menú contextual a partir de macro: Crea un nuevo menú contextual de estilo Access 97 desde
una macro seleccionada.

GUIA ACCESS
Controles ActiveX: Registra o elimina controles ActiveX en la base de datos de registro de Windows (que se
utiliza para registrar información acerca de las aplicaciones, por ejemplo el nombre de archivo y la ruta de acc-
eso). El registro determina si los controles ActiveX están disponibles o no para ser utilizados.
Complementos, Administrador de complementos. Instala, desinstala o personaliza complementos, que son
herramientas que extienden la funcionalidad de Access. Los complementos incluyen asistentes, generadores y
complementos de menú (que son elementos adicionales de menú que puede agregar al comando Complementos
del menú Herramientas).
Complementos. Divisor de bases de datos: Divide la base de datos actual en dos bases de datos: una base de
datos cliente que contiene todas las tablas y una base de datos cliente que contiene todos los objetos restantes y
tablas vinculadas a la base de datos cliente. Se utiliza, por ejemplo, para permitir a los usuarios que personalicen
sus propios formularios e informes, al mismo tiempo que se mantiene un único origen de datos en una red.
Complementos. Administrador de tablas vinculadas: Muestra o actualiza los vínculos a las tablas. Se utiliza,
por ejemplo, para actualizar los vínculos cuando la estructura o ubicación de una tabla vinculada ha cambiado.
Complementos. Administrador del panel de control: Crea, modifica y elimina formularios de tipo Panel de
control de una aplicación.
Opciones: Personaliza las características del entorno de Access, tales como las fuentes y colores de la pantalla,
las acciones del teclado y las opciones de presentación.
MENU MUESTREME.
Presenta la explicación del ejemplo de Base de Datos Neptuno, así como los conceptos principales de las bases
de datos en general.

TABLAS
Una tabla es un conjunto de datos sobre un tema específico, como Productos o Proveedores. Si usa una tabla para
cada tema evita la duplicidad de datos, lo que hace que su base de datos sea más eficiente y reduzca los errores
de entrada de datos. Las tablas organizan los datos en columnas ( denominadas Campos) y filas (Registros).
En la vista Hoja de datos de una tabla, puede agregar, modificar o ver los datos de la misma. También puede
revisar la ortografía de los datos de la tabla, imprimirlos, ordenar o filtrar registros, cambiar la apariencia de la
hoja de datos o cambiar la estructura de la tabla agregando o eliminando columnas.
En la vista Diseño, puede crear una tabla completa a partir de cero, o agregar, eliminar o personalizar campos de
una tabla existente.
TABLAS - MENUS EN VISTA HOJA DE DATOS
MENU EDICION
Pegado especial: Vincula o incrusta un objeto OLE o pega texto en el formulario, informe u hoja de datos activ-
a. Además, permite seleccionar el formato de datos para el objeto y mostrarlo como un icono.
Pegar datos anexados: Agrega registros desde el Portapapeles al final del formulario u hoja de datos activa. Los
registros que Access no puede anexar (por ejemplo, debido a errores de validación) se colocan en la tabla Error-
es de pegado.
Eliminar. Igual que en Vista General.
Vínculos OLE y DDE: Actualiza, modifica, copia, vuelve a conectar o interrumpe los vínculos del objeto selec-
cionado.
MENU VER
Vista Diseño: Cambia desde la vista activa a la vista Diseño de la tabla, consulta, formulario o informe que esté
activo.
Vista Hoja de datos: Cambia desde la vista activa a la vista Hoja de datos de la tabla, consulta o formulario que
esté activo.
Hoja de datos del subformulario: Alterna entre las vistas Formulario y Hoja de datos del subformulario activo.
MENÚ INSERTAR
Columna: En la vista Diseño de la consulta y en la ventana Filtro u orden avanzado, inserta una columna a la
izquierda de la columna seleccionada en la cuadrícula de diseño, de modo que pueda agregar un campo a la con-
sulta o el filtro activo. Para seleccionar una columna, haga clic en el selector de columnas.
En la vista Hoja de datos de la tabla, inserta una nueva columna a la izquierda de la columna seleccionada o de la
columna que tiene el punto de inserción actual.
Objeto: Inserta un objeto OLE en un marco de objeto dependiente o independiente en un formulario o informe,
o un campo de objeto OLE seleccionado en una hoja de datos. Para editar el objeto utilizando su aplicación aso-
iada, haga doble clic en el objeto.
Hipervínculo: Inserta o modifica una dirección de hipervínculo o una dirección URL (Uniform Resource Locat-
or), incluida la subdirección y el tipo de ruta de acceso (ya sea absoluta o relativa). En la vista Hoja de datos y
Formulario, el campo de dirección de hipervínculo debe estar seleccionado.
MENU FORMATO
Fuente. Cambia el tipo de letra para todos los nombres de los campos y los datos de una hoja de datos. La fuente
predeterminada es Arial, el estilo es Regular, y el tamaño predeterminado es 10 puntos.

GUIA ACCESS
Celdas. Muestra o quita la cuadrícula horizontal y vertical, cambia el color de la celda y de la cuadrícula y cam-
bia la apariencia de la celda (por ejemplo, bajo relieve o sobre relieve). Más opciones con la Barra de Herramie-
ntas Formato (Hoja de datos).
Alto de registro (fila). Menú para todos. Arrastrar borde inferior en cabecera de registro. Seleccionando varias
antes toman la misma altura.
Ancho de Columna. Menú para todas. Arrastrar borde derecho en cabecera de columna. Seleccionando varias
antes toman el mismo ancho.
Cambiar nombre columna. Permite cambiar el nombre de la columna seleccionada. Nota: Este comando cam-
bia el nombre del campo en la hoja de datos y puede obligar a cambios en la configuración de propiedades, en
consultas, en macros y en código que hagan referencia al nombre antiguo.
MENU REGISTROS
Filtro, Filtro por formulario: Presenta la ventana Filtro por formulario, que es una versión en blanco del form-
ulario la hoja de datos activa, mediante la cual se pueden filtrar los datos.
Filtro. Filtro por selección: Filtra los registros en base a los datos seleccionados. Para filtrar por selección,
seleccione un campo o parte de un campo una hoja de datos o en un formulario, y a continuación haga clic en
Filtro por selección.
Filtrar excluyendo la selección: Filtra los registros excluyendo los datos seleccionados. Para filtrar excluyendo
la selección, seleccione un campo o parte de un campo de una hoja de datos o formulario, elija Filtro en el menú
Registros y haga clic en Filtrar excluyendo la selección.
Filtro u orden avanzado: Muestra la ventana Filtro u orden avanzado, para permitir la creación de un filtro que
se aplicará a la hoja de datos o al formulario.
Ordernar: Ordena los registros en base a la columna o columnas seleccionadas (0 a 9, A a Z). Las ordenaciones
subsiguientes reemplazan a las anteriores. Para deshacer una ordenación, seleccione Quitar filtro u ordenar en el
menú Registros.
Aplicar filtro u ordenar: Aplica un filtro o un orden a la hoja de datos o el formulario activo.
Quitar filtro u ordenar. Quita un filtro o un orden de la hoja de datos o el formulario activo, si hay uno aplic-
ado, y muestra los registros más actuales.
Guardar registro. MAY-ENTRAR
Actualizar: Actualiza los registros en el formulario u hoja de datos activa con los cambios realizados a los datos
por otros usuarios de un entorno multiusuario.
Entrada de datos. Oculta todos los registros activos y muestra un registro en blanco, de forma que pueda intro-
ducir datos en un formulario u hoja de datos. Sólo se mostrarán los nuevos registros agregados, hasta que elija el
comando Quitar filtro u ordenar en el menú Registros.
TABLAS - MENUS EN VISTA DISEÑO.
MENU EDICION
Clave principal (Símbolo llave): Alterna entre establecer y eliminar un campo de clave principal, que es un
identificador único para cada registro de una tabla.
Clave Principal
¿Qué tipo de clave principal debo utilizar?
La potencia de un sistema de base de datos relacional como Access reside en su capacidad para encontrar y reu-
nir rápidamente información almacenada en tablas independientes mediante consultas, formularios e informes.
Para ello, cada tabla debe incluir un campo o un conjunto de campos que identifique exclusivamente cada regis-
tro almacenado en la tabla. Esta información se denomina clave principal de la tabla. Una vez designada una
clave principal de una tabla, con el fin de garantizar su exclusividad, Access impide que se almacenen valores
duplicados o Nulos en los campos de la clave principal.
Existen tres tipos de clave principal que pueden definirse en Access: Autonumérico, Campo simple y Campos
múltiples.
Claves principales de Autonumérico
Un campo Autonumérico puede establecerse para que introduzca automáticamente un número secuencial cuando
se agrega un registro a la tabla. Designar un campo de este tipo como clave principal de una tabla es la forma
más sencilla de crear una clave principal. Si no establece una clave principal antes de guardar una tabla recién
creada, Access le preguntará si desea que cree una clave principal automáticamente. Si contesta afirmativament-
e, Access creará una clave principal de Autonumérico. Existen otras consideraciones adicionales que deben
tenerse en cuenta si la tabla se va a utilizar con una réplica de base de datos.
Claves principales de Campo simple
Si tiene un campo que contiene valores exclusivos, como números de identificación o números de pieza, puede
designar ese campo como la clave principal. Si el campo seleccionado como clave principal tiene valores dupli-
cados o Nulos, Access no establece la clave principal. Puede ejecutar una Consulta de buscar duplicados con el
fin de determinar qué registros contienen datos duplicados. Si no puede eliminar fácilmente las entradas duplica-
das mediante la edición de los datos, puede agregar un campo Autonumérico y establecerlo como clave principal
o bien definir una clave principal de campos múltiples.

GUIA ACCESS
Claves principales de Campos múltiples
En situaciones en las que no se puede garantizar la exclusividad de un solo campo, puede designar dos o más
campos como clave principal. La situación más común en la que surge este problema es en la tabla utilizada para
relacionar otras dos tablas en una relación varios a varios. La tabla Detalles de pedidos de la base de datos de
ejemplo Neptuno es una tabla de este tipo, ya que relaciona las tablas Pedidos y Productos. Su clave principal
está formada por dos campos: Id. De pedido e Id. De producto. La tabla Detalles de pedidos puede mostrar vari-
os productos y varios pedidos, pero cada producto sólo puede aparecer una vez en cada pedido, de modo que la
combinación de los campos Id. De pedido e Id. De producto produce una clave principal apropiada.
Otro ejemplo puede ser una base de datos de inventario que utiliza un campo de número de pieza o dos o más
campos (pieza y subpieza).
Nota: Si no está seguro de poder seleccionar una combinación de campos apropiada para una clave principal de
campos múltiples, probablemente resultará más conveniente agregar un campo Autonumérico y designarlo como
la clave principal en su lugar. Por ejemplo, la combinación de los campos Nombre y Apellidos para crear una
clave principal no es conveniente, ya que pueden llegar a producirse duplicados al combinar estos dos campos.
Probar reglas de validación: Informa de si los datos de una tabla cumplen las reglas de validación de registro y
de campo de una tabla (las propiedades ReglaDeValidación, Requerido (Required) y Permitir longitud cero (All-
owZeroLength)). Si la tabla es grande, esta operación puede tardar bastante tiempo.
MENU VER
Índices: Presenta la ventana Indices para que pueda ver, modificar o crear índices. Los índices pueden acelerar
las búsquedas y las consultas para grandes volúmenes de datos, pero pueden hacer más lenta la entrada de datos
porque Access debe actualizar los índices cada vez que se agrega, modifica o elimina un registro.
MENU INSERTAR.
Campo de búsqueda. Crea un campo de consulta (columna) para el tipo de datos seleccionado. Un campo de
consulta busca valores de otra tabla (como por ejemplo un distribuidor de la tabla Distribuidores) y almacena la
referencia a estos valores en la tabla principal (por ejemplo la identificación del distribuidor en la tabla Pedidos)
Campo de Búsqueda
Crear un campo que busque o enumere los valores de las tablas:
Mediante el Asistente para búsquedas, puede crear un campo que muestre uno de dos tipos de listas para facilitar
la introducción de datos:
· Una lista de búsqueda que muestra valores buscados en una tabla o consulta existente
· Una lista de valores que muestra un conjunto fijo de valores introducidos al crear el campo
La lista de búsqueda más común muestra los valores buscados en una tabla relacionada. Por ejemplo, el campo
Proveedor de la tabla Productos de la base de datos de ejemplo Neptuno muestra esta lista de búsqueda. Esta lista
se crea buscando los valores de Proveedor en la tabla Proveedores y mostrando los nombres de Proveedor corre-
spondientes. La selección de un valor de una lista de búsqueda establece el valor de la clave externa del registro
actual (Proveedor en la tabla Productos) en el valor de la clave principal del registro correspondiente de la tabla
relacionada (Id. De proveedor en la tabla Proveedores). De esta forma se crea una asociación con la tabla relac-
ionada para mostrar (pero no almacenar) los nombres del Proveedor en el registro. La clave externa (Id. De pro-
veedor) se almacena pero no se muestra. Por ello, toda actualización realizada en los datos de la tabla Proveedor-
es se reflejará en la lista y en los registros de la tabla Productos. Debe definir un campo de lista de búsqueda en
la tabla que contendrá la clave externa y que mostrará la lista de búsqueda. En este ejemplo, el campo de lista de
búsqueda se definirá en la tabla Productos.
Una lista de valores tiene el mismo aspecto que una lista de búsqueda, pero está formada por un conjunto fijo de
valores introducidos al crearla. Una lista de valores sólo debe utilizarse para los valores que no cambian muy a
menudo y que no necesitan almacenarse en una tabla. Por ejemplo, una lista para un campo Tratamiento que
contenga Sr., Sra. Y Srta. Es una buena candidata para una lista de valores. Al elegir un valor de una lista de
valores se almacena ese valor en el registro; no se crea una asociación a una tabla relacionada. Por ello, si poste-
riormente cambia cualquiera de los valores originales de la lista de valores, el cambio no se reflejará en los regi-
stros agregados antes de realizar este cambio.
Puede agregar un nuevo campo de lista de valores o de búsqueda tanto en la vista Diseño como en la vista Hoja
de datos de la tabla. No obstante, si el campo que desea utilizar como clave externa para un campo de búsqueda
ya existe, debe abrir la tabla de ese campo en la vista Diseño para definir el campo de búsqueda. Por ejemplo, si
dispone de una tabla Productos que ya tiene definido un campo Id. De proveedor y desea cambiarlo a un campo
de búsqueda para que muestre los nombres de proveedores de la tabla Proveedores, debe abrir la tabla Productos
en la vista Diseño para cambiar Id. De proveedor a un campo de búsqueda.
Crear un campo que busque datos de otra tabla en la vista Diseño:
1 Abra la tabla en la vista Diseño.
2 Realice una de las siguientes operaciones:
· Para insertar un campo nuevo dentro de la tabla, haga clic en la fila situada bajo el lugar en que desea
agregar el campo y, a continuación, haga clic en Insertar filas en la barra de herramientas o bien, para agregar
un campo nuevo al final de la tabla, haga clic en la primera fila en blanco. Escriba el nombre del campo en la
columna Nombre del campo siguiendo las reglas para nombrar objetos de Access.

GUIA ACCESS
· Si el campo que desea utilizar como clave externa para el campo de búsqueda ya existe, haga clic en la
fila de ese campo. Por ejemplo, si tiene una tabla Productos con un campo Id. De proveedor ya definido y desea
cambiarlo a un campo de búsqueda para que muestre los nombres de proveedor de la tabla Proveedores, haga
clic en la fila del campo Id. De proveedor.
3 En la columna Tipo de datos, haga clic en la flecha y seleccione Asistente para búsquedas.
4 Haga clic en la opción que indica que desea que el campo de búsqueda busque los valores en una tabla o
consulta.
5 Haga clic en Siguiente y siga las instrucciones de los restantes cuadros de diálogo del Asistente para
búsquedas.
Al hacer clic en el botón Terminar, Access crea el campo de búsqueda y establece determinadas propiedades del
campo según las selecciones realizadas en el asistente. Una vez creado un campo de lista de búsqueda, si agrega
el campo a un formulario, Access copia su definición al formulario. No tendrá que crear el cuadro combinado o
el cuadro de lista ni su definición de lista de valores o de búsqueda para el formulario. No obstante, si cambia la
definición de un campo de lista de valores o de búsqueda en la tabla después de agregarlo a un formulario, esos
cambios no se reflejarán en el formulario. Para corregir esta situación, elimine el campo del formulario y agrég-
uelo de nuevo.
Nota: También es posible agregar a una tabla un campo de búsqueda que muestre valores de la misma tabla que
contiene el campo de búsqueda. Por ejemplo, en la tabla Empleados de la base de datos de ejemplo Neptuno, el
campo Jefe es un campo de búsqueda que muestra los valores de los campos Nombre y Apellidos buscando el
campo Id. De empleado correspondiente de la misma tabla.
Crear un campo de lista de valores en la vista Diseño:
1 Abra la tabla en la vista Diseño.
2 Para insertar el campo dentro de la tabla, haga clic en la fila situada debajo del lugar donde desea agreg-
ar el campo y, a continuación, haga clic en Insertar filas en la barra de herramientas.
Para agregar el campo al final de la tabla, haga clic en la primera fila en blanco.
3 En la columna Nombre del campo, escriba el nombre del campo siguiendo las reglas para nombrar obj-
etos de Access.
4 En la columna Tipo de datos, haga clic en la flecha y seleccione Asistente para búsquedas.
5 En el primer cuadro de diálogo del Asistente para búsquedas, haga clic en la opción que indica que
escribirá los valores que desee.
6 Haga clic en Siguiente y siga las instrucciones de los restantes cuadros de diálogo del Asistente para
búsquedas.
Nota: Cuando se utiliza el Asistente para búsquedas para crear una lista de valores fijos, Access establece dete-
rminadas propiedades del campo según las selecciones realizadas en el asistente. Una vez creado el campo, si
agrega el campo a un formulario, Access copia su definición al formulario. No tendrá que crear el cuadro com-
binado o el cuadro de lista ni su definición de lista de valores para el formulario. No obstante, si cambia la def-
nición del campo de lista de valores de la tabla después de agregarlo a un formulario, esos cambios no se refleja-
rán en el formulario. Para corregir esta situación, elimine el campo del formulario y agréguelo de nuevo.
Ficha General en Diseño de Tabla. Propiedades de los Campos.
Propiedad Nombre del campo
Puede utilizar la propiedad Nombre del campo para especificar el nombre de un campo dentro de una tabla. Por
ejemplo, puede especificar “Apellidos” en un campo que almacene los apellidos de los empleados dentro de la
tabla Empleados.
Escriba un nombre de campo, siguiendo las reglas para nombres de objetos de Access. El nombre no puede
duplicar ningún otro nombre de campo de la tabla.
Nota Evite especificar un nombre de campo que entre en conflicto con los nombres de funciones o propiedades
incorporadas en Access, como la propiedad Nombre (Name).
Puede establecer esta propiedad en la parte superior de la vista Diseño de la tabla o utilizando Visual Basic.
En Visual Basic, utilice la propiedad Name de DAO para leer y establecer un nombre de campo de una tabla.
Comentarios
Access identifica un campo por su nombre de campo. Una vez que se especifica un nombre de campo en la vista
Diseño de la tabla, se puede utilizar ese nombre en expresiones, procedimientos de Visual Basic e instrucciones
SQL.
Propiedad Tipo de datos
Texto (Predeterminado). Texto o combinaciones de texto y números, así como números que no requieran
cálculos, como los números de teléfono. Hasta 255 caracteres o la longitud que indique la propiedad
Tamaño del campo (el menor de los dos valores). Access no reserva espacio para la parte que no se uti-
iza de un campo de texto.
Memo Texto extenso, o combinación extensa de texto y números. Hasta 65.535 caracteres. (Si el campo se
manipula a través de DAO y sólo se va a almacenar en él texto y números [no datos binarios], el tamaño
está limitado por el de la base de datos).

GUIA ACCESS
Numérico: Datos numéricos utilizados en cálculos matemáticos. Para obtener más información sobre la forma
de establecer un tipo numérico específico, vea el tema de la propiedad Tamaño del campo. 1, 2, 4 u 8 b-
ytes (16 bytes si el valor de la propiedad Tamaño del campo es Id. De réplica).
Fecha/Hora: Valores de fecha y hora para los años del 100 al 9999. 8 bytes.
Moneda: Valores de moneda y datos numéricos utilizados en cálculos matemáticos en los que estén implicados
datos que contengan entre uno y cuatro decimales. La precisión es de hasta 15 dígitos a la izquierda del
separador decimal y hasta 4 dígitos a la derecha del mismo. 8 bytes.
Autonumérico: Número secuencial (incrementado de uno a uno) único, o número aleatorio que Access asigna
cada vez que se agrega un nuevo registro a una tabla. Los campos Autonumérico no se pueden actualiz-
ar. Si desea más información, vea el tema de la propiedad Nuevos valores. 4 bytes (16 bytes si el v-
alor de la propiedad Tamaño del campo es Id. La réplica).
Sí/No: Valores Sí y No, y campos que contengan uno de entre dos valores (Sí/No, Verdadero/Falso o Activad-
o/desactivado). 1 bit.
Objeto OLE: Objeto (como por ejemplo una hoja de cálculo de Excel, un documento de Word, gráficos, sonid-
os u otros datos binarios) vinculado o incrustado en una tabla de Access. Hasta 1 gigabyte (limit-
ado por el espacio disponible en disco).
Hipervínculo: Texto o combinación de texto y números almacenada como texto y utilizada como dirección de
hipervínculo.
Asistente para búsquedas: Crea un campo que permite elegir un valor de otra tabla o de una lista de valores
mediante un cuadro de lista o un cuadro combinado. Al hacer clic en esta opción se inicia el Asistente
para búsquedas, que crea un campo de búsqueda. Al salir del Asistente, Access establece el tipo de dat-
os basándose en los valores seleccionados en él. Tamaño igual al del campo clave principal utiliza-
do para realizar la búsqueda (habitualmente 4 bytes).
Comentarios:
Los campos de tipo Memo, Hipervínculo y Objeto OLE no se pueden indizar.
Sugerencia: Utilice el tipo de datos Moneda en los campos que requieran muchos cálculos con datos de uno a
cuatro decimales. Los campos de tipo Simple y Doble requieren cálculos en coma flotante, mientras que el tipo
de datos Moneda emplea cálculos en coma fija, que son más rápidos.
Atención: Cambiar el tipo de datos de un campo después de haber introducido datos en una tabla puede provo-
car un largo proceso de conversión de datos al guardar la tabla. Si el tipo de datos de un campo está en conflicto
con el valor de la propiedad Tipo de datos cambiada es posible que se pierdan algunos datos.
Propiedad Descripción
Puede usar la propiedad Descripción para proporcionar información sobre los objetos contenidos en la ventana
Base de datos, y también sobre campos individuales de una tabla o consulta.
Para los objetos de base de datos, haga clic en el comando Propiedades del menú Ver y escriba el texto de la
descripción en el cuadro Descripción. En el caso de tablas o consultas, también puede introducir la descripción
en la hoja de propiedades de la tabla o consulta. La descripción del objeto aparece junto a su nombre en la venta-
na Base de datos cuando se hace clic en el comando Detalles del menú Ver.
Para campos individuales de una tabla o consulta, escriba la descripción en la parte superior de la vista Diseño de
la tabla o en la hoja de propiedades Propiedades del campo en la ventana Consulta. La longitud máxima es 255
caracteres.
En Visual Basic, para establecer esta propiedad por primera vez es necesario crear una propiedad definida por la
aplicación utilizando el método CreateProperty de DAO.
Comentarios
La descripción de un objeto aparece en la columna Descripción de la ventana Base de datos, que se muestra al
mostrar los detalles.
Al crear controles arrastrando un campo desde la lista de campos, Access copia la propiedad Descripción del
campo en la propiedad TextoDeLaBarraDeEstado (StatusBarText) del control.
Nota: En el caso de una tabla vinculada, Access muestra la información de conexión en la propiedad Descrip-
ción.
Propiedad Tamaño del campo
Puede usar la propiedad Tamaño del campo para establecer el tamaño máximo de los datos almacenados en un
campo de tipo Texto, Numérico o Autonumérico.
Si la propiedad Tipo de datos tiene el valor Texto, escriba un número entre 0 y 255. El valor predeterminado es
50.
Si la propiedad Tipo de datos tiene el valor Autonumérico, en Tamaño del campo se puede establecer Entero
largo o Id. De réplica.
Si la propiedad Tipo de datos tiene establecido Numérico, las opciones de Tamaño del campo y sus valores se
relacionan de la siguiente forma:
Valor Descripción Precisión decimal Tamaño de almacenamiento
Byte Almacena números entre 0 y 255 (no admite fracciones). Ninguna 1 byte
Entero Almacena números entre –32.768 y 32.767 (no admite fracciones). Ninguna 2 bytes

GUIA ACCESS
Entero largo (Predeterminado) Almacena números entre –2.147.483.648 y 2.147.483.647 (no admite fracc-
iones). Ninguna 4 bytes
Simple Almacena números entre –3,402823E38 y –1,401298E–45 para valores negativos, y entre
1,401298E–45 y 3,402823E38 para valores positivos. 7 4 bytes
Doble Almacena números entre –1,79769313486231E308 y –4,94065645841247E–324 para valores negativo-
s, y entre 1,79769313486231E308 y 4,94065645841247E–324 para valores positivos. 15 8 bytes
Id. De réplica Identificador global único (GUID) N/D 16 bytes
Sólo es posible establecer esta propiedad en la hoja de propiedades de la tabla.
Para establecer el tamaño de un campo en Visual Basic, utilice la propiedad Size de DAO para leer y establecer
el tamaño máximo de los campos de tipo Texto (para los tipos distintos de Texto, el valor de la propiedad Type
de DAO determina automáticamente el de la propiedad Size).
Nota: Puede especificar los tamaños de campo predeterminados para los tipos Texto y Numérico modificando
los valores de Tamaño predeterminado de campo en la ficha Tablas/Consultas, que aparece al hacer clic en el
comando Opciones del menú Herramientas.
Comentarios:
Se recomienda especificar el valor más pequeño posible para la propiedad Tamaño del campo, pues los tamaños
más pequeños pueden procesarse más rápidamente y requieren menos memoria.
Atención: Si cambia un valor de Tamaño del campo por otro más pequeño para un campo que ya contiene dat-
os, es posible que pierda información. Por ejemplo, si un campo de tipo Texto tiene el valor 255 en Tamaño del
campo y lo cambia por 50, los datos que se extiendan más allá de los 50 primeros caracteres se perderán.
Si los datos de un campo de tipo Numérico no caben con un nuevo valor de Tamaño del campo, los números
fraccionarios se pueden redondear, o pueden dar el valor Nulo. Por ejemplo, si cambia el tamaño de campo de
Simple a Entero, los valores fraccionarios se redondearán al número entero más cercano, y los superiores a
32.767 o inferiores a –32.768 serán reemplazados por valores nulos.
No es posible deshacer los cambios en los datos provocados por una modificación de la propiedad Tamaño del
campo después de haberlos guardado en la vista Diseño de la tabla.
Sugerencia: Puede usar el tipo de datos Moneda cuando vaya a realizar muchos cálculos con un campo que
contenga números que tengan entre uno y cuatro decimales. Los campos de tipo Simple y Doble requieren cál-
culos en coma flotante, mientras que los de tipo Moneda realizan los cálculos en coma fija, que es más rápido.
Propiedad Formato de Campo.
La propiedad Formato (Format) afecta sólo a cómo se muestran los datos. No afecta a cómo se almacenan los
datos.
Access dispone de formatos predefinidos para los tipos de datos Fecha/Hora, Numérico y Moneda, Texto y
Memo, y Sí/No. Los formatos predefinidos dependen del país especificado al hacer doble clic en Configuración
regional en el Panel de control de Windows. Access muestra los formatos apropiados para el país seleccionado.
Por ejemplo, si está seleccionado Inglés (Estados Unidos) en la ficha Configuración regional, 1234.56 en el
formato Moneda aparece como $1,234.56, pero si está seleccionado Inglés (Británico) en la ficha Configuración
regional, el número aparece como £1,234.56.
Si establece la propiedad Formato (Format) de un campo en la vista Diseño de la tabla, Access utiliza ese for-
mato para mostrar datos en las hojas de datos. También aplica la propiedad Formato (Format) del campo a los
nuevos controles de formularios e informes.
Puede utilizar los siguientes símbolos en formatos personalizados para cualquier tipo de datos.
(espacio) Muestra espacios como caracteres literales.
“ABC” Muestra todo el contenido de las comillas tipográficas como caracteres literales.
¡ Realiza la alineación a la izquierda en lugar de la alineación a la derecha.
* Rellena el espacio disponible con el siguiente carácter.
\ Muestra el siguiente carácter como un carácter literal. También puede mostrar
caracteres literales incluyéndolos entre comillas tipográficas.
[color] Muestra los datos con el color especificado entre los corchetes. Colores
disponibles: Negro, Azul, Verde, Aguamarina, Rojo, Fucsia, Amarillo, Blanco.
No puede mezclar los símbolos de formato personalizados para los tipos de datos Numérico y Moneda con los
símbolos de formato de los campos Fecha/Hora, Sí/No, o Texto y Memo.
Cuando se ha definido una máscara de entrada y se ha establecido la propiedad Formato (Format) para los mis-
mos datos, la propiedad Formato (Format) tiene preferencia al mostrar los datos, y la máscara de entrada se ign-
ra. Por ejemplo, si crea una máscara de entrada Contraseña en la vista Diseño de la tabla y también establece la
propiedad Formato (Format) para el mismo campo, ya sea en la tabla o en un control de un formulario, la másca-
ra de entrada Contraseña se ignora y los datos se muestran según la propiedad Formato (Format).
Formato Tipos de datos Texto y Memo
@ Se necesita un carácter de texto (ya sea un carácter o un espacio).
& No se necesita un carácter de texto.
< Convertir todos los caracteres a minúsculas.
> Convertir todos los caracteres a mayúsculas.

GUIA ACCESS
Por ejemplo, si tiene un control de cuadro de texto en el que desea que aparezca la palabra “Ninguno” cuando no
exista ninguna cadena en el campo, puede introducir el formato personalizado @;”Ninguno” como el valor de la
propiedad Formato (Format) del control. El símbolo @ hace que se muestre el texto del campo; la segunda sec-
ción hace que aparezca la palabra “Ninguno” cuando haya una cadena de longitud cero o un valor Nulo en el
campo.
Ejemplos
Valor Datos Muestra
@@@-@@-@@@@ 465043799 465-04-3799
@@@@@@@@@ 465-04-3799 465043799
> davolio DAVOLIO
DAVOLIO DAVOLIO
Davolio DAVOLIO
< davolio davolio
Davolio davolio
DAVOLIO davolio
@;”Desconocido” Valor Null Desconocido
Cadena de longitud cero Desconocido
Cualquier texto El mismo texto introducido
Formato Tipo de datos Fecha/Hora
Fecha general (Predeterminado) Si el valor es sólo una fecha, no se muestra ninguna hora; si el
valor es sólo una hora, no se muestra ninguna fecha. Este valor es una combinación de los valores de Fecha corta
y Hora larga. Ejemplos: _/93, 05:34:00 PM y _/93 05:34:00 PM.
Fecha larga Igual que el valor de Fecha larga del cuadro de diálogo Propiedades de
Configuración regional del Panel de control de Windows. Ejemplo: Sábado, 3 de Abril de 1993.
Fecha mediana Ejemplo: 3-Abr-93.
Fecha corta Igual que el valor de Fecha corta del cuadro de diálogo Propiedades de
Configuración regional del Panel de control de Windows. Ejemplo: _/93. Atención El formato Fecha corta
asume que las fechas comprendidas entre el 1/1/00 y el 31/12/29 son fechas del siglo XXI (es decir, que los años
están entre el 2000 y el 2029). Las fechas comprendidas entre el 1/1/30 y el 31/12/99 se asume que son fechas
del siglo XX (es decir, que los años están entre 1930 y 1999).
Hora larga Igual que el valor de la ficha Hora del cuadro de diálogo Propiedades de
Configuración regional del Panel de control de Windows. Ejemplo: 5:34:23 PM.
Hora mediana Ejemplo: 5:34 PM.
Hora corta Ejemplo: 17:34.
Formatos personalizados:
: (dos puntos) Separador de hora. Los separadores se establecen en el cuadro de diálogo
Propiedades de Configuración regional del Panel de control de Windows.
/ Separador de fecha.
C Igual que el formato predefinido Fecha general.
D Día del mes en uno o dos dígitos numéricos, según sea necesario (1 a 31).
Dd Día del mes en dos dígitos numéricos (01 a 31).
Ddd Tres primeras letras del día de la semana (Lun a Dom)
dddd Nombre completo del día de la semana (Lunes a Dom).
Ddddd Igual que el formato predefinido Hora corta.
Dddddd Igual que el formato predefinido Fecha larga.
S Día de la semana (1 a 7).
Ss Semana del año (1 a 53).
M Mes del año en uno o dos dígitos numéricos, según sea necesario (1 a 12).
Mm Mes del año en dos dígitos numéricos (01 a 12).
Mmm Tres primeras letras del mes (Ene a Dic).
Mmmm Nombre completo del mes (Enero a Diciembre).
T Fecha mostrada como trimestre del año (1 a 4).
A Número de día del año (1 a 366).
Aa Dos últimos dígitos del año (01 a 99).
Aaaa Año completo (0100 a 9999).
H Hora en uno o dos dígitos, según sea necesario (0 a 23).
Hh Hora en dos dígitos (00 a 23).
N Minuto en uno o dos dígitos, según sea necesario (0 a 59).
Nn Minuto en dos dígitos (00 a 59).
S Segundo en uno o dos dígitos, según sea necesario (0 a 59).
Ss Segundo en dos dígitos (00 a 59).
Ttttt Igual que el formato predefinido Hora larga.
AM/PM Reloj de 12 horas con las letras mayúsculas “AM” o “PM”, según sea apropiado.
GUIA ACCESS
Am/pm Reloj de doce horas con las letras minúsculas “am” o “pm”, según sea apropiado.
A/P Reloj de doce horas con la letra mayúscula “A” o “P”, según sea apropiado.
A/p Reloj de doce horas con la letra minúscula “a” o “p”, según sea apropiado.
AMPM Reloj de doce horas con el designador de mañana/tarde apropiado establecido en el cuadro de diálogo
Propiedades de Configuración regional del Panel de control de Windows.
Los formatos personalizados se muestran según el valor especificado en el cuadro de diálogo Propiedades de
Configuración regional del Panel de control de Windows. Los formatos personalizados incoherentes con los
valores especificados en el cuadro de diálogo Propiedades de Configuración regional se ignoran.
Nota Si desea agregar una coma u otro separador al formato personalizado, incluya el separador entre comillas
de la forma siguiente: d mmm”, “aaaa.
Ejemplos:
ddd”, “d mmm”, “aaaa Lun, 2 Jun, 1997
dd mmmm”, “aaaa 02 Junio, 1997
“Ésta es la semana número “ss Ésta es la semana número 22
“Hoy es “dddd Hoy es Martes
Formato Tipos de datos Numérico y Moneda
Número general (Predeterminado) Muestra el número tal como se introduce.
Moneda Utiliza el separador de miles; muestra los números negativos entre paréntesis; el valor predete-
rminado de la propiedad LugaresDecimales (DecimalPlaces) es 2.
Fijo Muestra al menos un dígito; el valor predeterminado de la propiedad LugaresDecimales
(DecimalPlaces) es 2.
Estándar Utiliza el separador de miles; el valor predeterminado de la propiedad
LugaresDecimales (DecimalPlaces) es 2.
Porcentaje Multiplica el valor por 100 y anexa un signo de porcentaje; el valor
predeterminado de la propiedad LugaresDecimales (DecimalPlaces) es 2.
Científico Utiliza la notación científica estándar.
Los formatos numéricos personalizados pueden tener entre una y cuatro secciones con signos de punto y coma
(;) como separador de lista. Cada sección contiene la especificación de formato para un tipo de número diferente.
Primera El formato para los números positivos.
Segunda El formato para los números negativos.
Tercera El formato para los valores cero.
Cuarta El formato para los valores Null.
Por ejemplo, puede utilizar el siguiente formato Moneda personalizado:
$#.##0,00[Verde];($#.##0,00)[Rojo];”Cero”;”Null”
Este formato numérico contiene cuatro secciones separadas por signos de punto y coma y utiliza un formato
diferente para cada sección.
Si utiliza varias secciones pero no especifica un formato para cada sección, las entradas para las que no hay nin-
gún formato no mostrarán nada o tomarán como valor predeterminado el formato de la primera sección.
Puede crear formatos numéricos personalizados mediante los símbolos siguientes:
, (coma) Separador decimal. Los separadores se establecen haciendo doble clic en Configuración
regional en el Panel de control de Windows.
. (punto) Separador de miles.
0 Marcador de posición de dígitos. Muestra un dígito ó 0.
# Marcador de posición de dígitos. Muestra un dígito o nada.
$ Muestra el carácter literal “$”.
% Porcentaje. El valor se multiplica por 100 y se le anexa un signo de porcentaje.
E– o e– Notación científica con un signo menos (–) junto a los exponentes negativos y nada junto
a los exponentes positivos. Este símbolo debe utilizarse con otros símbolos, como en el ejemplo 0,00E–00 o
0,00E00.
E+ o e+ Notación científica con un signo menos junto a los exponentes negativos y un signo más
(+) junto a los exponentes positivos. Este símbolo debe utilizarse con otros símbolos, como en el ejemplo
0,00E+00.
Puede utilizar la propiedad LugaresDecimales (DecimalPlaces) para anular el número predeterminado de lugares
decimales del formato predefinido especificado para la propiedad Formato (Format).
Ejemplos:
Valor Datos Muestra
Número general 3456,789 3456,789
–3456,789 –3456,789
$213,21 $213,21
Moneda –3456,789 ($3.456,79)
3456,789 3.456,79
Fijo 3456,789 3456.79
–3456,789 -3456,79
GUIA ACCESS
3,56645 3,57
Estándar 3456,789 3.456,79
Porcentaje 3 300%
0,45 45%
Ejemplos personalizados:
Valor Descripción
0;(0);;”Nulo” Muestra los valores positivos normalmente; muestra los valores negativos entre paréntesis;
muestra la palabra “Nulo” si el valor es Null.
+0,0;–0,0;0,0 Muestra un signo más (+) o menos (–) con números positivos o negativos; muestra 0,0 si el
valor es cero.
Formato Tipo de datos Sí/No
Access utiliza un control de casilla de verificación como control predeterminado para el tipo de datos Sí/No. Los
formatos predefinidos y personalizados se ignoran cuando se utiliza un control de casilla de verificación. Por
tanto, estos formatos se aplican sólo a los datos mostrados en un control de cuadro de texto.
La propiedad Formato (Format) dispone de los formatos predefinidos Sí/No, Verdadero/Falso y Activado-
/Desactivado. Sí, Verdadero y Activado son equivalentes entre sí, al igual que lo son No, Falso y Desactivado. Si
especifica un formato predefinido y, a continuación, introduce un valor equivalente, se mostrará el formato pred-
efinido del valor equivalente. Por ejemplo, si introduce Verdadero o Activado en un control de cuadro de texto
con su propiedad Formato (Format) establecida a Sí/No, el valor se convierte automáticamente a Sí.
El tipo de datos Sí/No puede utilizar formatos personalizados que contengan hasta tres secciones:
Primera Esta sección no tiene ningún efecto en el tipo de datos Sí/No. No obstante, se
requiere un signo de punto y coma (;) como marcador de posición.
Segunda El texto para mostrar en lugar de los valores Sí, Verdadero o Activado.
Tercera El texto para mostrar en lugar de los valores No, Falso o Desactivado.
El ejemplo siguiente muestra un formato Sí/No personalizado para un control de cuadro de texto. El control
muestra la palabra “Siempre” en texto azul para Sí, Verdadero o Activado, y la palabra “Nunca” en texto rojo
para No, Falso o Desactivado.
;”Siempre”[Azul];”Nunca”[Rojo]
Propiedad Máscara de Entrada.
Puede utilizar la propiedad MáscaraDeEntrada (InputMask) para facilitar la entrada de datos y para controlar los
valores que los usuarios pueden introducir en un control de cuadro de texto. Por ejemplo, puede crear una másca-
ra de entrada para un campo Número de teléfono que muestre exactamente cómo debe introducirse un número
nuevo: (___) ___-____. A menudo es más fácil utilizar el Asistente para máscaras de entrada para establecer la
propiedad automáticamente.
La propiedad MáscaraDeEntrada (InputMask) puede contener hasta tres secciones separadas por signos de punto
y coma (;).
Sección Descripción
Primera: Especifica la máscara de entrada propiamente dicha, por ejemplo, ¡(999) 999-9999. Para
ver una lista de los caracteres que puede utilizar para definir la máscara de entrada, vea la tabla sigu i-
ente.
Segunda: Especifica si Access almacena los caracteres de visualización literales
en la tabla al introducir datos. Si utiliza 0 para esta sección, todos los caracteres de visualización literal-
es (por ejemplo, el paréntesis de una máscara de entrada de un número de teléfono) se almacenan con el
valor; si introduce 1 o deja esta sección en blanco, sólo se almacenan los caracteres introducidos en el
control.
Tercera: Especifica el carácter que Access muestra para el espacio en el que el usuario
debe escribir un carácter en la máscara de entrada. Para esta sección puede utilizar cualquier carácter; p-
ara mostrar una cadena en blanco, utilice un espacio entre comillas (“ “).
En Visual Basic, se utiliza una expresión de cadena para establecer esta propiedad. El ejemplo siguiente espec-
ifica una máscara de entrada para un control de cuadro de texto utilizado para introducir un número de teléfono:
Forms!Clientes!Teléfono.InputMask = “(###) ###-####”
Al crear una máscara de entrada, puede utilizar caracteres especiales para hacer que la introducción de determin-
ados datos (por ejemplo, el código de área de un número de teléfono) sea obligatoria y que los demás datos sean
opcionales (como la extensión de teléfono). Estos caracteres especifican el tipo de datos, como el número o el
carácter que debe introducir para cada carácter de la máscara de entrada.
Puede definir una máscara de entrada mediante los siguientes caracteres.
Carácter Descripción
0 Dígito (0 a 9, entrada obligatoria, signos más [+] y menos [–] no permitidos).
9 Dígito o espacio (entrada no obligatoria, signos más y menos no permitidos).
# Dígito o espacio (entrada no obligatoria; los espacios se muestran en blanco en el modo
Edición, pero se eliminan cuando se guardan los datos; signos más y menos permitidos).
L Letra (A a Z, entrada obligatoria).
? Letra (A a Z, entrada opcional).
GUIA ACCESS
A Letra o dígito (entrada obligatoria).
a Letra o dígito (entrada opcional).
& Cualquier carácter o un espacio (entrada obligatoria).
C Cualquier carácter o un espacio (entrada opcional).
. , : ; - / Marcador de posición decimal y separadores de miles, hora y fecha (el carácter
depende del valor del cuadro de diálogo Propiedades de Configuración regional en el Panel de control
de Windows).
< Hace que todos los caracteres se conviertan a minúsculas.
> Hace que todos los caracteres se conviertan a mayúsculas.
! Hace que la máscara de entrada se muestre de derecha a izquierda, en lugar de mostrarse
de izquierda a derecha. Los caracteres introducidos en la máscara siempre se rellenan de izquierda a de-
recha. Puede incluir el signo de exclamación en cualquier lugar de la máscara de entrada.
\ Hace que el carácter siguiente se muestre como un carácter literal (por ejemplo, \A se
muestra sólo como A).
Nota: El establecimiento de la propiedad MáscaraDeEntrada (InputMask) a la palabra “Contraseña” crea un
control de entrada de contraseña. Cualquier carácter introducido en el control se almacena como el carácter pero
se muestra como un asterisco (*). Utilice la máscara de entrada de Contraseña para impedir que se muestren los
caracteres escritos en la pantalla.
Para un control, puede establecer esta propiedad en la hoja de propiedades del control. Para un campo de una
tabla, puede establecer esta propiedad en la vista Diseño de la tabla (en la sección Propiedades del campo) o en
la vista Diseño de la ventana Consulta (en la hoja de propiedades Propiedades del campo).
También puede establecer la propiedad MáscaraDeEntrada (InputMask) mediante una macro o Visual Basic.
Al introducir datos en un campo para el que se ha definido una máscara de entrada, los datos siempre se introdu-
cen en el modo Sobrescribir. Si utiliza la tecla RETROCESO para eliminar un carácter, el carácter se reemplaza
por un espacio en blanco.
Si mueve texto desde un campo para el cual ha definido una máscara de entrada hasta el Portapapeles, los carac-
teres de visualización literales se copian, incluso si ha especificado que no se guarden con datos.
Nota: Sólo los caracteres introducidos directamente en un control o un cuadro combinado se ven afectados por
la máscara de entrada. Access ignora las máscaras de entrada al importar datos, al ejecutar una consulta de acc-
ión o al introducir caracteres en un control estableciendo la propiedad Texto (Text) del control en Visual Basic o
mediante la acción EstablecerValor en una macro.
Cuando se ha definido una máscara de entrada y se ha establecido la propiedad Formato (Format) para el mismo
campo, la propiedad Formato (Format) tiene preferencia cuando se muestran los datos. Esto quiere decir que
incluso aunque haya guardado una máscara de entrada, la máscara de entrada se ignora cuando se da formato a
los datos y se muestran en pantalla. Los datos de la tabla base propiamente dicha no se modifican; la propiedad
Formato (Format) afecta sólo a cómo se muestran los datos.
Definición de máscara
de entrada Ejemplos de valores
(000) 000-0000 (206) 555-0248
(999) 999-9999! (206) 555-0248
( ) 555-0248
(000) AAA-AAAA (206) 555-TELE
#999 -20
2000
>L????L?000L0 GREENGR339M3
MAY R 452B7
>L0L 0L0 T2F 8M4
00000-9999 98115-
98115-3007
>L<?????????????? Elena
Manuel
ISBN 0-&&&&&&&&&-0 ISBN 1-55615-507-7
ISBN 0-13-964262-5
>LL00000-0000 DB51392-0493
Propiedad LugaresDecimales (DecimalPlaces)
Puede usar la propiedad LugaresDecimales (DecimalPlaces) para especificar el número de lugares decimales que
utiliza Access para presentar números.
La propiedad LugaresDecimales (DecimalPlaces) puede tener los valores siguientes:
Valor Descripción Visual Basic
Auto (Predeterminado) Los números aparecen en la forma especificada en la propiedad Formato (Format).
255

GUIA ACCESS
0 a 15 Los dígitos situados a la derecha del separador decimal aparecen con el número de lugares decimales
especificado, y los situados a la izquierda del separador aparecen como especifique el valor de la propiedad Fo-
rmato (Format). 0 a 15
Puede establecer esta propiedad para cuadros de texto y cuadros combinados en la hoja de propiedades del con-
trol, y para los campos de tablas en la hoja de propiedades de la tabla. También puede establecer la propiedad en
la hoja de propiedades Propiedades del campo en la vista Diseño de consulta.
Sugerencia: Se recomienda establecer la propiedad LugaresDecimales (DecimalPlaces) en la hoja de propieda-
des de la tabla. Si después crea un control dependiente en un formulario o informe, heredará el valor de la propi-
edad LugaresDecimales (DecimalPlaces) establecido para el campo de la tabla o consulta base, con lo que no
será necesario especificar la propiedad para cada control dependiente que cree.
En el caso de los controles, también puede establecer esta propiedad con una macro o con Visual Basic.
Nota: El valor de la propiedad LugaresDecimales (DecimalPlaces) no tiene ningún efecto si la propiedad Form-
ato (Format) está en blanco o tiene el valor Número general.
Comentarios: La propiedad LugaresDecimales (DecimalPlaces) afecta sólo al número de lugares decimales que
se muestran, y no al número de decimales que se almacena. Para cambiar la forma en que se almacena un núm-
ero, es necesario modificar la propiedad Tamaño del campo en la vista Diseño de la tabla.
Puede usar la propiedad LugaresDecimales (DecimalPlaces) para mostrar números de forma distinta a la indic-
ada por el valor de la propiedad Formato (Format), o distinta de la forma en que están almacenados. Por ejemplo,
el valor Moneda en la propiedad Formato (Format) hace que se muestren sólo dos decimales (5,35). Para mostrar
números de tipo Moneda con cuatro decimales (por ejemplo 5,3523), establezca el valor 4 en la propiedad Lug-
resDecimales (DecimalPlaces).
Propiedad Título (Caption)
Puede usar la propiedad Título (Caption) para proporcionar información útil al usuario mediante de títulos sobre
los objetos en distintas vistas:
· Los títulos de campos especifican el texto de las etiquetas adjuntas a los controles creados al arrastrar un
campo desde la lista de campos, y sirven como encabezados de columna para los campos en la vista Hoja de
datos de una tabla o consulta.
· Los títulos de formularios especifican el texto que aparece en la barra de título en la vista Formulario.
· Los títulos de informes especifican el título del informe en la Vista preliminar.
· Los títulos de botones y etiquetas especifican el texto que aparece en el control.
La propiedad Título (Caption) es una expresión de cadena que puede contener hasta 2.042 caracteres. Se truncar-
án los títulos de los formularios e informes que sean demasiado largos para mostrarlos en la barra de título.
En el caso de los controles, puede establecer esta propiedad en la hoja de propiedades. Para establecerla para los
campos, utilice la hoja de propiedades en la vista Diseño de tabla o en la ventana Consulta (en la hoja de propi-
edades Propiedades del campo). También puede establecer esta propiedad con una macro o con Visual Basic.
Comentarios: Si no especifica un título para un campo de una tabla, se usará el valor de la propiedad Nombre del
campo de ese campo como título de una etiqueta adjunta a un control o como encabezado de columna en la vista
Hoja de datos. Si no especifica el título de un campo de una consulta, se usará el del campo de la tabla base. Si
no establece el título de un formulario, botón o etiqueta, Access le asignará un nombre único basándose en el
tipo de objeto, como por ejemplo “Formulario1”.
Si crea un control arrastrando un campo desde la lista de campos y no ha especificado un valor para la propiedad
Título (Caption) del mismo, se copiará el valor de la propiedad Nombre del campo del campo en el cuadro de la
propiedad Nombre (Name) del control, y por ello aparecerá en la etiqueta del control creado.
Nota: El texto de la propiedad Título (Caption) para un control etiqueta o botón de comando es el texto de pre-
sentación de hipervínculo cuando se ha establecido la propiedad DirecciónDeHipervínculo (HyperlinkAddress) o
SubdirecciónDeHipervínculo (HyperlinkSubAddress) del control.
Puede usar la propiedad Título (Caption) para asignar una tecla de acceso a una etiqueta o botón de comando. En
el título, incluya un signo “&” inmediatamente antes del carácter que desee utilizar como tecla de acceso. Este
carácter aparecerá subrayado. Puede presionar ALT y el carácter subrayado del control para desplazar el enfoque
a dicho control en un formulario.
Sugerencia: Si desea incluir un signo “&” en el título, escirba dos caracteres “&” en el título. Por ejemplo, para
que aparezca “Guardar & Salir”, deberá escribir Guardar && Salir en el cuadro de la propiedad Título (Caption).
Propiedad ValorPredeterminado (DefaultValue)
Puede utilizar la propiedad ValorPredeterminado (DefaultValue) para especificar un valor que se introduce aut-
omáticamente en un campo cuando se crea un nuevo registro. Por ejemplo, en la tabla Direcciones puede estab-
lecer el valor predeterminado del campo Ciudad a Nueva York. Cuando los usuarios agregan un registro a la
tabla, pueden aceptar este valor o introducir el nombre de una ciudad diferente.
Notas:
· La propiedad ValorPredeterminado (DefaultValue) no se aplica a controles de casilla de verificación,
botón de opción o botón de alternar cuando se encuentran en un grupo de opciones. Se aplica al grupo de opcio-
nes propiamente dicho.
· La propiedad ValorPredeterminado (DefaultValue) se aplica a todos los campos de la tabla excepto a
los campos con el tipo de datos Autonumérico u Objeto OLE.
GUIA ACCESS
La propiedad ValorPredeterminado (DefaultValue) especifica texto o una expresión que se introduce automátic-
amente en un control o un campo cuando se crea un nuevo registro. Por ejemplo, si establece la propiedad Valo-
rPredeterminado (DefaultValue) de un control de cuadro de texto a =Ahora(), el control muestra la fecha y la
hora actual. La longitud máxima de un valor de la propiedad ValorPredeterminado (DefaultValue) es 255 carac-
teres.
Para un control, puede establecer esta propiedad en la hoja de propiedades del control. Para un campo, puede
establecer esta propiedad en la vista Diseño de la tabla (en la sección Propiedades del campo), en una macro o
mediante Visual Basic.
En Visual Basic, utilice una expresión de cadena para establecer el valor de esta propiedad. El ejemplo siguiente
establece la propiedad ValorPredeterminado (DefaultValue) para un control de cuadro de texto denominado
MétodoPago a “Efectivo”:
Forms!frmFactura!MétodoPago.DefaultValue = “””Efectivo”””
Nota: Para establecer esta propiedad para un campo mediante Visual Basic, utilice la propiedad ValorPredeter-
minado (DefaultValue) de DAO.
Comentarios: La propiedad ValorPredeterminado (DefaultValue) se aplica sólo cuando se agrega un registro
nuevo. Si se cambia la propiedad ValorPredeterminado (DefaultValue), el cambio no se aplica automáticamente
a los registros existentes.
Si establece la propiedad ValorPredeterminado (DefaultValue) para un control de un formulario que depende de
un campo que también tiene un valor de la propiedad ValorPredeterminado (DefaultValue) definido en la tabla,
el valor del control anula al valor de la tabla.
Si crea un control arrastrando un campo desde la lista de campos, el valor de la propiedad ValorPredeterminado
(DefaultValue) del campo, tal como está definido en la tabla, se aplica al control del formulario aunque el valor
de la propiedad ValorPredeterminado (DefaultValue) del control permanezca en blanco.
Un control puede proporcionar el valor predeterminado para otro control Por ejemplo, si establece la propiedad
ValorPredeterminado (DefaultValue) de un control a la expresión siguiente, el valor predeterminado del control
se establece al valor de la propiedad ValorPredeterminado (DefaultValue) del control txtEnviarA.
=Forms!frmFactura!txtEnviarA
Si los controles están en el mismo formulario, el control que es el origen del valor predeterminado debe aparecer
en el orden de fichas antes que el control que contiene la expresión.
Propiedades ReglaDeValidación (ValidationRule) y TextoDeValidación (ValidationText)
Puede utilizar la propiedad ReglaDeValidación (ValidationRule) con el fin de especificar requisitos para los
datos introducidos en un registro, un campo o un control. Cuando se introducen datos que infringen el valor de la
propiedad ReglaDeValidación (ValidationRule), puede utilizar la propiedad TextoDeValidación (ValidationTe-
xt) para especificar el mensaje que se mostrará al usuario.
Nota : Las propiedades ReglaDeValidación (ValidationRule) y TextoDeValidación (ValidationText) no se apl-
can a controles de casilla de verificación, botón de opción o botón de alternar cuando se encuentran en un grupo
de opciones. Se aplican sólo al grupo de opciones propiamente dicho.
Introduzca una expresión para el valor de la propiedad ReglaDeValidación (ValidationRule) y texto para el valor
de la propiedad TextoDeValidación (ValidationText). La longitud máxima del valor de la propiedad ReglaDeV-
alidación (ValidationRule) es 2048 caracteres. La longitud máxima del valor de la propiedad TextoDeValidación
(ValidationText) es 255 caracteres.
Para los controles, puede establecer la propiedad ReglaDeValidación (ValidationRule) a cualquier expresión
válida. Para las reglas de validación de campo y registro, la expresión no puede contener funciones definidas por
el usuario, funciones agregadas de dominio o funciones agregadas, la función UsuarioActual (CurrentUser) o
Eval, o referencias a formularios, consultas o tablas. Además, las reglas de validación de campo no pueden con-
tener referencias a otros campos. Para los registros, las expresiones pueden incluir referencias a campos de esa
tabla.
Puede establecer las propiedades ReglaDeValidación (ValidationRule) y TextoDeValidación (ValidationText)
mediante:
· La sección Propiedades del campo de la vista Diseño de la tabla (para una regla de validación de camp-
o).
· La hoja de propiedades de una tabla; para ello, elija Propiedades en el menú Ver en la vista Diseño de la
tabla (para una regla de validación de registro). Ej.: ([FORMA_PAGO]="TARJETA" Y ([DESCUENTO]=0 O
[DESCUENTO]=NULO)) O [FORMA_PAGO]="CONTADO"
· La hoja de propiedades de un control de un formulario.
· Una macro o Visual Basic. En Visual Basic, utilice una expresión de cadena para establecer estas propi-
edades.
Para los registros y los campos de tabla, también puede establecer estas propiedades en Visual Basic mediante la
propiedad ReglaDeValidación (ValidationRule) de DAO.
Comentarios: Access valida automáticamente valores según el tipo de datos de un campo; por ejemplo, Access
no permite texto en un campo numérico. Puede establecer reglas más específicas mediante la propiedad Regla-
DeValidación (ValidationRule).

GUIA ACCESS
Si establece la propiedad ReglaDeValidación (ValidationRule) pero no la propiedad TextoDeValidación (Valid-
ationText), Access muestra un mensaje de error estándar cuando se infringe la regla de validación. Si establece
la propiedad TextoDeValidación (ValidationText), el texto introducido se muestra como mensaje de error.
Por ejemplo, cuando se agrega un registro para un nuevo empleado, puede introducir una propiedad ReglaDeVa-
lidación (ValidationRule) que requiera que el valor del campo FechaInicio del empleado quede entre la fecha de
fundación de la compañía y la fecha actual. Si la fecha introducida no está en ese intervalo, puede mostrar el
mensaje de la propiedad TextoDeValidación (ValidationText): “La fecha de inicio es incorrecta.”
Si crea un control arrastrando un campo desde la lista de campos, la regla de validación del campo permanece en
efecto, aunque no se muestra en el cuadro de la propiedad ReglaDeValidación (ValidationRule) del control en la
hoja de propiedades. Esto se debe a que la regla de validación del campo es heredada por un control dependiente
de ese campo.
Las reglas de validación de control, campo y registro se aplican de la forma siguiente:
· Las reglas de validación establecidas para los campos y controles se aplican cuando se editan los datos y
el enfoque sale del campo o control.
· Las reglas de validación para los registros se aplican al moverse a otro registro.
· Si crea reglas de validación para un campo y un control dependiente del campo, ambas reglas de valid-
ación se aplican cuando se editan los datos y el enfoque sale del control.
La tabla siguiente contiene ejemplos de expresiones para las propiedades ReglaDeValidación (ValidationRule) y
TextoDeValidación (ValidationText).
Propiedad ReglaDeValidación (ValidationRule) Propiedad TextoDeValidación (ValidationText)
<> 0 La entrada debe ser un valor distinto de cero.
> 1000 O Es Nulo La entrada debe estar en blanco o ser mayor que 1000.
Como “A????” La entrada debe tener 5 caracteres y comenzar por la letra “A”.
>= #1/1/96# Y <#1/1/97# La entrada debe ser una fecha de 1996.
"Madrid" o "Sevilla" o "Valencia" Sólo una de las tres ciudades.
Dbúsq(“IdCliente”, “Clientes”, “IdCliente = Forms!Clientes!IdCliente”) Es Nulo La entrada debe ser un
IdCliente exclusivo (las funciones agregadas de dominio se permiten sólo para la validación a nivel de formu-
lario).
Si crea una regla de validación para un campo, Access normalmente no permite que se almacene un valor Null
en el campo. Si desea permitir un valor Null, agregue “Es Nulo” a la regla de validación, como en “<> 8 O Es
Nulo”, y asegúrese de que la propiedad Requerido (Required) está establecida a No.
No es posible establecer reglas de validación de campo o registro para las tablas creadas fuera de Access (por
ejemplo, dBASE, Paradox, o SQL Server). Para este tipo de tablas, puede crear reglas de validación sólo para
controles.
Propiedad Requerido (Required)
Puede usar la propiedad Requerido (Required) para especificar si es necesario que exista un valor en un campo.
Si el valor de esta propiedad es Sí, al introducir datos en un registro deberá especificar un valor en el campo en
cualquier control dependiente del mismo, y además el valor no podrá ser Nulo. Por ejemplo, es posible que desee
asegurarse de que el control Apellidos tenga siempre un valor en todos los registros. Cuando desee permitir el
valor Nulo en un campo, no sólo deberá establecer No para la propiedad Requerido (Required), sino que, si la
propiedad ReglaDeValidación (ValidationRule) tiene algún valor deberá contener explícitamente “regla-
_de_validación O Es Nulo”.
Nota: La propiedad Requerido (Required) no se aplica a los campos de tipo Autonumérico.
La propiedad Requerido (Required) puede tener los valores siguientes:
Valor Descripción Visual Basic
Sí El campo requiere un valor. True (–1)
No (Predeterminado) El campo no requiere un valor. False (0)
Puede establecer esta propiedad para todos los campos de una tabla (excepto para los de tipo Autonumérico) en
la hoja de propiedades de la tabla o Visual Basic.
Nota: Para tener acceso a la propiedad Requerido (Required) de un campo en Visual Basic, utilice la propiedad
Required de DAO.
Comentarios: El motor de base de datos Jet hace que se cumple la propiedad Requerido (Required) a nivel de
tabla.Si establece Sí en esta propiedad, el campo deberá recibir un valor o contenerlo ya cuando tenga el enfoq-
ue, cuando un usuario introduzca datos en una tabla (o en un formulario u hoja de datos basado en ella), cuando
una macro o Visual Basic establezcan el valor del campo o cuando se importen datos a la tabla.
Puede usar las propiedades Requerido (Required) y Permitir longitud cero (AllowZeroLength) para distinguir
entre la inexistencia de información (indicada por una cadena de longitud cero (“ “) almacenada en el campo) y
la información que puede existir, pero que se desconoce (almacenada como un valor Nulo en el campo). Si est-
blece Sí en la propiedad Permitir longitud cero (AllowZeroLength), una cadena de longitud cero será una entrada
válida en el campo, independientemente del valor de la propiedad Requerido (Required)
. Si establece Sí en Requerido (Required) y No en Permitir longitud cero (AllowZeroLength), deberá introducir
un valor en el campo, y no será válida una cadena de longitud cero.

GUIA ACCESS
Sugerencia: Puede utilizar una máscara de entrada al introducir datos en un campo para distinguir entre un valor
Nulo y la de una cadena de longitud cero. Por ejemplo, puede mostrarse la cadena “Ninguno” cuando se intro-
duce una cadena de longitud cero.
Si establece Sí en la propiedad Requerido (Required) de un campo de una tabla que ya contiene datos, Access le
dará la opción de comprobar o no si el campo tiene un valor en todos los registros existentes. Sin embargo, pue-
de obligar a que se especifique un valor para el campo en todos los registros nuevos incluso cuando existan regi-
stros con el valor Nulo en él.
Nota: Para forzar una relación entre tablas que no admitan valores Nulo, establezca Sí en la propiedad Reque-
rido (Required).del campo clave externa de la tabla relacionada. El motor de base de datos Jet asegurará entonces
que haya un registro relacionado en la tabla principal antes de poder crear un registro en la tabla secundaria. Si el
campo clave externa forma parte de la clave principal de la tabla secundaria, esto no es necesario, ya que una
clave principal no puede contener el valor Nulo.
Propiedad Indexado
Puede usar la propiedad Indexado para establecer un índice de un solo campo. Los índices hacen que las consu-
ltas basadas en los campos indexados sean más rápidas, y también aceleran las operaciones de ordenación y
agrupación. Por ejemplo, si busca empleados basándose en un campo llamado Apellidos, puede crear un índice
para este campo para hacer más rápida la búsqueda.
La propiedad Indexado puede tener los valores siguientes:
Valor Descripción
No (Predeterminado) Sin índice.
Sí (Con duplicados) El índice admite valores duplicados.
Sí (Sin duplicados) El índice no admite valores duplicados.
Sólo puede establecer esta propiedad en la sección Propiedades del campo de la vista Diseño de la tabla. Puede
establecer un índice de un solo campo estableciendo la propiedad Indexado en la sección Propiedades del campo
de la vista Diseño de tabla. Para establecer índices formados por varios campos, abra la ventana Índices haciendo
clic en el comando Índices del menú Ver.( ALT+ V, N. )
Si agrega un índice de un solo campo en la ventana Índices, Access establecerá Sí en la propiedad Indexado de
ese campo.
En Visual Basic, utilice el método CreateIndex de DAO para crear un índice de un solo campo.
Comentarios: Puede usar la propiedad Indexado para buscar y ordenar registros con un solo campo de una tabla.
Este campo puede contener valores únicos o No. Por ejemplo, puede crear un índice con un campo llamado Id-
Empleado para una tabla Empleados en la que cada identificador de empleado sea único, o también un índice con
el campo Nombre, en el que algunos nombres pueden estar duplicados.
Nota: No es posible crear índices con los campos de tipo Memo, Hipervínculo u Objeto OLE.
Puede crear tantos índices como precise. Los índices se crean al guardar la tabla, y se actualizan automáticame-
nte al modificar o agregar registros. En cualquier momento puede agregar o eliminar índices en la vista Diseño
de la tabla.
Sugerencia: Puede especificar texto utilizado habitualmente al comienzo o al final de un nombre de campo
(como “Id”, “código” o “núm”) en la opción Autoindexar al importar ocrear de la ficha Tablas/Consultas, que
aparece al hacer clic en el comando Opciones del menú Herramientas. Al importar archivos de datos que conte-
ngan ese texto en el nombre de sus campos, Access creará un índice los mismos.
Si la clave principal de una tabla es un solo campo, Access establecerá automáticamente la propiedad Indexado
de ese campo a Sí (Sin duplicados).
Si desea crear índices con múltiples campos, utilice la ventana Índices.
Ficha Búsqueda en Diseño de Tabla, con Cuadro de Lista o Combinado.
Propiedad Mostrar control
Puede utilizar la propiedad Mostrar control en la vista Diseño de la tabla para especificar el control predetermin-
ado que desee emplear para mostrar un campo.
Puede establecer la propiedad Mostrar control en la hoja de propiedades de la tabla, en la vista Diseño de la tab-
la, haciendo clic en la ficha Búsqueda de la sección Propiedades del campo.
Esta propiedad contiene una lista desplegable con los controles disponibles para el campo seleccionado. En el
caso de campos de tipo Texto o Número, en esta propiedad se puede establecer Cuadro de texto, Cuadro de lista
o Cuadro combinado. Para los campos de tipo Sí/No, en la propiedad puede establecerse Casilla de verificación,
Cuadro de texto o Cuadro combinado.
Comentarios:
Al seleccionar un control para esta propiedad, aparecen en la ficha Búsqueda las propiedades adicionales neces-
arias para configurarlo.
Sugerencia: Puede hacer que Access establezca la propiedad Mostrar control y las relacionadas con ella selec-
cionando Asistente para búsquedas como el tipo de datos para el campo.
La configuración de esta propiedad y de las del control relacionado afectará a la forma en que aparece el campo
en la vista Hoja de datos y en la vista Formulario. El campo se muestra a través del control, y con las propiedad-
es del control establecidas en la vista Diseño de la tabla. Si un campo tiene establecida su propiedad Mostrar

GUIA ACCESS
control en la vista Diseño de la tabla y lo arrastra desde la lista de campos en la vista Diseño del formulario,
Access copiará las propiedades correspondientes en la hoja de propiedades del control.
Propiedades que puede utilizar para crear o modificar cuadros de lista y cuadros combinados, Resumen.
Cuando utilice un asistente para crear un cuadro de lista o cuadro combinado, Access establecerá determinadas
propiedades para el control. Puede trabajar directamente con estas propiedades si no desea utilizar el asistente
para crear el control, o puede utilizar un asistente para crear el control y, a continuación, modificar estas propi-
edades para hacer que el control funcione exactamente de la forma que el usuario desea. Para averiguar más
sobre alguna de las siguientes propiedades, haga clic en la hoja de la propiedad y presione F1.
Nota: Si está creando o modificando un cuadro de lista o cuadro combinado dependiente, puede establecer estas
propiedades en la vista Diseño de la tabla en vez de utilizar la hoja de propiedades del control. De esta forma,
puede especificar las propiedades solamente una vez. Cuando agregue un campo al formulario, Access creará de
forma automática el control basado en las propiedades que el usuario especificó.
Propiedad Descripción
TipoDeOrigenDeLaFila Funciona junto con la propiedad OrigenDeLaFila. Se especifica el tipo de origen de la
fila (tabla/consulta, lista valores, lista campos, o función Visual Basic) utilizando esta propiedad y especificando
después el origen de la fila actual en la propiedad OrigenDeLaFila. Para ampliar: Ver Pág 55, Propiedades Tipo
de Origen y Origen de la Fila.
OrigenDeLaFila Especifica el nombre de la tabla, consulta o instrucción SQL, si TipoDeOrigenDeLaFila está
establecido a Tabla/Consulta. Especifica las entradas en la lista, separadas por punto y coma, si TipoDeOrigenD-
eLaFila está establecida a Lista Valores. Especifica el nombre de la tabla o consulta si TipoDeOrigenDeLaFila
está establecido a Lista Campos. Está en blanco si TipoDeOrigenDeLaFila está establecido con un nombre de
función. Para ampliar: Ver Pág 55, Propiedades Tipo de Origen y Origen de la Fila.
ColumnaDependiente En un cuadro de lista o cuadro combinado de columnas múltiples dependientes, espe-
cifica qué columna está vinculada con el campo base especificado en la propiedad OrigenDelControl. Los datos
de esa columna serán almacenados en el campo cuando seleccione el objeto en la lista. Estos datos pueden
ser diferentes de los datos presentados en la lista si se oculta la columna. Para ampliar: Ver Pág 56, Propied-
ad Columna Dependiente.
NúmeroDeColumnas Especifica el número de columnas en un cuadro de lista o cuadro combinado. Puede
incluir una columna pero no presentarla en una lista mediante el establecimiento de la propiedad AnchuraDeCol-
umna. Puede desear hacer esto si tiene una lista que busca valores en una tabla o consulta. Puede incluir un cam-
po de Id. Que no aparezca en la lista. En un cuadro combinado, la primera columna visible en la lista se muestra
en la porción del cuadro de texto del cuadro combinado.
AnchuraDeColumnas Especifica el ancho de cada columna, utilizando punto y coma como separador. Intro-
duzca 0 para ocultar una columna. Introduzca un punto y coma sin ninguna medida para utilizar el valor prede-
terminado (alrededor de 1” ó 2.5 cm, dependiendo de la unidad de medida establecida en Panel de Control de
Windows). En un cuadro combinado, la primera columna visible se muestra en el cuadro de texto del control. El
tipo de datos de cualquier valor que escriba en el cuadro combinado debe ser el mismo o compatible con el tipo
de datos de la primera columna visible.
EncabezadosDeColumna Determina si los nombres de los campos del origen de la fila base para un
cuadro combinado o cuadro de lista son utilizados como encabezados de columna en el cuadro combinado o
cuadro de lista. Los encabezados aparecen en los cuadros combinados solamente cuando se despliega la lista.
AnchuraDeLaLista Especifica el ancho de la porción del cuadro de lista de un cuadro combinado.
FilasEnLista Especifica el número máximo de filas que se van a mostrar en la porción del cuadro de lista de
un cuadro combinado.
LimitarALista Determina si un cuadro combinado acepta cualquier texto introducido o solamente texto que
coincida con uno de los valores de la lista. Si desea agregar a la lista un nuevo valor que el usuario introducirá,
establezca la propiedad a No y agregue un procedimiento de evento a la propiedad AlNoLaLista.
AlNoEnLista Ejecuta el procedimiento de evento adjunto cuando ocurre el evento NotInList. Puede utilizar
esta propiedad para agregar de forma automática un valor nuevo a la lista. Esta propiedad no está disponible en
la ficha Buscar en la vista Diseño de la tabla.
ExpansiónAutomática Especifica si Access rellena de forma automática un valor que coincida con los car-
cteres que se introducen en un cuadro combinado. Esta propiedad no está disponible en la ficha Buscar en la
vista Diseño de la tabla.
MostrarControl Especifica el tipo de control (cuadro combinado o cuadro de lista) que Access crea de forma
predeterminada cuando se agrega un campo de búsqueda a un formulario. Esta propiedad está disponible en la
ficha Buscar en la vista Diseño de la tabla

Relaciones
Una vez creadas tablas diferentes para cada tema de la base de datos, necesita una forma de indicarle a Access
cómo debe volver a combinar esa información. El primer paso de este proceso es definir relaciones entre las
tablas. Una vez realizada esta operación, puede crear consultas, formularios e informes para mostrar información
de varias tablas a la vez.

GUIA ACCESS
Ejemplo de relación: para saber los clientes que pidieron un producto, hay que incluir también tabla Orders,
aparte de Customers y Order Details. (Northwind), ya que Orders las relaciona entre sí.
Desde Herramientas (Relaciones) hacer doble Clic en la Línea de Combinación (Relación) entre dos tablas para
ver o establecer el tipo de relación entre dos tablas, Integridad referencial y Tipo de Combinación.
Definir relaciones entre tablas
1 Cierre todas las tablas que estén abiertas. No es posible crear ni modificar relaciones entre tablas abiertas.
2 Si se encuentra en otra ventana, cámbiese a la ventana Base de datos. Puede presionar F11 para cambiar a la
ventana Base de datos desde cualquier otra ventana.
3 Haga clic en Relaciones en la barra de herramientas.
4 Si la base de datos no tiene ninguna relación definida, se mostrará automáticamente el cuadro Mostrar tabla. Si
necesita agregar las tablas que desea relacionar y no aparece el cuadro de diálogo Mostrar tabla, haga clic en
Mostrar tabla en la barra de herramientas. Si las tablas que desea relacionar ya están mostradas, continúe en el
paso 6.
5 Haga doble clic en los nombres de las tablas que desea relacionar y, a continuación, cierre el cuadro de diálogo
Mostrar tabla.
6 Arrastre el campo que desea relacionar de una tabla al campo relacionado de la otra tabla.
Para arrastrar varios campos, presione la tecla CTRL y haga clic en cada campo antes de arrastrarlo.
En la mayoría de los casos, se arrastra el campo de clave principal (mostrado en texto en negrita) de una tabla a
un campo similar (normalmente con el mismo nombre) denominado la clave externa de la otra tabla. Los campos
relacionados no tienen que tener los mismos nombres, pero deben tener el mismo tipo de datos (con dos excep-
ciones) y deben contener el mismo tipo de información. Además, cuando los campos coincidentes son campos
Numéricos, deben tener el mismo valor de la propiedad Tamaño del campo. Las dos excepciones a los tipos de
datos coincidentes son que se puede hacer coincidir un campo Autonumérico con un campo Numérico cuya
propiedad Tamaño del campo esté establecida a Entero largo y que se puede hacer coincidir un campo Auton-
umérico con un campo Numérico si ambos campos tienen la propiedad Tamaño del campo establecida a Id. De
réplica.
7 Aparecerá el cuadro de diálogo Relaciones. Compruebe los nombres de los campos mostrados en las dos col-
umnas para asegurarse de que son correctos. Puede cambiarlos si es necesario.
Si es preciso, establezca las opciones de relación. Para obtener información acerca de un elemento específico del
cuadro de diálogo Relaciones, haga clic en el botón de signo de interrogación y, a continuación, haga clic en el
elemento.
8 Haga clic en el botón Crear para crear la relación.
9 Repita los pasos 5 a 8 para cada pareja de tablas que desee relacionar.
Al cerrar la ventana Relaciones, Access pregunta si desea guardar el diseño. Independientemente de si lo guarda
o no, las relaciones creadas se guardan en la base de datos.
Notas
· Si necesita ver todas las relaciones definidas en la base de datos, haga clic en Mostrar todas las relac-
iones en la barra de herramientas. Para ver sólo las relaciones definidas para una tabla determinada, haga clic en
la tabla y, a continuación, haga clic en Mostrar relaciones directas en la barra de herramientas.
· Si necesita realizar un cambio en el diseño de una tabla, puede hacer clic con el botón secundario del
ratón en la tabla que desea modificar y, a continuación, hacer clic en Diseño de tabla.
· Puede crear relaciones utilizando tanto consultas como tablas. Sin embargo, la integridad referencial no
se exige en las consultas.
· Para crear una relación entre una tabla y sí misma, agregue esta tabla dos veces. Esto resulta útil en
situaciones en las que necesita realizar una búsqueda dentro de la misma tabla. Por ejemplo, en la tabla Emple-
ados de la base de datos de ejemplo Neptuno, se ha definido una relación entre los campos Id. De empleado y
Jefe, de modo que el campo Jefe pueda mostrar datos de los empleados procedentes de un Id. De empleado coin-
cidente.
Integridad referencial.
Los registros de la tabla relacionada siempre deben tener una registro con la misma clave principal en la tabla
primaria, aunque sólo si: el campo o campos coincidentes de la tabla principal es una clave principal o tiene un
índice único, los campos relacionados tienen el mismo tipo de datos y ambas tablas están almacenadas en la
misma base de datos .
Active la casilla Exigir integridad referencial y a continuación Actualizar en cascada los campos relacionados
para actualizar automáticamente los valores correspondientes de la tabla relacionada cuando se cambie un valor
de la clave principal en la tabla principal.
Active la casilla Exigir integridad referencial y desactive Actualizar en cascada los campos relacionados para
impedir que se realicen cambios en un valor de la clave principal en la tabla principal, siempre que haya registros
relacionados en la tabla relacionada.
Active la casilla Exigir integridad referencial y a continuación Eliminar en cascada los registros relacionados
para eliminar automáticamente los registros relacionados en la tabla relacionada siempre que se elimine un regi-
stro de la tabla principal.

GUIA ACCESS
Active la casilla Exigir integridad referencial y desactive Eliminar en cascada los registros relacionados para
impedir que se eliminen registros de la tabla principal cuando existen registros relacionados en la tabla relacion-
ada.
Propiedades de la combinación.
Para definir registros a incluir de tabla relacionada y principal:
1.- Los campos clave deben existir en ambas tablas.
2.- Todos los registros de tabla principal y los que coincidan de la relacionada.
3—Todos los registros de la tabla relacionada y los que coincidan de la principal.
Se puede crear una relación con una copia de la misma tabla (autorelacionada) para, por ejemplo,
buscar en la 2da tabla los datos del campo Jefe de la Tabla Empleados principal. Para ello se crea una relación
entre el campo Jefe de la tabla principal y IdEmpleado de la relacionada.

CONSULTAS
Las consultas se usan para ver, cambiar y analizar datos de distintas maneras. También se pueden usar como
origen de registros para formularios e informes.
El tipo de consulta más común es la consulta de selección. Una consulta de selección recupera datos de una o
más tablas usando los criterios que especifique y, a continuación, los muestra en el orden deseado.
Las consultas obtienen datos de dos o más tablas relacionadas, buscan datos que cumplen criterios y calculan
totales. Algunas consultas se utilizan como la base de un formulario o informe; otras se utilizan para manipular
datos, cuyos resultados puede ver en la hoja de datos de la consulta.
Cree una consulta con un asistenmte o desde el principio en la vista Diseño de la consulta. Abrir las tablas o
consultas para utilizar en la consulta, en Consulta, diseño, con ALT+C, M. y arrastrar los campos al panel de
consulta (cuadrícula), en el orden que se deseen.
En diseño se pueden pasar todos los campos seleccionando con doble-clic o arrastrando el Título, ó en *. El
asterisco pasa nombre de tabla + * (Personal.*). Con * no se puede especificar criterio ni ordenar, a no ser que se
repita el campo a tratar (y poner no mostrar). Con * siempre se refleja automáticamente todo cambio que se haya
hecho en la tabla, como agregar o eliminar campos.
Para cambiar nombre de columna de Consulta., anteponer el nuevo y dos puntos. Ej.: AGENTE VENTAS.: ID
Empleado (aparece “AGENTE VENTAS”), o si no en Propiedades de ese campo, Título.
Zoom: MAY+F2. Amplía el espacio del campo.
Ejemplo de Diseño de Consulta. Mostrar Clientes de Madrid con Pedidos de Artículos que comiencen con "Traj-
e" y su cantidad. El campo Población no se muestra (todo Madrid). Observar los Campos de Relación y su tipo
entre las Tablas y cómo se pueden asociar los campos de Artículos con los de Clientes.

CONSULTAS - MENUS VISTA HOJA DE DATOS


Son iguales que los Menús de Vista de Tablas, excepto Menú Ver, Vista SQL, que también está en Diseño..
CONSULTAS - MENUS VISTA DISEÑO
MENU EDICION
Eliminar columnas: En la vista Diseño de la consulta y en la ventana Filtro u orden avanzado, elimina la col-
umna seleccionada de la cuadrícula de diseño, lo que a su vez elimina un campo de la consulta o filtro activo.
Para seleccionar una columna, haga clic en el selector de columna; la eliminación de una columna en la cuadr-
ícula de diseño no supone su eliminación en la tabla base.
En la vista Hoja de datos de la tabla, elimina de forma permanente la columna seleccionada. Para seleccionar una
columna, haga clic en el selector de campo.

GUIA ACCESS
Borrar cuadrícula / Borrar filtro: Borra los campos en la cuadrícula o en el filtro. Además, en la vista Diseño
de la consulta, borra los parámetros que pudiera haber en el cuadro de diálogo Parámetros de la consulta. Se
borran los campos en la cuadrícula pero no en la tabla base.
MENU VER
Vista SQL: Muestra la vista SQL donde puede ver y modificar una consulta utilizando el lenguaje de consulta
estructurado (Structured Query Language, SQL). Los cambios realizados en la ventana SQL se reflejan en la
vista Diseño de la consulta y viceversa (excepto para las consultas específicas de SQL).
SQL.
Trabajar con SQL en consultas, formularios, informes, macros y módulos:
Puede utilizar el Lenguaje estructurado de consultas SQL, para consultar, actualizar y administrar bases de datos
relacionales, tales como Access. Cuando se crea una consulta en la vista Diseño, Access construye en segundo
plano la instrucción de SQL equivalente. Puede ver o editar la instrucción SQL en la vista SQL. Después de
hacer modificaciones en una consulta en la vista SQL, ésta puede no presentarse en la forma que tenía anterior-
mente en la vista Diseño de la consulta.
Algunas consultas no se pueden crear en la cuadrícula de diseño. Para consultas de paso a través, de definición
de datos y de unión, debe crear instrucciones SQL directamente en la vista SQL.
En Access se pueden utilizar instrucciones SQL en muchos lugares, donde se pueda introducir el nombre de una
tabla, consulta o campo. En algunos casos, Access rellena la sentencia SQL. Por ejemplo, cuando utiliza un
asistente para crear un formulario o un informe que toma datos de más de una tabla, Access crea automáticame-
nte la instrucción SQL que utiliza como valor para la propiedad OrigenDelRegistro (RecordSource) del formula-
rio o informe. Cuando se utiliza un asistente para crear un cuadro de lista o un cuadro combinado, Access crea la
instrucción SQL y la utiliza como valor para la propiedad OrigenDeLaFila (RowSource) del cuadro de texto o
combinado. Se pueden utilizar instrucciones SQL en subconsultas en la cuadrícula de diseño de consulta, en el
argumento de la instrucción SQL de la macro RunSQL y en código. La forma más fácil de construir una instruc-
ción SQL es crear una consulta en la cuadrícula de diseño de la consulta, cambiar a vista SQL, y copiar y pegar
la instrucción SQL correspondiente en su código. Ver Consulta Específica SQL.
Ver o modificar la instrucción SQL que está detrás de una consulta existente:
Si está familiarizado con SQL, puede que desee trabajar directamente con la instrucción SQL en la que se basa la
consulta.
1 Cree una consulta o abra una existente.
2 Haga clic en la flecha al lado del botón Ver en la barra de herramientas y haga clic en la vista SQL.
Access presenta la instrucción SQL equivalente a lo creado en la vista Diseño.
3 Si desea hacer cambios, escríbalos en la instrucción SQL.
4 Para ver los cambios en la cuadrícula de diseño, haga clic en la flecha al lado del botón Vista en la barra
de herramientas y haga clic en la vista Diseño.
Generar instrucciones SQL que incluyan variables y controles:
Cuando se trabaja con objetos de acceso a datos (DAO), puede que necesite construir una instrucción SQL en el
código. Por ejemplo, si está creando un nuevo objeto QueryDef, es necesario establecer su propiedad SQL a una
cadena SQL válida. Es muy posible que también necesite una instrucción SQL cuando cree un objeto Recordset.
La forma más fácil de construir una instrucción SQL es crear una consulta en la cuadrícula de diseño de la cons-
ulta, cambiar a vista SQL, y copiar y pegar la instrucción SQL correspondiente en su código.
A menudo una consulta debe estar basada en valores que suministra el usuario o que cambian en situaciones
diferentes. Si éste es el caso, necesitará incluir variables o valores de control en la consulta. El motor de base de
datos Jet procesa todas las instrucciones SQL, pero no las variables o los controles. Por tanto, debe construir su
instrucción SQL de forma que Access determine primero estos valores y luego los concatene en la instrucción
SQL que se pasa al motor de base de datos Jet.
El siguiente ejemplo muestra cómo crear un objeto QueryDef con una simple instrucción SQL. Esta consulta
devuelve todos los pedidos desde una tabla Pedidos que fue colocada después del 31-3-96:
Dim dbs As Database, qdf As QueryDef, cadSQL As String
Set dbs = CurrentDb
cadSQL = “SELECT * FROM Pedidos WHERE FechaPedido >#3-31-96#;”
Set qdf = dbs.CreateQueryDef(“SegundoTrimestre”, cadSQL)
El siguiente ejemplo crea el mismo objeto QueryDef usando un valor almacenado en una variable. Observe el
signo numérico (#) que denota que los valores de la fecha deben ser incluidos en la cadena de forma que sean
concatenados con el valor de la fecha.
Dim dbs As Database, qdf As QueryDef, cadSQL As String
Dim dteStart As Date
dteStart = #3-31-96#
Set dbs = CurrentDb
cadSQL = “SELECT * FROM Pedidos WHERE FechaPedido” _
& “> #” & fechaComienzo & “#;”
Set qdf = dbs.CreateQueryDef(“SegundoTrimestre”, cadSQL)

GUIA ACCESS
El siguiente ejemplo crea un objeto QueryDef usando un valor en un control llamado FechaPedido en un formu-
lario Pedidos. Observe que se suministra la referencia completa al control y que se incluye el signo numérico (#)
que denota la fecha dentro de la cadena.
Dim dbs As Database, qdf As QueryDef, cadSQL As String
Set dbs = CurrentDb
cadSQL = “SELECT * FROM Pedidos WHERE FechaPedido” _
& “> #” & Forms!Pedidos!FechaPedido & “#;”
Set qdf = dbs.CreateQueryDef(“SegundoTrimestre”, cadSQL)
Totales.
Alterna entre ocultar y mostrar la fila Total en la cuadrícula de diseño de la consulta en los siguientes tipos de
consulta: selección, tabla de referencias cruzadas, creación de tabla y datos anexados. Se utiliza para agrupar los
datos de la consulta activa o realizar cálculos acumulativos, como promedios y cuentas.
Funciones agregadas y otras opciones de la fila Total en diseño de la consulta
Nueve de las 12 opciones en la fila Total de la cuadrícula de diseño de la consulta son funciones agregadas. Tod-
as excepto las funciones Primero y Último se explican en la siguiente tabla. Las otras tres opciones de la lista se
explican en la segunda tabla.
Nota Las funciones agregadas no incluirán registros que contengan valores en blanco (Nulo) en sus cálculos.
Por ejemplo, la función Cuenta (Count) devuelve la suma de todos los registros sin valores Null. Hay una forma
de contar los valores Null y es posible convertir los valores Null a ceros en un cálculo.
Suma Total de los valores de un campo. Número, Fecha/Hora, Moneda y AutoNumérico
Prom Promedio de los valores de un campo. Número, Fecha/Hora, Moneda y AutoNumérico
Mín Menor valor de un campo. Texto, Número, Fecha/Hora, Moneda y AutoNumérico
Máx Mayor valor de un campo. Texto, Número, Fecha/Hora, Moneda y AutoNumérico
Cuenta Número de valores de un campo, sin contar los valores Null (en blanco). Texto, Memo, Número,
Fecha/Hora, Moneda, AutoNumérico, Sí/No y Objeto OLE
DesvEst Desviación estándar de los valores de un campo. Número, Fecha/Hora, Moneda y AutoNumérico
Var Varianza de los valores de un campo. Número, Fecha/Hora, Moneda y AutoNumérico
Las funciones Primero y Ultimo son análogas a los métodos MoveFirst y MoveLast de un objeto Recordset del
DAO. Simplemente devuelven el valor de un campo especificado en el primer o el último registro, respectivam-
ente, del conjunto de resultados devuelto por una consulta. Puesto que los registros se devuelven habitualmente
sin un orden concreto (a menos que la consulta incluya una cláusula ORDER BY), los registros devueltos por
estas funciones serán arbitrarios.
Seleccione Para
Agrupar por Definir los grupos para los que desea realizar los cálculos. Por ejemplo, para mostrar las ventas
totales por categoría, seleccione Agrupar por para el campo NombreCategoría.
Expresión Crear un campo calculado que incluya una función agregada en su expresión. Normalmente,
creará un campo calculado cuando desee utilizar múltiples funciones en una expresión.
Donde Especificar los criterios de un campo que no esté utilizando para definir los grupos. Si selecciona esta
opción para un campo, Access ocultará el campo en los resultados de la consulta desactivando la casilla de ver-
ficación Mostrar.
Ejemplos para totalizar por grupos.
S y aparece “Group by” en cada campo en línea Total. Reemplazar “Group by” según se estime con Sum (suma
(el grupo o todos), Avg, Min, Max, Count, StDev (standard deviation), Var (variance), First, Last).
En la fila, todos los campos deben tener “Group by” o un concepto de total.
Ejemplos:
Product ID Unit Price (Total de registros y su precio medio.)
Total: Count Avg

Category ID Product Name (Cuantos por cada grupo.)


Total: Group by Count
Se agrupan varios de izq. a der.

Ship Country Customer ID Order Amount


Total: Group by Group by Sum
(Total de cada cliente por Orden de país.)

Ship Country Customer ID Order ID


Total: Group by Group by Count
Criteria: “Canada” or “UK” >15
(Cantidad de Pedidos por cliente de más de 15 pedidos de Canadá y UK.)

Para seleccionar registros antes de concepto de total, utilizar “Where”:


Ship Country Customer ID Order ID Order Amount
GUIA ACCESS
Total: Group by Group by Count Where
Criteria: >2000 (no show)
(Cantidad de Pedidos por Cliente de más de 2000)

Custmer ID Freight Percentage:Format(Sum([Freight]/Sum([Order Amount],”0%”)


Total: Group by Expression
(Porcentaje de Freight cargado a cada cliente.)

Vendedor: [Apellidos]&”, “&[Nombre] (de tabla Empleados)


Total: Suma([Cantidad]*[PrecioUnidad]) (de tabla Detalle de Pedidos)
FechaPedido (de tabla Pedidos)
Total: Group by Expression Where
Orden: Descendent
Criteria: Entre [Calcular desde fecha:] y [a fecha:]
Ej.: Mejores tres vendedores: En propiedad de la consulta se pone 3 en Valores Superiores
Nombres de tabla: Alterna entre mostrar y ocultar los nombres de las tablas inmediatamente debajo del nombre
del campo en la cuadrícula de diseño. Mostrar los nombres de las tablas ayuda a saber a qué tabla pertenece cada
campo en las consultas sobre varias tablas.
MENU CONSULTA
Ejecutar: Muestra los resultados en la vista Hoja de datos de las consultas de selección y de tabla de referencias
cruzadas, y de las consultas de combinación SQL y de paso que devuelven datos. Cambia, copia o elimina datos
o crea un objeto de base de datos para consultas de acción (creación de tabla, actualización, datos anexados y
eliminación), y para las consultas de definición de datos SQL y consultas de paso SQL. Antes de ejecutar estas
consultas de acción, compruebe en la vista Hoja de datos los registros que serán afectados.
Mostrar tabla: Muestra una o más tablas o consultas que puede agregar a la ventana Relaciones o la consulta
activa en la vista Diseño de consulta.
Quitar tabla: Quita la tabla o consulta seleccionada de la consulta activa. Seleccione la tabla o consulta hacie-
ndo clic en cualquier parte de su lista de campos. Al quitar una tabla o consulta se elimina su contenido de la
cuadrícula de diseño, pero no se elimina de la base de datos activa.
Consulta de selección
Convierte la consulta activa en una consulta de selección, que busca registros en una o mas tablas, a menudo en
base a criterios. La consulta de selección es el tipo de consulta predeterminado. Una consulta de selección es el
tipo de consulta más habitual. Este tipo de consulta obtiene los datos de una o más tablas y muestra los resultad-
os en una hoja de datos en la que puede actualizar los registros (con algunas restricciones). También puede utili-
zar una consulta de selección para agrupar los registros y calcular sumas, cuentas, promedios y otros tipos de
totales.
¿Qué es una consulta de selección y cuándo se usa?
Una consulta de selección es el tipo de consulta más habitual. Este tipo de consulta obtiene los datos de una o
más tablas y muestra los resultados en una hoja de datos en la que puede actualizar los registros (con algunas
restricciones). También puede utilizar una consulta de selección para agrupar los registros y calcular sumas,
cuentas, promedios y otros tipos de totales.
Crear una consulta de selección sin un asistente
1 En la ventana Base de datos, haga clic en la ficha Consultas y, a continuación, haga clic en Nuevo.
2 En el cuadro de diálogo Nueva consulta, haga clic en Vista Diseño y, a continuación, elija Aceptar.
3 En el cuadro de diálogo Mostrar tabla, haga clic en la ficha que enumera los objetos con cuyos datos
desea trabajar.
4 Haga doble clic en el nombre de cada objeto que desea agregar a la consulta y, a continuación, haga clic
en Cerrar.
5 Si tiene varias tablas o consultas en la consulta, asegúrese de que están conectadas entre sí mediante una
línea de combinación, de modo que Access sepa cómo está relacionada la información. Si no están conectadas,
cree usted mismo la línea de combinación.
Si las tablas o consultas están combinadas, puede cambiar el tipo de combinación para que afecte a qué registros
selecciona la consulta.
6 Agregue campos a la consulta arrastrando los nombres de los campos desde la lista de campos hasta la
cuadrícula de diseño.
7 Mejore la consulta; para ello, introduzca criterios, agregue un orden, cree campos calculados, calcule la
suma, el promedio, la cuenta u otro tipo de total con los datos recuperados o modifique de otro modo el diseño
de la consulta.
8 Para guardar la consulta, haga clic en Guardar en la barra de herramientas. Escriba un nombre que
siga las reglas para nombrar objetos de Access y elija Aceptar.
9 Para ver el resultado de la consulta, haga clic en Ver en la barra de herramientas.

GUIA ACCESS
Crear una consulta de selección sencilla mediante un asistente
El Asistente para consultas sencillas crea consultas que recuperan datos de los campos especificados en una o
más tablas o consultas. Si lo desea, el asistente también puede sumar, contar y obtener el promedio de los valores
de grupos de registros o de todos los registros y puede calcular el valor mínimo o máximo de un campo. No
obstante, no es posible limitar los registros recuperados mediante el establecimiento de criterios.
1 En la ventana Base de datos, haga clic en la ficha Consultas y, a continuación, haga clic en Nuevo.
2 En el cuadro de diálogo Nueva consulta, haga clic en Asistente para consultas sencillas.
3 Elija Aceptar.
4 Haga clic en el nombre de la tabla o consulta en la que desea basar la consulta y, a continuación, selec-
cione los campos cuyos datos desea recuperar.
5 Haga clic en una tabla o consulta adicional si lo desea y, a continuación, seleccione los campos que
desea utilizar de ella. Repita este paso hasta que disponga de todos los campos que necesite.
6 Siga las instrucciones de los cuadros de diálogo del asistente. En el último cuadro de diálogo, puede
seleccionar si desea ejecutar la consulta o ver la estructura de la consulta en la vista Diseño.
Si la consulta resultante no es exactamente como deseaba, puede volver a ejecutar el asistente o cambiar la cons-
ulta en la vista Diseño.
Consulta de tabla de referencias cruzadas
Convierte la consulta activa en una consulta de tabla de referencias cruzadas, que totaliza los datos en formato de
hoja de cálculo utilizando como columnas los valores de un campo o expresión. Por ejemplo, para mostrar las
ventas totales mensuales de cada empleado, presente los meses del año como columnas y los vendedores como
filas. Una consulta de tabla de referencias cruzadas muestra valores resumidos (sumas, cuentas y promedios) de
un campo de una tabla y los agrupa según un conjunto de hechos enumerados en el lado izquierdo de la hoja de
datos y otro conjunto de hechos enumerados en la parte superior de la hoja de datos, con sus valores en el cruce
de ambos. .
Por ejemplo, para no repetir el mismo vendedor para cada concepto de venta. El vendedor se agruparía en las
filas y los conceptos de venta en columnas.
Sugerencia: Puede mostrar datos de una tabla de referencias cruzadas sin crear una consulta independiente en la
base de datos mediante el Asistente para tablas dinámicas. Con una tabla dinámica, puede cambiar los encabeza-
dos de fila y columna según desee para analizar los datos de distintos modos. En la barra de herramientas, haga
clic en la flecha que se encuentra junto al botón Nuevo objeto y haga clic en Formulario. En el cuadro de diálogo
Nuevo formulario, haga clic en Asistente para tablas dinámicas.
Notas: Debe tener al menos un Row Heading y sólo un Column Heading y sólo un Value.
En Query Properties se puede indicar orden de columnas entres ;s Ej.:
Company Name Expr.1:Format ([Order Date],”Mmm”) Order ID Order Date
Total: Group by Group by Count Where
Crsstab: Row Heading Column Heading Value
Criteria: *-*-96 (no show)
En .Query Prop. Especificar “Fixed” y poner Ene;Feb;etc. (si no, los saca alfabético)
(Cantidad de Pedidos por Cliente cada mes durante el año 1996.)
Crear una consulta de tabla de referencias cruzadas sin usar un asistente
1 En la ventana Base de datos, haga clic en la ficha Consultas y, después, haga clic en Nueva.
2 En el cuadro de diálogo Nueva consulta, haga clic en Vista diseño y, después, haga clic en Aceptar.
3 En el cuadro de diálogo Mostrar tabla, haga clic en la ficha que relaciona las tablas o consultas con
cuyos datos desea trabajar.
4 Haga doble clic en el nombre de cada objeto que desee agregar a la consulta y, después, haga clic en
Cerrar.
5 Agregue campos a la fila Campos en la cuadrícula de diseño y especifique los criterios.
6 En la barra de herramientas, haga clic en Tipo de consulta y después haga clic en Consulta de tabla de
referencias cruzadas.
7 Para el campo o los campos cuyos valores desea que aparezcan como filas, haga clic en la fila Tab ref
cruz y, después, haga clic en Encabezado de fila.
Tiene que mantener el Agrupar por predeterminado en la fila Total de esos campos.
8 Para el campo cuyos valores desee que aparezcan como encabezados de columnas, haga clic en la fila
Tab ref cruz y, después, haga clic en Encabezado de columna. Puede elegir Encabezado de columna para un solo
campo y debe mantener Agrupar por en la fila Total de ese campo.
De forma predeterminada, los encabezados de columnas se presentan en orden alfabético o numérico. Si desea
que aparezcan en un orden diferente o si desea limitar las columnas que muestren encabezados, establezca la
propiedad EncabezadosDeColumna (ColumnHeadings) de la consulta.
9 En el campo cuyos valores desee utilizar en la tabla de referencia cruzada, haga clic en la fila Tab ref
cruz y, después, haga clic en Valor.
Sólo un campo puede establecerse a Valor.
10 En la fila Total de este campo, haga clic en el tipo de función agregada que desea para la referencia
cruzada (como Suma, Promedio o Cuenta).
GUIA ACCESS
11 Para especificar criterios que limiten los encabezados de filas antes de que se realice el cálculo, escriba
una expresión en la fila Criterios de un campo con Encabezado de fila en la celda Tab ref cruz. Esto permite, por
ejemplo, presentar los totales de ventas de productos de ciertas categorías, como carne y pescado.
Para especificar criterios que limiten los registros antes de que se agrupen los encabezados de fila y antes de que
se realicen las referencias cruzadas, agregue el campo para el que desee establecer criterios en la cuadrícula de
diseño, haga clic en Dónde en la celda Total, deje en blanco la celda Tab ref cruz y escriba una expresión en la
fila Criterios. (Los resultados de la consulta no presentarán campos que contengan Dónde en la fila Total.)
12 Para ver los resultados de la consulta, haga clic en el botón Vista de la barra de herramientas.
Para detener la consulta después de haberla iniciado, presione CTRL+PAUSA
Notas:· La consulta Pedidos trimestrales por producto de la base de datos de ejemplo Neptuno es un ejemplo de
consulta de tabla de referencias cruzadas. Para ver esta consulta, abra la base de datos Neptuno en la subcarpeta
Ejemplos de la carpeta del programa Office. En la ventana Base de datos, haga clic en la ficha Consultas, haga
clic en Pedidos trimestrales por producto y, después, haga clic en Diseño.
· Si incluye un campo en la cuadrícula de diseño de la consulta pero hace clic en la opción (Sin mostrar)
en la celda Tab ref cruz y establece Agrupar por en la celda Total, Access agrupará según la misma como Enc-
bezado de fila, pero no presentará la fila en los resultados de la consulta.
· Los valores del campo Encabezado de columna puede incluir caracteres que no están permitidos en los
nombres de campos, como decimales. En tal caso, Access los reemplaza por el carácter de subrayado en la hoja
de datos.
Crear una consulta de tabla de referencias cruzadas mediante un asistente
1 En la ventana Base de datos, haga clic en la ficha Consultas y, a continuación, haga clic en Nuevo.
2 En el cuadro de diálogo Nueva consulta, haga clic en Asistente para consultas de tablas de referencias
cruzadas.
3 Elija Aceptar.
4 Siga las instrucciones de los cuadros de diálogo del asistente. En el último cuadro de diálogo, puede
seleccionar si desea ejecutar la consulta o si desea ver la estructura de la consulta en la vista Diseño.
Si la consulta resultante no es exactamente como desea, puede volver a ejecutar el asistente o cambiar la consulta
en la vista Diseño.
Sugerencia: Puede mostrar los datos de una tabla de referencias cruzadas sin necesidad de crear una consulta
independiente en la base de datos mediante el Asistente para tablas dinámicas. Con una tabla dinámica, puede
cambiar los encabezados de fila y de columna según desee para analizar los datos de distintos modos.
Ordenar o limitar los encabezados de columnas presentados en una consulta de referencias cruzadas
En los encabezados de columna que contienen, por ejemplo, los meses del año, puede mostrar los meses de for-
ma cronológica, en lugar de alfabéticamente, y también puede mostrar columnas de Enero a Junio.
1 Diseñe la consulta de tabla de referencias cruzadas con o sin ayuda del asistente.
2 Muestre la consulta en la vista Diseño
3 Haga clic en el fondo de la vista Diseño de la consulta, fuera de la cuadrícula de diseño y de la lista de
campos.
4 En la barra de herramientas, haga clic en Propiedades para presentar la hoja de propiedades de la cons-
ulta.
5 En el cuadro de la propiedad EncabezadosDeColumna (ColumnHeadings), escriba los encabezados de
las columnas que desee mostrar, en el orden en que desea que aparezcan. Entre los encabezados de columnas,
escriba una coma (,) o el separador de listas de su país. (Para determinar cuál es el separador de listas de su país,
haga doble clic en Configuración regional del Panel de control de Windows.)
Los encabezados de columnas que escriba tienen que coincidir exactamente con los encabezados de columna de
la hoja de datos de la consulta. Por ejemplo, si un encabezado de columna en la hoja de datos es “USA”, debe
escribir el encabezado de columna como “USA y no como “US”. (Después de presionar ENTRAR o mover el
puntero o otra ubicación, Access coloca comillas alrededor de cada encabezado.)
6 Para ver los resultados de la consulta, haga clic en el botón Vista de la barra de herramientas.
Notas:· Si ejecuta con mucha frecuencia una consulta de tabla de referencias cruzadas o si la usa como base
para un formulario o informe, puede acelerar la consulta si utiliza el procedimiento anterior para especificar
encabezados de columna fijos.· Si usa con frecuencia los mismos encabezados de columna en diferentes
consultas, considere la posibilidad de crear un campo de texto para almacenar los encabezados de columna. Abra
entonces la tabla y copie los encabezados al cuadro de la propiedad EncabezadosDeColumna (ColumnHeading-
s), según los necesite.

Ejemplo de Consulta de Referencias Cruzadas: Pedidos Trimestrales por Artículo e Importe Anual.

GUIA ACCESS
Diseño:

Campo completo: AÑO: Año([FECHA PEDIDO])


" " Expr1: "TRIM " & ParcFecha("Q";[FECHA PEDIDO];1)
" " TOTAL IMPORTE: Suma([Unidades]*[Precio Venta]*(1-[DESCUENTO]))
En Propiedades del campo TOTAL IMPORTE en Formato: Estándar y Lugares decimales: 0.

Para obtener estos datos, pero sólo totalizado por Secciones:

Diseño:

Tabla "Unidades Trimestrales" en realidad es la Consulta anterior por Artículos.


Ver Propiedades del campo TOTAL IMPORTE en la imagen.
En campos TRIM1, etc., en sus Propiedades de campo, Título: 1er TRIMESTRE. etc.

Consultas de acción.
Es una consulta que realiza cambios a muchos registros en una sola operación. Existen cuatro tipos de consultas
de acción: de eliminación, de actualización, de datos anexados y de creación de tabla. Es conveniente realizar

GUIA ACCESS
primero una consulta de Selección y convertirla después de verificarla en una de Acción desde en menú
Consulta en vista de Diseño.
Consulta de creación de tabla
Convierte la consulta activa en una consulta de creación de tabla, que crea una nueva tabla en la base de datos
activa o en otra base de datos. Dado que el comando copia datos, compruebe los resultados en la vista Hoja de
datos antes de ejecutarlo.
Crea una tabla nueva a partir de todos o de parte de los datos de una o más tablas. Las consultas de creación de
tabla son útiles para:
· Crear una tabla para exportar a otras bases de datos de Access. Por ejemplo, es posible que desee crear
una tabla que contenga varios campos de la tabla Empleados y, a continuación, exportar esa tabla a una base de
datos utilizada por el departamento de personal.
· Crear informes que muestren datos de un determinado momento en el tiempo. Por ejemplo, supongamos
que el 15-May-96 desea imprimir un informe que muestre los totales de ventas del primer trimestre según los
datos contenidos en las tablas base a las 9:00 A.M. del día 1-Abr-96. Un informe basado en una consulta o una
instrucción SQL extrae los datos más actualizados de las tablas (los datos correspondientes al 15-May-96), en
lugar de los registros de una fecha y hora específicas. Para conservar los datos tal como estaban exactamente a
las 9:00 A.M. del 1-Abr-96, cree una consulta de creación de tabla en ese momento del tiempo para recuperar los
registros necesarios y almacenarlos en una tabla nueva. A continuación, utilice esta tabla, en lugar de una consu-
lta, como base de los informes.
· Realizar una copia de seguridad de una tabla.
· Crear una tabla histórica que contenga registros antiguos. Por ejemplo, puede crear una tabla que alm-
cene todos los pedidos antiguos antes de eliminarlos de la tabla Pedidos actual.
· Mejorar el rendimiento de los formularios e informes basados en consultas de tablas múltiples o en
instrucciones SQL. Por ejemplo, supongamos que desea imprimir varios informes basados en una consulta de
cinco tablas que incluya totales. Puede acelerar el proceso creando primero una consulta de creación de tabla que
recupere los registros que necesite y los almacene en una tabla. A continuación puede basar los informes en esta
tabla o especificar la tabla en una instrucción SQL como el origen de los registros para un formulario o informe,
de modo que no tenga que volver a ejecutar la consulta para cada informe. No obstante, los datos de la tabla
quedan congelados en el momento en que se ejecuta la consulta de creación de tabla.
Ejemplo:
Make Table Query. En Design. Query Menu (Make Table). En Prod.: Name for new table: Old Orders.
Orders.* Order ID
Criteria: <10050 (no show)
Consulta de actualización
Convierte la consulta activa en una consulta de actualización, que actualiza un grupo de registros, por ejemplo
incrementar los salarios en un 5%. Dado que este comando cambia datos, compruebe los resultados en la vista
Hoja de datos antes de ejecutarlo.
Realiza cambios globales a un grupo de registros de una o más tablas. Por ejemplo, puede aumentar los precios
un 10 por ciento para todos los productos lácteos o bien puede aumentar los sueldos un 5 por ciento al personal
de una determinada categoría. Con una consulta de actualización, puede cambiar los datos de las tablas existent-
es.
Ejemplo:
Update. En Design. Query Menu (Update). Para sin criterio y mismos campos: Edit (Replace) en Datasheet.
Product Name Category ID Unit Price
Update to: {Unit Price]*1.1 (+10%)
Criteria: “DAIR”
Consulta de datos anexados
Convierte la consulta activa en una consulta de datos anexados, que agrega el resultado de la consulta al final de
la tabla en la base de datos activa o en otra base de datos. Dado que el comando copia datos, compruebe los
resultados en la vista Hoja de datos antes de ejecutarlo.
Agrega un grupo de registros de una o más tablas al final de una o más tablas. Por ejemplo, supongamos que
consigue nuevos clientes y tiene una base de datos que contiene una tabla con información acerca de estos cli-
ntes. Para evitar tener que escribir toda esta información, desea anexarla a la tabla Clientes. Las consultas de
datos anexados también son útiles para:
· Anexar campos basados en criterios. Por ejemplo, es posible que desee anexar sólo los nombres y las
direcciones de los clientes con pedidos de un tamaño considerable.
· Anexar registros cuando algunos de los campos de una tabla no existe en la otra tabla. Por ejemplo, en
la base de datos de ejemplo Neptuno, la tabla Clientes tiene 11 campos. Supongamos que desea anexar registros
de otra tabla que tienen campos que coinciden con 9 de los 11 campos de la tabla Clientes. Una consulta de datos
anexados anexará los datos de los campos coincidentes e ignorará el resto.
En Design. Query Menu (Append). Arrastrar campos con el *, o escoger si necesario. No arrastrar Counter Field
para cálculo automático de registros.

GUIA ACCESS
Puede utilizar Copiar y Pegar para anexar registros sin Criterios y mismos campos.
Consulta de eliminación
Convierte la consulta activa en una consulta de eliminación, que elimina un grupo de registros, por ejemplo,
todos los pedidos de 1997 después de haberlos anexado a la Tabla de Pedidos Históricos.. Dado que este coman-
do cambia datos, compruebe los resultados en la vista Hoja de datos antes de ejecutarlo.
Elimina un grupo de registros de una o más tablas. Por ejemplo, puede utilizar una consulta de eliminación para
quitar productos que ya no se fabrican o de los que no hay pedidos. Con las consultas de eliminación, siempre se
eliminan registros enteros, no sólo campos seleccionados dentro de los registros.
Ejemplo:
Delete. En Design. Query Menu (Delete)
Orders.* Order ID
Delete: From Where
Criteria: <10050 (no show)
Consulta Específica de SQL.
Consulta de Unión:
Muestra la ventana SQL y convierte la consulta activa en una consulta de unión. Una consulta de unión combina
campos de dos o más tablas o consultas unos tras otros en lugar de lado a lado.
La siguiente consulta de unión selecciona todos los nombres de compañías de Brasil de ambas tablas, Proveedor-
es y Clientes, y los ordena alfabéticamente por ciudad:
SELECT [NombreCompañía], [Ciudad]
FROM [Proveedores]
WHERE País=”Brasil”
UNION SELECT [NombreCompañía], [Ciudad]
FROM [Clientes]
WHERE País=”Brasil”
ORDER BY [Ciudad];
La siguiente consulta de unión cambia el nombre el campo NombreCompañía por “Nombre del proveedor-
/cliente” en la salida de la consulta:
SELECT [NombreCompañía] AS [Proveedor/Nombre cliente], [Ciudad]
FROM [Proveedores]
UNION SELECT [NombreCompañía] AS [Proveedor/Nombre cliente], [Ciudad]
FROM [Clientes];
La siguiente consulta de unión utiliza la instrucción UNION ALL para extraer todos los registros, incluyendo los
registros duplicados:
SELECT [NombreCompañía], [Ciudad]
FROM [Proveedores]
UNION ALL SELECT [NombreCompañía], [Ciudad]
FROM [Clientes];
Paso a través
Muestra la ventana SQL y convierte la consulta activa en una consulta de paso, en la que se envía una consulta
SQL a un servidor de bases de datos (tal como SQL Server). Para obtener detalles acerca de la sintaxis de la
consulta SQL, consulte la documentación del servidor de bases de datos.
Definición de datos
Muestra la ventana SQL y convierte la consulta activa en una consulta de definición de datos, lo que crea o mo-
difica tablas en la base de datos activa.
Consulta de Parámetros
Establece los parámetros y los tipos de datos para una consulta que solicita información (como por ejemplo, un
criterio) cuando se ejecuta. Por ejemplo, puede solicitar el nombre de un vendedor y un intervalo de fechas para
obtener resultados variables con la misma consulta.
Es una consulta que, cuando se ejecuta, muestra su propio cuadro de diálogo que solicita información, como por
ejemplo criterios para recuperar registros o un valor que desea insertar en un campo. Puede diseñar la consulta
para que solicite más de un dato; por ejemplo, puede diseñarla para que solicite dos fechas. Access puede enton-
ces recuperar todos los registros que quedan entre esas dos fechas.
Las consultas de parámetros también son útiles cuando se emplean como base para los formularios e informes, al
solicitar igualmente los parámetros. Por ejemplo, puede crear un informe de ingresos mensuales basado en una
consulta de parámetros. Al imprimir el informe, Access muestra un cuadro de diálogo que solicita el mes sobre
el que se desea el informe. Cuando se introduce un mes, Access imprime el informe apropiado.
También puede crear un formulario o un cuadro de diálogo personalizado que solicite los parámetros de una
consulta, en lugar de utilizar el cuadro de diálogo de la consulta de parámetros.
En la celda Criterios, para cada campo que desee utilizar como parámetro, escriba el texto a solicitar entre corch-
etes. Access mostrará este texto cuando se ejecute la consulta. El texto de la solicitud debe ser diferente del
nombre del campo, aunque puede incluir el nombre del campo.

GUIA ACCESS
Para un campo que muestra la fecha, puede mostrar el texto “Introduzca la fecha inicial:” y el texto “Introduzca
la fecha final:” para especificar un intervalo de valores. En la celda Criterio del campo, escriba Between [Intro-
duzca la fecha inicial:] And [Introduzca la fecha final:].
El Diálogo del Menú sirve para poner los criterios por orden y definir el tipo de datos a entrar (opcionales).
Ejemplo:
Parameter Query. Query Menu (Parameters). Ej. (Puede hacerse en cualquier Select Query).
Category ID Product Name Order ID Order Date
Total: Group by Group by Count Where
Criteria: [Enter a Category ID:] Between [Enter beginning date:] and [Enter ending date:] (No show)
En Query Menu (Parameters) entrar (poner en orden): Enter a Category ID:
Enter beginning date:
Enter ending date:
(Cantidad de cada producto de una categoría solicitada vendidos entre fechas solicitadas)
Otros: Like [Enter the first few letters followed by *]
Forms![Which Customer]![Text]
Expresiones:
Las expresiones son un componente fundamental de numerosas operaciones en Access. Una expresión es una
combinación de símbolos (identificadores, operadores y valores) que produce un resultado. Por ejemplo, puede
utilizar la expresión siguiente en un control de un formulario o de un informe para mostrar la suma de los valores
de los controles Subtotal y Transporte:
= [Subtotal] + [Transporte]
Éstos son algunos ejemplos de operaciones comunes en las que se utilizan expresiones:
· Establecer una propiedad que define un control calculado, establecer una regla de validación o establec-
er un valor predeterminado de un campo.
· Introducir una expresión de criterio, crear un campo calculado o actualizar los registros de una consulta
o filtro.
· Establecer una condición para realizar una acción o serie de acciones de una macro, o especificar arg-
mentos para varias acciones.
· Especificar argumentos para funciones, instrucciones y métodos de procedimientos de Visual Basic para
aplicaciones.
· Editar una consulta SQL en la vista SQL de la ventana Consulta o utilizar una instrucción SQL como
valor de una propiedad o como argumento.
Dónde introducir expresiones en consultas y filtros
Puede utilizar expresiones (en la cuadrícula de diseño de una consulta o en la ventana Filtro u orden avanzado,
en una instrucción SQL de la vista SQL de una consulta o en la ventana Filtro por formulario) para especificar
criterios que identifiquen los registros con los que desea trabajar. En las consultas, también puede utilizar expre-
siones para actualizar los valores de un grupo de registros o para crear campos calculados.
En la cuadrícula de diseño, la expresión debe introducirse en lugares diferentes dependiendo de la operación que
se desee realizar (la tabla siguiente muestra dónde pueden introducirse expresiones). Después de introducir una
expresión en la cuadrícula de diseño y de presionar la tecla ENTRAR, Microsoft Access muestra la expresión
utilizando la sintaxis que comprende este programa. Si no incluye un operador con la expresión, Microsoft Acce-
ss asume que debe utilizarse el operador =. Por ejemplo, si escribe Dinamarca como criterio en un campo País,
Microsoft Access muestra "Dinamarca" e interpreta la expresión como País="Dinamarca". Si incluye referencias
a nombres de campos en la expresión, los campos deben estar incluidos en una de las tablas agregadas a la cons-
ulta (a no ser que esté utilizando la función DBúsq (DLookup) o una subconsulta). No obstante, no es posible
arrastrar los campos a la expresión de la cuadrícula de diseño.
Para hacer esto Escriba la expresión en
Especificar criterios para una consulta de selección, de tabla de referencias cruzadas o de acción, o bien para un
filtro avanzado Una celda Criterios de la cuadrícula de diseño de una consulta o filtro avanzado.
Crear un campo calculado Una celda Campo de la cuadrícula de diseño de una consulta o filtro avanz-
ado.
Actualizar registros según los resultados de la expresión (sólo consultas de actualización) Una celda Actualizar
a de la cuadrícula de diseño de una consulta de actualización.
Especificar los registros con los que desea trabajar, cómo se agrupan, los criterios para las agrupaciones o cómo
se ordenan los registros Una instrucción SQL en la vista SQL.
Especificar los criterios cuando se utiliza Filtro por formulario Un campo de la ventana Filtro por for-
mulario de una expresión personalizada. También puede seleccionar una expresión de la lista del cam-
po.
Nota Puede ver cómo Microsoft Access evalúa las expresiones de las consultas cambiando a la vista SQL de
una consulta para mostrar sus instrucciones SQL base. Para mostrar una consulta en la vista SQL, haga clic en la
flecha situada junto al botón Vista en la barra de herramientas y, a continuación, haga clic en Vista SQL. Si su
consulta incluye tablas vinculadas, los valores que especifique en el criterio de los campos de las tablas vincula
das pueden distinguir mayúsculas de mínúsculas (los valores deben coincidir con los de la tabla base).
GUIA ACCESS
Crear una expresión con el Generador de expresiones:
Puede iniciar el Generador de expresiones en una celda Campo o Criterios de la vista Diseño de la consulta, en la
columna Condición de la ventana Macro o en la ventana Módulo.
1 Haga clic con el botón secundario en el lugar donde desee insertar la expresión.
2 En el menú contextual, haga clic en Generar.
Nota: Si la celda o la columna Condición donde se inicia el Generador de expresiones ya contiene un valor, éste
se copiará automáticamente en el cuadro de la expresión. Para copiar texto de la ventana Módulo en el Gener-
ador de expresiones, selecciónelo antes de iniciar el Generador.
Iniciar el Generador de expresiones en una hoja de propiedades o en la ventana Macro:
1 Haga clic en el cuadro de la propiedad o del argumento que vaya a contener la expresión.
2 Haga clic en el botón Generar situado junto al cuadro de la propiedad o argumento.
Si una propiedad tiene asociado más de un generador, Microsoft Access mostrará el cuadro de diálogo Elegir
generador. Haga clic en Generador de expresiones y luego en Aceptar.
Nota Si el cuadro de la propiedad o argumento en el que se inicia el Generador de expresiones ya contiene un
valor, éste se copiará automáticamente en el cuadro de expresión.
Operaciones:
1 En el cuadro inferior izquierdo del Generador de expresiones, haga clic o doble clic en la carpeta que
contenga el elemento deseado.
2 En el cuadro inferior intermedio, haga doble clic en un elemento para pegarlo en el cuadro de la expre-
sión, o bien haga clic en una categoría de elementos.
3 Si ha seleccionado una categoría en el cuadro inferior intermedio, aparecerán valores en el cuadro inf-
erior derecho. Haga doble clic en uno de ellos para pegarlo en el cuadro de la expresión.
Sugerencia: También puede escribir cualquier parte de la expresión directamente en el cuadro de la expresión.
4 Pegue los operadores que desee en la expresión situando el punto de inserción en el lugar del cuadro de
la expresión donde desee colocar el operador y haciendo clic en uno de los botones de operadores que se encue-
ntran en el centro del Generador.
5 Cuando la expresión esté terminada, haga clic en Aceptar.
Access copiará la expresión en el lugar donde se inició el Generador de expresiones. Si ya existía un valor, o si
se inició el Generador en la ventana Módulo teniendo texto seleccionado, la nueva expresión reemplazará al
valor local texto existente.
Expresiones de texto:
En(“Canadá”, “Reino Unido”) Utiliza el operador En (In) para mostrar los pedidos enviados a Canadá o al
Reino Unido.
Negado “EE.UU.” Utiliza el operador Negado (Not) para mostrar los pedidos enviados a países distintos
de EE.UU.
Como “S*” Muestra los pedidos enviados a los clientes cuyo nombre empieza por S.
>=”N” Muestra los pedidos enviados a compañías cuyo nombre comienza por las letras N a Z.
Der([IdPedido], 2)=”99” Utiliza la función Der (Right) para mostrar los pedidos con valores de
IdPedido que terminan en 99.
Longitud([NombreCompañía])>Val(30) Utiliza las funciones Longitud (Len) y Val (Val) para mostrar los
pedidos de las compañías cuyo nombre tiene más de 30 caracteres.
Como “*Importaciones” Pedidos enviados a los clientes cuyos nombres terminan por la palabra “Importacione-
s”.
Como “[A-D]*” Pedidos enviados a los clientes cuyos nombres empiezan de la A a la D.
Como “*ar*” Pedidos enviados a los clientes cuyos nombres incluyen la secuencia de letras “ar”.
Como “Casa Dewe?” Pedidos enviados al cliente con “Casa” como primera parte del nombre y un segundo
nombre de 5 letras, de las cuales las cuatro primeras son “Dewe” y la última se desconoce.
AA105 =Right([Part ID],3) da 105
Left/Right(stringexp,n): AA105 =Left([Part ID],2) da AA
Como “Sm?th”/”L*ng” (Long y Lever Engineering)/”*th”/”*on*”/”*-*-96”
Negado “Sevilla” (distinto a Sevilla)
Operador de Concatenación.
&. También el signo + , pero debe evitarse por ambigüedad.
Expresiones de fecha:
Entre 15-3-96 y 30-3-96 (inclusive).
No es necesario “s en textos ni #s en fechas. También 16/3/97.
Entre Fecha( ) Y AgregFecha(“m”, 3, Fecha( )) Utiliza el operador Entre...Y (Between…And) y las funci-
ones AgregFecha (DateAdd) y Fecha (Date) para mostrar pedidos cuya fecha requerida está entre el día de hoy y
dentro de tres meses.
< Fecha( )- 30 Utiliza la función Fecha (Date) para mostrar los pedidos con una antigüedad de más de 30 días.
Año([FechaPedido])=1996 Utiliza la función Año (Year) para mostrar los pedidos con fechas de entrega
en 1996.

GUIA ACCESS
ParcFecha(“q”, [FechaPedido])=4 Utiliza la función ParcFecha (DatePart) para mostrar los pedidos del cuarto
trimestre.
SerieFecha(Año([FechaPedido]),Mes([FechaPedido])+1, 1)-1 Utiliza las funciones SerieFecha (DateSerial), Año
(Year) y Mes (Month) para mostrar los pedidos del último día de cada mes.
Año([FechaPedido])=Año(Ahora()) Y Mes([FechaPedido])=Mes(Ahora()) Utiliza las funciones Año (Year)
y Mes (Month) y el operador Y (And) para mostrar los pedidos del año y el mes actual.Expresiones de
campo vacío:
Es Nulo:Muestra los pedidos de los clientes cuyo campo RegiónEnvío es Nulo (está en blanco).
No es Nulo: Muestra los pedidos de los clientes cuyo campo RegiónEnvío contiene un valor.
Fax ““ Muestra los pedidos de los clientes que no tienen una máquina de fax, lo que se indica media-
nte un valor de cadena de longitud cero en el campo Fax en lugar de un valor Nulo (en blanco).
#2/2/95# Muestra los pedidos enviados el 2-Feb-95.
DatePart(DatePart, date) =DatePart(“w”,[Holiday] da 4 (miérc, inglés)
=DatePart(“ww”,[Holiday] da 50 (semana del año). “yyyy” da 1997. “q” da 1,2,3,4 (trimestre) “m” da 1 a 12.
Between Date() and Date()-5 (desde hace 5 días a hoy)
Between Date() and Date()-90 = Between Date() and DateAdd((“m”,-3,Date())
Expresiones aritméticas:
CargaPrincipal: [Carga] * 1.1 Muestra en el campo CargaPrincipal los gastos de la carga más un 10 por
ciento.
CantidadPedido: [Cantidad] * [PrecioUnitario] Muestra en el campo CantidadPedido el producto de los
valores de los campos Cantidad y PrecioUnitario.
PlazoEntrega: [FechaRequerida] – [FechaEnvío] Muestra en el campo PlazoEntrega la diferencia entre los
valores de los campos FechaRequerida y FechaEnvío.
StockTotal: [UnidadesEnStock]+[UnidadesEnPedido] Muestra en el campo StockTotal la suma de los
valores de los campos UnidadesEnStock y UnidadesEnPedido.
PorcentajeCarga: Suma([Carga])/Suma([Subtotal]) *100 Muestra en el campo PorcentajeCarga el porce-
ntaje de los gastos de carga de cada subtotal, mediante la división de la suma de los valores del campo
Carga por la suma de los valores del campo Subtotal (este ejemplo utiliza la función Suma (Sum)).La f-
ila Total de la cuadrícula de diseño debe estar mostrada en pantalla y la celda Total de este campo debe
establecerse a Expresión. Si la propiedad Formato (Format) del campo está establecida a Porcentaje, no
incluya *100.
Nota: Cuando se utiliza un operador aritmético (+, -, *, /) en una expresión y el valor de uno de los campos de
la expresión es Nulo, el resultado de la expresión completa es Nulo. Si varios registros de uno de los c-
ampos utilizados en la expresión pudieran tener un valor Nulo, es posible convertir el valor Nulo a cero
mediante la función Nz; por ejemplo: Nz([UnidadesEnStock])+Nz([UnidadesEnPedido])
Tax cada artículo: =[Unit Price]*0.08 (8%) Total: =Sum([Unit Price]*0.08)
Extended Price: =[Quantity]*[Unit Price]*(100-[Discount])/100 (Para Discount de 0 a 100 de %)
Invoice Sub-total: =Sum((CLng([Quantity]*[Unit Price]*(1-[Discount])*100/100) (Para Discount de 0 a 1
de %) CLng redondea a entero.
Invoice total: =[Invoice Subtotal]+[Freight]
Otros Operadores Aritméticos:
\ Divide y devuelve un entero.
^ Eleva un número a la potencia del exponente.
Mod Divide un número por otro y devuelve el resto.
Otro Operador de Comparación: <> No igual, diferente a.
Campo calculado
Campo definido en una consulta que presenta el resultado de una expresión en lugar de datos almacenados. El
valor se vuelve a calcular cada vez que cambia algún valor en la expresión. Un control calculado es un control en
un formulario o informe que presenta el resultado de una expresión en lugar de datos almacenados.
Un cálculo personalizado le permite llevar a cabo en cada registro cálculos numéricos, de fechas y de texto utili-
zando los datos de uno o más campos. Por ejemplo, con un cálculo personalizado puede multiplicar los valores
de un campo por una determinada cantidad, encontrar la diferencia entre dos fechas almacenadas en distintos
campos, combinar varios valores de un campo Texto o crear subconsultas. Mediante las opciones de la fila Total
en la cuadrícula de diseño, es posible llevar a cabo el cálculo en grupos de registros y calcular sumas, promedios,
cuentas u otro tipo de totales en el campo calculado.
En el caso de cálculos personalizados, necesita crear un nuevo campo calculado directamente en la cuadrícula de
diseño. Para crear un campo calculado, escriba una expresión en una celda en blanco Campo en la cuadrícula de
diseño de la consulta. Ej.: Total Producto: [Unidades]*[Precio].
No obstante, no es necesario mostrar los resultados de un cálculo en un campo. En su lugar, es posible utilizarlos
como criterios para determinar los registros que debe seleccionar la consulta o para determinar sobre qué regis-
tros se debe llevar a cabo la acción.
Varias:
= [País] En (“Francia”, “Italia”, “España”) Y Longitud([CódigoPostal])<>5
GUIA ACCESS
“Londres” O “Hedge End” Utiliza el operador O (Or) para mostrar los pedidos enviados a Londres o a Hedge
End.
Entre #5-Ene-95# Y #10-Ene-95# Utiliza el operador Entre...Y (Between…And) para mostrar los pedidos env-
iados no antes del 5-Ene-95 ni después del 10-Ene-95.
=Date() =Page IIF(expr,truepart,falsepart)
IIF([Region] Is Null, “|[City]| |[Postal Code]|”,”|[City]| |[Region]| |[Postal Code]|”) Las barras verticales indican
que se trata de nombre de campo cuando está entre comillas (Text String). El IIF evita que aparezcan tr-
es espacios cuando no hay Region.
Creating a calculated field in the Query is a good idea for use in Reports several times.
% of Employee total: =[Sale Amount]/[Employee Total] Format: Percent.
Para Check Box (Ej.: Shipped Late ÷) =[Shipped Date]>[Required Date]
Si.Verdadero.Yes.True.On.-1 / No.Falso.False.Off.0
Los órdenes de campos van de izq. a der. según su orden.
Para imprimir registros determinados, seleccionar.
Se puede escribir Y u O dentro de mismo campo: >=1-1-95 Y <=1-7-95 / “Germany” O “Canada”.
Para O entre diferentes campos, utilizar el O de la consulta: Ej.: >=”N” “UK”
OR: >=”N” “París”
(Que sea “N a Z” y país “UK” o ciudad “París”)
Campo con valor: No es nulo/Es negado nulo (Not Null / Is Not Null).
Sin valor: Nulo/Es nulo (Null / Is Null)
Para campos [ ]: [Quantity]+10
>Forms![Students]![Age] : Tipo-objeto!Objeto!Campo
Between Forms![Notes]![First Date] and Forms![Notes]![Last Date]
Count(): para contar registros.
[Unit Price ]*[Quantity] [First Name]&” “&[Last Name]
Dar nombre a campo calculado, ponerlo antes del cálculo y después dos puntos:
Total Price: [Quantity]*[Unit Price]
New Price: Ccur([Unit price]*1.25) (Más el 25%)
Expresiones para Validación de campos:
<>0 Introduzca un valor distinto de cero.
0 O >100 El valor debe ser 0 o mayor que 100.
Como “K???” El valor debe constar de cuatro caracteres y comenzar por la letra K.
<#1/1/96# La fecha debe ser anterior a 1996.
>=#1/1/97# Y <#1/1/98# La fecha debe pertenecer al año 1997.
Expresiones para Condiciones de Macro:
[Ciudad]=”Paris” Paris es el valor de Ciudad en el campo en el formulario desde el cual se ejecutó la macro.
Dcont(“[IdPedido]”, “Pedidos”)>35 Hay más de 35 entradas en el campo IdPedido de la tabla Pedidos.
Dcont(“*”, “Detalles de pedidos”, “[IdPedido]=Forms![Pedidos]![IdPedido]”)>3 Hay más de tres entra-
das en la tabla Detalles de pedidos para los cuales el campo IdPedido de la tabla coincide con el campo
IdPedido del formulario Pedidos.
[FechaEnvío] Entre #2-Feb-1995# y #2-Mar-1995# El valor del campo FechaEnvío del formulario desde el cual
se ejecuta la macro no es anterior al 2-Feb-1995 y no es posterior al 2-Mar-1995.
Forms![Productos]![UnidadesEnStock]<5 El valor del campo UnidadesEnStock del formulario Productos es
menor que cinco.
EsNulo([Nombre]) El valor Nombre del formulario desde el que se ejecuta la macro es Nulo(no tiene
valor). Esta expresión es equivalente a [Nombre] Es Nulo.
[País]=”UK” Y Forms![Ventas Totales]![TotalPedidos]>100 El valor en el campo País del formulario desde el
que se ejecuta la macro es UK, y el valor del campo TotalPedidos del formulario Ventas Totales es ma-
yor que 100.
[País] En (“Francia”, “Italia”, “España”) y Len([CódigoPostal])<>5 El valor en el campo País del formulario
desde el cual se ejecuta la macro es Francia, Italia, o España, y el código postal no es de 5 caracteres de
longitud.
CuadroMsj(“¿Confirmar cambios?”,1)=1 Haga clic en Aceptar en el cuadro de diálogo que presenta la función
CuadroMsj. Si hace clic en Cancelar en el cuadro de diálogo, Access ignora la acción.
Sugerencia Para hacer que Access ignore temporalmente una acción, introduzca Falso como condición. Ignorar
temporalmente una acción puede ser de utilidad cuando esté tratando de encontrar problemas en una macro.
Expresiones SQL como criterio:
Se pueden copiar de la Vista SQL de una consulta, cancelándola después.
PrecioUnitario (SELECT [PrecioUnitario] FROM [Productos] WHERE [NombreProducto] = “Sirope de reg-
liz”) Productos cuyo precio es el mismo que el del Sirope de regaliz.
PrecioUnitario >(SELECT AVG([PrecioUnitario]) FROM [Productos])
Productos que tienen un precio unitario por encima de la media.

GUIA ACCESS
Salario > ALL (SELECT [Salario] FROM [Empleados] WHERE ([Cargo] LIKE “*Director*”) OR ([Cargo]
LIKE “*Vicepresidente*”)) Salario de cada comercial cuyo salario es mayor que el de los emp-
eados con el cargo “Director” o “Vicepresidente”.
Expresiones en formularios e informes:
Nota: En un control calculado, preceda cada expresión con un signo igual (=). Cuando establezca la propiedad
Nombre de un control calculado, asegúrese de que utiliza un nombre único. No utilice el nombre de uno
de los controles que utilizó en la expresión.
=”N/A” Presenta N/A.
=[Nombre] & “ “ & [Apellidos] Presenta el valor de los controles de Nombre y Apellido separados por un
espacio.
=Izquierda([NombreProducto], 1) Utiliza la función Izquierda para presentar el primer carácter del valor del
control NombreProducto.
=Derecha([CódigoActivo], 2) Utiliza la función Derecha para presentar los dos últimos caracteres del valor
del control CódigoActivo.
=Recortar([Dirección]) Utiliza la función Recortar para presentar el valor del control Dirección, borrando
cualquier espacio delantero o trasero.
=Silnm(EsNulo([Región]), [Ciudad] & “ “ & [CódPostal], [Ciudad] & “ “ & [Región] & “ “ & [CódPostal])
Utiliza la función SiInm para presentar el valor de los controles Ciudad y CódPostal si Región es Nulo;
en caso contrario, presenta el valor de los controles Ciudad, Región y CódPostal, separados por espacios.
[Página] Resultado: 1, 2, 3
=”Página “ & [Página] Página 1, Página 2, Página 3
=”Página “ & [Página] & “ de “ & [Páginas] Página 1 de 3, Página 2 de 3, Página 3 de 3
=[Página] & “ de “ & [Páginas] & “ Páginas” 1 de 3 Páginas, 2 de 3 Páginas, 3 de 3 Páginas
=[Página] & “/”& [Páginas] & “ Páginas” 1/3 Páginas, 2/3 Páginas, 3/3 Páginas
=[País] & “ – “ & [Página] UK – 1, UK – 2, UK – 3
=Formato([Página], “000”) 001, 002, 003
=[TotalEmpleado]/[TotalPaís] El cociente de los valores de los controles TotalEmpleado y TotalPaís
=Form![Pedidos]![IdPedido] El valor del control IdPedido en el formulario Pedidos.
=Form![Pedidos]![Subformulario Pedidos]![SubtotalPedido] El valor del control SubtotalPedido en el
subformulario Pedidos del formulario Pedidos.
=Forms![Pedidos]![Subformulario Pedidos]![IdProducto].Column(2) El valor de la tercera columna en
IdProducto, un cuadro de lista de columnas múltiples en el subformulario Pedidos del formulario Pedid-
os. (0 hace referencia a la primera columna, 1 a la segunda, y así sucesivamente.)
=Forms![Pedidos]![Subformulario Pedidos]![Precio]*1.06 El producto del valor del control Precio del subfo-
rmulario Pedidos del formulario Pedidos por 1,06 (agrega el 6 por ciento al valor del control Precio).
=Principal![IdPedido] El valor del control IdPedido en el formulario principal del subformulario actual.
=Reports![Factura]![IdPedido] El valor del control IdPedido en el informe Factura.
=Reports![Resumen]![Subinforme Resumen]![Total Ventas] El valor del control TotalVentas en el
subinforme Resumen del informe Resumen.
=Principal![IdPedido] El valor del control IdPedido en el formulario principal del subinforme actual.
=Promedio([Cargo]) Utiliza la función Promedio (Avg) para presentar la media de los valores del control
Cargo.
=Cuenta([IdPedido]) Utiliza la función Cuenta (Count) para presentar el número de registros en el control
IdPedido.
=Suma([Ventas]) Utiliza la función Suma (Sum) para presentar la suma de los valores del control Ventas.
=Suma([Cantidad]*[Precio]) Utiliza la función Suma (Sum)para presentar la suma del producto de los
valores de los controles Cantidad y Precio.
=[Ventas]/Suma([Ventas])*100 Presenta el porcentaje de las ventas, determinado dividiendo el valor del
control Ventas por la suma de todos los valores del control Ventas.Nota Si la propiedad Formato (Fo-
rmat) del control está establecida a Porcentaje, no incluya el *100.
=Formato(Ahora(), “ss”) Utiliza la función Formato (Format) para presentar el número de la semana del año
que representa la fecha actual, donde ss es 1 a 53.
=ParcFecha(“yyyy”, [FechaPedido]) Utiliza la función ParcFecha (DatePart) para presentar los cuatro
dígitos del año del valor del control FechaPedido.
=SumFecha(“a”, -10, [FechaPrometida]) Utiliza la función SumFecha (DateDif) para presentar una fecha que
sea 10 días antes del valor del control FechaPrometida.
=DifFecha(“d”, [FechaOrden], [FechaEnviado]) Utiliza la función DifFecha para presentar el número de
días de diferencia entre los valores de los controles FechaOrden y FechaEnviado.
=SiInm([Confirmado] = “Sí”, “Pedido confirmado”, “Pedido no confirmado”) Utiliza la función SiInm
(Iif) para presentar el mensaje “Pedido confirmado” si el valor del control Confirmado es Sí; en caso c-
ontrario, presenta el mensaje “Pedido no confirmado.”
SiInm es la misma función IIF

GUIA ACCESS
=SiInm(EsNulo([País]), “ “, [País]) Utiliza la función SiInm para presentar una cadena en blanco si el
valor del control País es Nulo; en caso contrario, presenta el valor del control País.
=SiInm(EsNulo([Región]), [Ciudad] & “ “ & [CódPostal], [Ciudad] & “ “ & [Región] & “ “ & [CódPostal])
Utiliza la función SiInm para presentar los valores de los controles Ciudad y CódPostal si Re-
gión es Nulo; en caso contrario, presenta el valor de los controles Ciudad, Región y CódPostal-
.=SiInm(EsNulo([FechaRequerida] – [FechaEnviado]), “Compruebe una fecha perdida “, [FechaReque-
rida] – [FechaEnviado]) Utiliza la función SiInm para presentar el mensaje “Compruebe una fecha pe-
rdida” si el resultado de restar FechaEnviado de FechaRequerida es Nulo; en caso contrario, presenta la
diferencia entre los controles de FechaRequerida y FechaEnviado.
Ejemplos para realizar operaciones aritméticas en formularios e informes:
La siguiente tabla lista ejemplos de expresiones que puede utilizar en los controles calculados de los formularios
e informes.
Si utiliza esta expresión Access presenta
=[Subtotal]+[Cargo] La suma de los valores de los controles Subtotal y Cargo.
=[FechaRequerida]-[FechaEnviado] La diferencia entre los valores de los controles FechaRequerida y
FechaEnviado.
=[Precio]*1.06 El producto del valor del control Precio y 1.06 (incrementa un 6 por ciento al valor de Precio).
=[Cantidad]*[Precio] El producto de los valores de los controles Cantidad y Precio.
=[TotalEmpleado]/[TotalPaís] El cociente de los valores de los controles TotalEmpleado y TotalPaís
Nota: En un control calculado, preceda cada expresión con un signo igual (=).
· Cuando establezca la propiedad Nombre de un control calculado, asegúrese de que utiliza un nombre
único. No utilice el nombre de uno de los controles que utilizó en la expresión.
· Cuando utilice un operador aritmético (+, -, *, /) en una expresión y el valor de uno de los controles en
la expresión sea Nulo, el resultado de la expresión completa será Nulo. Si algunos registros en uno de los contr-
oles que utilizó en la expresión pudiera tener un valor Nulo, puede convertir el valor Nulo a cero utilizando la
función Nz; por ejemplo: =Nz([Subtotal])+Nz([Carga])
Calcular el total de un control calculado de un formulario o informe
Cuando calcule un total con una función agregada como Suma (Sum) o una función agregada de dominio como
Dsuma (DSum), no puede utilizar el nombre de un control calculado en la función Suma (Sum). Debe repetir la
expresión del control calculado. Por ejemplo:
=Suma([Cantidad]*[PrecioUnitario])
Sin embargo, si tiene un campo calculado en una consulta base, por ejemplo,
=PrecioExtendido: [Cantidad]*[PrecioUnitario]
puede utilizar el nombre de ese campo en la función Suma (Sum), como se muestra aquí:
=Suma([PrecioExtendido])
Funciones en Expresiones.
Funciones de Agregado de Dominio comunes:
DAvg El promedio de valores.
DCount En número de registros.
DFirst Valor de campo en primer registro.
DLast Valor de campo en último registro.
DLookup El valor de un campo.
DMin Valor mínino.
DMax Valor máximo.
DSum La suma de valores.
Ejemplos para utilizar funciones agregadas de dominio en formularios e informes
La siguiente tabla lista ejemplos de expresiones que puede utilizar en los controles calculados de los formularios
e informes.
Expresión Descripción
=Dbúsq("[NombreContacto]", "[Proveedores]", "[IdProveedor] = Forms![IdProveedor]") Utiliza la fun-
ción Dbúsq (DLookup) para presentar el valor del campo NombreContacto en la tabla Proveedores donde el
valor del campo IdProveedor de la tabla se corresponde con el valor del control IdProveedor en el formulario
activo.
=Dbúsq("[NombreContacto]", "[ Proveedores]", "[IdProveedor] = Forms![Nuevos Proveedores]![IdProveedor]")
Utiliza la función Dbúsq (DLookup) para presentar el valor del campo NombreContacto en la tabla
Proveedores donde el valor del campo IdProveedor de la tabla se corresponde con el valor del control IdProvee-
dor en el formulario Nuevos Proveedores.
=DSuma("[CantidadPedido]", "[Pedidos]", "[IdCliente] = 'RATTC'") Utiliza la función Dsuma (DSum) para
presentar la suma total de los valores del campo CantidadPedido en la tabla Pedidos donde el IdCliente es RAT-
TC.
Notas
· En un control calculado, preceda cada expresión con un signo igual (=).

GUIA ACCESS
· Cuando establezca la propiedad Nombre de un control calculado, asegúrese de que utiliza un nombre
único. No utilice el nombre de uno de los controles que utilizó en la expresión.
· No puede utilizar el nombre de un control en una expresión que utilice una función agregada de dom-
inio; debe utilizar sólo nombres de campos de una tabla, consulta o instrucción SQL.
Funciones de Agregado SQL Comunes.
Utilizar en consultas y controles calculados en formularios e impresos, pero no en macros o módulos.
Avg El promedio de valores de n campo.
Count El número de registros.
First Valor de campo del primer registro en consulta, formulario o informe.
Last Valor de campo del último registro en consulta, formulario o informe.
Min El valor mínimo en un campo.
Max El valor máximo en un campo.
Sum La suma de valores en un campo.
Ejemplos para utilizar funciones agregadas en formularios e informes
La siguiente tabla lista ejemplos de expresiones que puede utilizar en los controles calculados de los formularios
e informes.
Expresión Descripción
=Promedio([Cargo]) Utiliza la función Promedio (Avg) para presentar la media de los valores del control
Cargo.
=Cuenta([IdPedido]) Utiliza la función Cuenta (Count) para presentar el número de registros en el control
IdPedido.
=Suma([Ventas]) Utiliza la función Suma (Sum) para presentar la suma de los valores del control Ventas.
=Suma([Cantidad]*[Precio]) Utiliza la función Suma (Sum)para presentar la suma del producto de los
valores de los controles Cantidad y Precio.
=[Ventas]/Suma([Ventas])*100 Presenta el porcentaje de las ventas, determinado dividiendo el valor del
control Ventas por la suma de todos los valores del control Ventas.Nota Si la propiedad Formato (Format) del
control está establecida a Porcentaje, no incluya el *100.
Notas
· En un control calculado, preceda cada expresión con un signo igual (=).
· Cuando establezca la propiedad Nombre de un control calculado, asegúrese de que utiliza un nombre
único. No utilice el nombre de uno de los controles que utilizó en la expresión.
· No puede utilizar el nombre de un control en una expresión que utilice una función agregada; debe
utilizar sólo nombres de campos de una tabla, consulta o instrucción SQL.
Algunas Funciones Generales:
Choose Un valor en una lista de argumentos
La función Elegir (Choose) puede utilizarse para crear un control calculado cuyo valor es dete-
rminado por el valor de un campo de una tabla en su base de datos. Por ejemplo, suponga que
tiene una tabla Transportistas que contiene un campo llamado IdTransportista. Puede crear un
control calculado en un formulario para un nombre del transportista basado en el valor del Id
del transportista.
=Choose([IdTransportista], "La veloz", "Transa", "Federal")
Date La Fecha actual del sistema. =Date()
DateAdd Fecha a la que se añade un intervalo de tiempo
DateAdd(interval, number, date)
El argumento interval tiene los siguientes valores:
Valor Descripción
yyyy Año
q Trimestre
m Mes
y Día del año
d Día
w Día de la semana
ww Semana
h Hora
n Minuto
s Segundo
La función DateAdd no devuelve nunca una fecha no válida. En el ejemplo siguiente se agrega
un mes al 31 de enero: DateAdd("m", 1, "31-ene-95"). Devuelve 28-2-95.
DateDiff Número de dias ( u otro intervalo de tiempo) entre dos fechas.
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
Parte Descripción
interval Requerido. Expresión de tipo cadena con el intervalo de tiempo utilizado para calcular
la diferencia entre date1 y date2. (Ver DateAdd)
GUIA ACCESS
date1, date2 Se requiere; Variant (Date). Las dos fechas que se van a utilizar en el cálculo.
firstdayofweek Opcional. Constante que especifica el primer día de la semana. Si no se espe-
cifica, se asume que es el domingo:. Sunday 1 Domingo (predeterminado), Monday 2 Lunes
firstweekofyear Opcional. Constante, que especifica la primera semana del año. Si no se esp-
ecifica, se asume que es aquélla en la que se encuentre el 1 de enero. VbFirstJan1 1
Empieza con la semana en la que se encuentra el 1 de enero (predeterminado).
FirstFourDays 2 Empieza con la primera semana que tenga al menos cuatro días en el
nuevo año. FirstFullWeek 3 Empieza con la primera semana que esté completamente in-
cluída en el nuevo año.
Días desde hoy: DateDiff("d", Date(), “17-ago-2000”)
DatePart Un parte específica de una fecha
DatePart(interval, date[,firstdayofweek[, firstweekofyear]])
Trimestre: DatePart("q", “27-jun-98”)
Day Número del día del mes.
MiFecha = #12 febrero 1969# ' Asigna una fecha.
MiDía = Day(MiFecha) ' MiDía contiene 12.
Format Un número, fecha, hora o hilera de texto formateada.
Format(expresión[, formato[, primerdíadesemana[, primerdíadeaño]]])
Formato:
Números Utilice formatos numéricos con nombre predefinidos o cree formatos numér-
icos definidos por el usuario.
Fechas y horas Utilice formatos de fecha/hora con nombre predefinidos o cree formatos de f-
echa/hora definidos por el usuario.
Números seriales de fecha y hora Utilice formatos de fecha y hora o formatos numéricos.
Cadenas Cree sus propios formatos de cadena definidos por el usuario.
MiCadena = Format(Time, "Long Time") Devuelve la fecha actual del sistema en el formato l-
argo de fecha definido por el sistema.
MiCadena = Format(Date, "Long Date")
MiCadena = Format(MiHora, "h:m:s") ' Devuelve "17:4:23".
MiCadena = Format(MiHora, "hh:mm:ss AMPM") ' Devuelve "05:04:23 PM".
MiCadena = Format(MiFecha, "dddd, d mmm aaaa")' Devuelve "Miércoles,
' 27 de Ene de 1993".
' Si no se suministra el formato, devuelve una cadena.
MiCadena = Format(23) ' Devuelve "23".
' Formatos definidos por el usuario.
MiCadena = Format(5459.4, "##,##0.00") ' Devuelve "5.459,40".
MiCadena = Format(334.9, "###0.00") ' Devuelve "334,90".
MiCadena = Format(5, "0.00%") ' Devuelve "500,00%".
MiCadena = Format("HOLA", "<") ' Devuelve "hola".
MiCadena = Format("Esto es", ">") ' Devuelve "ESTO ES".
IIF (SiInm) Uno de dos argumentos dependiendo del resultado de una expresión.
IIf(expr, truepart, falsepart)
IIf(Prueba > 1000, "Grande", "Pequeño")
IsNull Un valor que indica si una expresión contiene el valor especial Null.
MiVar = ""
MiPrueba = IsNull(MiVar) ' Devuelve False.
MiVar = Null
MiPrueba = IsNull(MiVar) ' Devuelve True.
Left Un número específico de caracteres más a la izquierda de una hilera de texto.
UnaCadena = "Hola Mundo" ' Define la cadena.
MiCadena = Left(UnaCadena, 1) ' Devuelve "H".
MiCadena = Left(UnaCadena, 6) ' Devuelve "Hola M".
MiCadena = Left(UnaCadena, 10) ' Devuelve "Hola Mundo".
Right Un número específico de caracteres más a la derecha de una hilera de texto.
UnaCadena = "Hola Mundo" ' Define una cadena.
MiCadena = Right(UnaCadena, 1) ' Devuelve "o".
MiCadena = Right(UnaCadena, 6) ' Devuelve "Mundo".
MiCadena = Right(UnaCadena, 20) ' ' Devuelve "Hola Mundo".
Propiedades de Consulta
Propiedad Títulos de columna (ColumnHeadings)
La propiedad Títulos de columna (ColumnHeadings) se puede utilizar para especificar el orden o para limitar el
número de columnas que aparecen en una consulta de tabla de referencias cruzadas. Por ejemplo, en una consulta

GUIA ACCESS
que muestra nombres de países, quizás desee mostrarlos en un orden específico, como primero Estados Unidos,
segundo Canadá y tercero el Reino Unido.
Valores:
Los valores de los datos del campo Encabezado de columna de la consulta de tabla de referencias cruzadas se
introducen como una expresión de cadena en el orden en que se desea presentar los encabezados en la hoja de
datos para la consulta de tabla de referencias cruzadas, separados por una coma (o el separador de lista estableci-
do en el cuadro de diálogo Propiedades de Configuración regional del Panel de control de Windows). La tabla
siguiente muestra algunos ejemplos de valores de la propiedad Títulos de columna (ColumnHeadings) y el res-
ltado en la hoja de datos de la consulta de tabla de referencias cruzadas.
Valor Resultado
“Trimestre 1”, “Trimestre 2”, “Trimestre 3”, “Trimestre 4” Muestra encabezados de columnas para cada trim-
estre.
“México”, “Canadá”, “USA” Muestra encabezados de columnas para cada país.
Esta propiedad se puede establecer utilizando la hoja de propiedades de la consulta. También se puede establecer
en la vista SQL de la ventana Consulta o en Visual Basic utilizando una cláusula PIVOT en la instrucción SQL.
Nota Los encabezados de columna que se especifiquen para la propiedad Títulos de columna (ColumnHeading-
s) tienen que coincidir exactamente con los valores de los datos del campo Encabezado de columna de la cuadr-
ícula de diseño de consulta. De lo contrario, los datos no aparecerán en las columnas.
Comentarios:
La propiedad Títulos de columna (ColumnHeadings) se utiliza para obtener más control sobre la apariencia de
los encabezados de columna en una consulta de tabla de referencias cruzadas. De forma predeterminada, Access
muestra todos los valores de los datos de encabezados de columna en orden ascendente. Por ejemplo, si el nom-
re del campo Encabezado de columna es Mes, los encabezados de columna predeterminados que se muestran
serán Abril, Agosto, Diciembre, Febrero, etc. La propiedad Títulos de columna (ColumnHeadings) se puede
utilizar para mostrar los datos en el orden correcto con los valores apropiados: “Enero”, “Febrero”, “Marzo”, etc.
Si se incluye un encabezado de columna en el valor de la propiedad Títulos de columna (ColumnHeadings), la
columna siempre aparece en la vista Hoja de datos de la consulta aunque no contenga ningún dato. Esto es útil
para los informes basados en una consulta de tabla de referencias cruzadas, por ejemplo cuando siempre se desea
mostrar los mismos encabezados de columna en el informe.
Sugerencia: La propiedad Títulos de columna (ColumnHeadings) se puede utilizar para aumentar la velocidad
de algunas consultas de tablas de referencias cruzadas limitando el número de columnas que aparecen.
Propiedad Permisos de ejecución
La propiedad Permisos de ejecución se puede utilizar en un entorno multiusuario con un grupo de trabajo prote-
gido para que no tengan efecto los permisos de usuario existentes. Esto permite ver una consulta o ejecutar una
consulta de datos anexados, de eliminación, de creación de tabla o actualización para las que no se tendría per-
miso de ejecución de otra forma. Por ejemplo, como usuario se puede tener permiso de sólo lectura para consu-
ltas, mientras el propietario de las consultas tiene permiso de lectura/escritura. Si el propietario establece la pro-
iedad Permisos de ejecución para especificar los permisos de propietario, se puede ejecutar una consulta de datos
anexados para agregar registros a una tabla.
Valores:
La propiedad Permisos de ejecución puede tener los valores siguientes.
Valor Descripción
Del propietario Todos los usuarios tienen permisos de propietario para ver o ejecutar la consulta.
Del usuario (Predeterminado) Los usuarios sólo tienen sus propios permisos para ver o ejecutar la consulta.
Esta propiedad se puede establecer utilizando la hoja de propiedades de la consulta.
También se puede establecer la propiedad Permisos de ejecución en la vista SQL de la ventana Consulta utili-
zando la declaración WITH OWNERACCESS OPTION en una instrucción SQL.
Propiedad BloqueosDelRegistro (RecordLocks)
Puede usar la propiedad BloqueosDelRegistro (RecordLocks) para determinar cómo se bloquean los registros y
qué sucede cuando dos usuarios intentan editar el mismo registro a la vez. Cuando edita un registro, Access
puede bloquear automáticamente ese registro para evitar que otros usuarios lo cambien antes de que usted haya
finalizado.
· Formularios. Especifica cómo se bloquean los registros en la tabla o consulta base cuando se actualizan
datos en una base de datos multiusuario.
· Informes. Especifica si los registros de la tabla o consulta base se bloquean o no mientras se hace la
vista preliminar o se imprime un informe.
· Consultas. Especifica si los registros de una consulta (normalmente una consulta de acciones en una
base de datos multiusuario) se bloquean o no mientras se ejecuta la consulta.
Valores:
Los valores de la propiedad BloqueosDelRegistro (RecordLocks) son las siguientes.
Valor Descripción Visual Basic
Sin bloquear (Predeterminado ) En los formularios, dos o más usuarios pueden editar simultáneamente el
mismo registro. Esto se llama también bloqueo “optimista”. Si dos usuarios intentan guardar cambios en el mis-
GUIA ACCESS
mo registro, Access muestra un mensaje al usuario que intenta guardar el registro en segundo lugar. Este usuario
puede entonces descartar el registro, copiar el registro al Portapapeles, o reemplazar los cambios hechos por el
otro usuario. Este valor se usa típicamente en formularios de sólo lectura o en bases de datos de usuario único.
También se usa en bases de datos multiusuario para permitir que más de un usuario sea capaz de hacer cambios
en el mismo registro al mismo tiempo.En informes, los registros no se bloquean cuando se hace la vista prelimi-
nar o se imprime el informe.En consultas, los registros no se bloquean cuando se ejecuta la consulta. 0
Todos los registros Todos los registros en la tabla o consulta base se bloquean mientras el formulario está
abierto en la vista Formulario o la vista Hoja de datos, mientras se hace vista preliminar o se imprime el informe,
o mientras se ejecuta la consulta. Aunque los usuarios pueden leer los registros, ninguno de ellos puede editar,
agregar o eliminar ningún registro hasta que se cierre el formulario, se finalice la impresión del informe, o haya
finalizado la ejecución de la consulta 1
Registro editado (Sólo formularios y consultas) Una página de registros se bloquea en cuanto cualquier
usuario comienza a editar cualquier campo en el registro y permanece bloqueada hasta que el usuario se mueve a
otro registro. Consecuentemente, un registro sólo puede ser editado a la vez por una persona. Esto también se
llama bloqueo “pesimista”.2
Puede establecer esta propiedad usando la hoja de propiedades del formulario, una macro, o Visual Basic.
Comentarios:
Puede usar el valor Sin bloquear para formularios si sólo una persona usa las tablas o consultas bases o hace
todos los cambios a los datos.
En una base de datos multiusuario, puede usar el valor Sin Bloquear si desea usar bloqueo optimista y advertir a
los usuarios que intenten editar el mismo registro en un formulario. Puede usar el valor Registro editado si desea
evitar que dos o más usuarios editen datos al mismo tiempo.
Puede usar el valor Todos los registros cuando necesite asegurarse de que no se hacen cambios a los datos des-
ués de que comience la vista preliminar o la impresión de un informe o la ejecución de una consulta de datos
anexados, de eliminación, de creación de tabla, o de actualización.
En la vista Formulario o la vista Hoja de datos, cada registro bloqueado tiene un indicador de bloqueo en su
selector de registro.
Sugerencia: Para cambiar el valor predeterminado de la propiedad BloqueosDelRegistro (RecordLocks) para
los formularios, elija Opciones del menú Herramientas. Haga clic en la ficha Avanzadas en el cuadro de diálogo
Opciones y seleccione la opción deseada bajo Bloqueo predeterminado de registros.
Los datos en un formulario, informe o consulta de una base de datos Conectividad Abierta de Bases de Datos
(ODBC) se tratan como si se hubiese elegido el valor Sin bloquear independientemente del valor de la propiedad
BloqueosDelRegistro (RecordLocks).
Propiedad TipoRecordset (RecordsetType)
Puede utilizar la propiedad TipoRecordset (RecordsetType) para especificar el tipo de recordset que se hace
disponible para un formulario. Por ejemplo si no desea que se puedan modificar los datos de controles dependie-
ntes cuando un formulario está en la vista Formulario o en la vista Hoja de datos, puede establecer la propiedad
TipoRecordset (RecordsetType) a Snapshot.
Valores:
La propiedad TipoRecordset (RecordsetType) usa los siguientes valores.
Valor Descripción Visual Basic
Dynaset (Predeterminado) Puede editar controles dependientes basados en una tabla o en varias tablas con
relaciones uno-a-uno. En controles vinculados a campos basados en tablas con relaciones de uno a vari-
os, no puede editar datos del campo combinación del lado “uno” de la relación, a menos que esté activ-
ada la actualización en cascada entre las tablas (Relaciones) 0
Dynaset (Actualizaciones no coherentes) Se pueden editar todas las tablas y los controles vinculados a sus
campos. 1
Snapshot Imposible editar las tablas o sus controles dependientes. 2
Puede establecer esta propiedad usando la hoja de propiedades del objeto, una macro, o Visual Basic.
Comentarios:
Puede crear formularios basados en varias tablas bases con campos vinculados a los controles del formulario.
Dependiendo del valor de la propiedad TipoRecordset (RecordsetType), podrá limitar qué control dependiente se
puede editar.
Además de la edición del control proporcionada por la propiedad TipoRecordset (RecordsetType), cada control
del formulario tiene una propiedad Bloqueado (Locked) que puede utilizar para especificar si el control y los
datos subyacentes se pueden editar. Si la propiedad Bloqueado (Locked) se establece a Sí, no se podrán editar los
datos.
Valores únicos.
Impedir que se muestren los registros duplicados en los resultados de la consulta
Access considera un registro como único en tanto el valor de cualquier campo de un registro es diferente del
valor del mismo campo en otro registro. En una consulta, no tiene necesariamente que mostrar todos los campos
que componen los registros de las tablas o consultas base. Por lo tanto, si el campo que distingue a un registro de
otro no está en la cuadrícula de diseño de la consulta, el resultado de la consulta puede incluir registros duplicad-
GUIA ACCESS
os. Por ejemplo, si agrega el campo Apellido y el campo País a la cuadrícula de diseño de la consulta, podría
parecer que tiene registros duplicados cuando varios empleados tengan el mismo apellido y vivan en el mismo
país. Sin embargo, los registros no están duplicados en la tabla base, debido a que IdEmpleado es único para
cada registro.
Puede mostrar registros únicos en base a todos los campos de la tabla o consulta base, y no sólo teniendo en
cuenta los campos de la cuadrícula de diseño de la consulta o puede mostrar registros únicos teniendo en cuenta
sólo los campos de la cuadrícula de diseño de la consulta. Con estas configuraciones, si hay duplicados, la cons-
ulta muestra una ocurrencia del registro pero no los duplicados.
Impedir registros duplicados en una consulta basada en campos de la tabla base
1 Abra una consulta en la vista Diseño.
2 Seleccione la consulta haciendo clic en cualquier parte de la vista Diseño de la consulta excepto en la
cuadrícula de diseño y en las listas de campos.
3 Haga clic en Propiedades en la barra de herramientas para mostrar la hoja de propiedades de la consu-
lta.
4 Establezca la propiedad RegistrosÚnicos como Sí.
Notas
· La propiedad RegistrosÚnicos sólo tiene efecto cuando utiliza más de una tabla en la consulta y selec-
cione campos de las tablas.
· Cuando la propiedad RegistrosÚnicos está establecida como Sí, Access establece automáticamente la
propiedad ValoresÚnicos como No.
· Como alternativa a configurar la propiedad RegistrosÚnicos, puede agregar a la cuadrícula de diseño el
campo que diferencia a un registro de otro.
Impedir registros duplicados en una consulta basada en campos de la cuadrícula de diseño
1 Abra una consulta en la vista Diseño.
2 Seleccione la consulta haciendo clic en cualquier parte de la vista Diseño de la consulta excepto en la
cuadrícula de diseño y en las listas de campos.
3 Haga clic en Propiedades en la barra de herramientas para mostrar la hoja de propiedades de la consu-
lta.
4 Establezca la propiedad ValoresÚnicos como Sí.
Si el resultado de la consulta incluye más de un campo, la combinación de valores de todos los campos debe ser
única para un registro dado a incluir en el resultado.
5 Para ver el resultado de la consulta, haga clic en Ver en la barra de herramientas.
Nota Cuando la propiedad ValoresÚnicos está establecida como Sí, Access establece automáticamente la pro-
iedad RegistrosÚnicos como No.
Campos en blanco en consultas.
Cuando un campo no contiene ningún valor, contiene un valor Null o, para campos de tipo Texto, Memo o Hip-
ervínculo, un valor Null o una cadena de longitud cero. Si existen valores Null en un campo, puede afectar a los
resultados de la consulta. A continuación se indican algunas pautas que debe seguir para trabajar con las consu-
ltas con valores Null y cadenas de longitud cero.
Combinar campos que contienen valores Null
Al combinar tablas en una consulta, el resultado incluirá únicamente los registros que no contengan valores Null
en los campos coincidentes. Por ejemplo, para ver una lista de Proveedores y Clientes que viven en la misma
región, cree una consulta que incluya las tablas Proveedores y Clientes, y las tablas se combinarán por el campo
Región. Cuando vea los resultados, sólo verá los valores de los registros que contengan un valor en el campo
Región de ambas tablas.
Buscar valores Null o cadenas de longitud cero
Si utiliza una consulta para buscar valores Null o cadenas de longitud cero, escriba Es Nulo en la celda Criterios
para buscar los valores Null, o escriba dos signos de dobles comillas(“ “) en la celda Criterios para buscar caden-
as de longitud cero (no escriba ningún espacio en blanco dentro de las comillas).
Entender cómo los valores Null afectan a los cálculos numéricos
Si está utilizando una función agregada para calcular la suma, promedio, cuenta o cualquier otra cantidad sobre
los valores de un campo, los registros de ese campo que tengan valores Null no se incluirán en el cálculo. Esto es
verdad tanto si calcula la función agregada mediante la fila Total de la cuadrícula de diseño de la consulta, el
Asistente para consultas sencillas o una expresión personalizada. Por ejemplo, si utiliza la función Cuenta (Cou-
nt) para contar el número de valores de un campo, devolverá una suma de todos los registros cuyos valores no
son Null. Si desea encontrar el número total de registros, incluyendo los valores Null, utilice Cuenta (Count) con
el carácter comodín asterisco (*).
Si en una expresión (como [UnidadesEnExistencia]+[UnidadesEnPedido]) utiliza un operador aritmético (como
+, -, *, /), y uno de los campos de la expresión contiene un valor Null, el resultado de toda la expresión será un
valor Null.
Convertir valores Null a cero
Cuando tenga campos que contengan valores Null, es posible crear una expresión que convierta los valores Null
a cero. Puede hacerlo si desea que los registros que contengan valores Null se incluyan en el cálculo agregado o
GUIA ACCESS
si desea evitar que una expresión dé como resultado un valor Null cuando uno de los campos de la expresión
contenga valores Null. Para convertir valores Null a cero, utilice la función Nz. Por ejemplo:
Nz([Subtotal])+Nz([Carga])
Combinar campos Texto que contengan valores Null
Si está utilizando una expresión para combinar dos campos que contienen valores de texto y uno o ambos de los
campos contienen valores Null, utilice el operador & en lugar del operador + para combinar los valores. El ope-
rador & combinará los valores aunque éstos contengan valores Null, mientras que el operador + devolverá un
valor Null si alguno de los dos valores es Null. Por ejemplo:
NombreCompleto: [Apellido] & “ “ & [Nombre]
Ordenar por campos que contengan valores Null y cadenas de longitud cero
Cuando ordena un campo en sentido ascendente, cualquier registro en el que ese campo contiene un valor Null se
muestra primero. Si un campo contiene tanto valores Null como cadenas de longitud cero, los valores Null apa-
ecen primero en el criterio de ordenación, seguidos inmediatamente de las cadenas de longitud cero.
Utilizar el carácter comodín asterisco (*) para devolver valores no Null
Si utiliza una expresión Como “*” al definir los criterios de la consulta para un campo, los resultados de la cons-
ulta incluirán las cadenas de longitud cero de ese campo, pero no los valores Null.

FORMULARIOS
Los formularios muestran cómo obtener el máximo de la vista, introducción y modificación de sus datos en for-
matos en pantalla atractivos y efectivos. Puede usar los formularios para poder introducir, modificar o ver datos
en una tabla o consulta; cuadros de diálogo en los que pide información y luego lleva a cabo una acción basada
en la entrada; y formularios de paneles de control desde los que puede abrir otros formularios e informes en su
base de datos.
Puede crear un formulario usted solo o hacer que Access cree un formulario automáticamente mediante un Asi-
tente para formularios. Un asistente acelera el proceso de creación de un formulario ya que realiza automáticam-
ente todo el trabajo básico. Cuando se utiliza un Asistente para formularios, Access solicita información y crea
un formulario basado en las respuestas. Aunque tenga experiencia en la creación de formularios, puede que des-
ee utilizar un Asistente para formularios para organizar rápidamente todos los controles en el formulario. A con-
tinuación, puede cambiar a la vista Diseño para personalizar el formulario.
La mayor parte de la información de un formulario proviene de un origen de registros base. Otra información del
formulario está almacenada en el diseño del mismo.
El vínculo entre un formulario y su origen de registros se crea usando objetos gráficos denominados controles. El
tipo más común de control que se usa para mostrar datos es un Cuadro de texto.
FORMULARIOS - MENUS DE VISTA FORMULARIO Y HOJA DATOS
Incluídos en Vista Hoja de Datos de Tablas y Consultas.
FORMULARIOS - MENUS DE VISTA DISEÑO.
MENU EDICION
Seleccionar formulario o informe (CTRL+R): Selecciona el formulario o informe completo de forma que
pueda, por ejemplo, ver o modificar sus propiedades. Cuando está visible la Regla, también puede hacer clic en
el selector de formulario o de informe para seleccionar todo el formulario o informe.
MENU VER
Lista de campos: Presenta una lista de los campos contenidos en el origen de registros base del formulario o
informe. Se pueden arrastrar los campos desde la lista para crear controles que se hacen dependientes de manera
automática del origen del registros.
Orden de tabulación: Cambia el orden en el que se mueve el punto de inserción a través de los controles cua-
ndo se usa el tabulador en un formulario.
Código: Presenta el código del formulario o informe seleccionado en la ventana Módulo.
Regla: Muestra u oculta las reglas de la parte superior e izquierda de un formulario o informe en la vista Diseño.
Cuadrícula: Muestra u oculta la cuadrícula. Utilice la cuadrícula para cambiar el tamaño o alinear uniformeme-
nte los controles cuando diseña un formulario o informe.
Cuadro de herramientas: Muestra u oculta el cuadro de herramientas. Utilice el cuadro de herramientas para
crear controles en un formulario o informe.
Encabezado o pie de página o de formulario: Incluye o elimina una sección de encabezado y una sección de
pie de página/formulario. Utilice estas secciones, por ejemplo, para mostrar los títulos, instrucciones o botones
de comando. Estas secciones aparecen en la parte superior e inferior de la ventana Formulario y al principio y al
final de la salida impresa, aunque no aparecen en la vista Hoja de datos.
MENU INSERTAR
Números de página: Inserta una expresión de número de página en un control de tipo cuadro de texto de un
formulario o informe. Puede especificar el formato, la posición, la alineación y si desea que se muestre o no el
número de página en la primera página.

GUIA ACCESS
Fecha y hora: Inserta una expresión de la fecha y hora actuales en un control de tipo cuadro de texto de un for-
mulario o informe. Se puede especificar el formato y si desea que se muestre sólo la fecha o la hora.
Gráfico: Muestra los datos de Access en un gráfico de un formulario o un informe. Para agregar un gráfico
creado con otra aplicación, como Excel o Lotus 1-2-3, utilice la herramienta Marco de objeto independiente o la
herramienta Marco de objeto dependiente del cuadro de herramientas.
Para crear este control, en el menú Insertar, elija Gráfico y, a continuación, haga clic en el formulario o el infor-
me en el que desea situar el control. Access inicia el Asistente para gráficos.
Imagen: Inserta una imagen dentro de un control en un formulario o informe. Utilice un control de imagen para
imágenes estáticas, tales como un logotipo, y para obtener un acceso rápido.
Objeto
Ver Objeto en Menú de Vista Hoja de datos de Tabla, Pág 5.
Control ActiveX: Agrega un control ActiveX (por ejemplo el control Calendar) a un formulario o informe. Los
controles ActiveX se almacenan como archivos separados y se deben registrar. Los controles ActiveX se pueden
obtener de o de otras compañías.
Hipervínculo: Inserta o modifica una dirección de hipervínculo o una dirección URL (Uniform Resource Loc-
ator), incluida la subdirección y el tipo de ruta de acceso (ya sea absoluta o relativa). En la vista Hoja de datos y
Formulario, el campo de dirección de hipervínculo debe estar seleccionado.
Insertar página en el control ficha: Inserta una página nueva a la derecha de las páginas existentes en el control
ficha y la sitúa en primera posición en la secuencia de orden de las páginas. Ver Control Ficha.
MENU FORMATO
Autoformato: Aplica su elección de formatos predefinidos a un formulario o informe, por ejemplo la imagen del
fondo y las fuentes para los controles.
Definir valores predeterminados de los controles: Utiliza las propiedades del control seleccionado como pro-
iedades predeterminadas para cualquier control del mismo tipo que agregue posteriormente al formulario o info-
rme activo.
Cambiar a...: Cambia el tipo de control seleccionado a otro tipo.
Ajustar a la cuadrícula: Activa y desactiva Ajustar a la cuadrícula. Cuando está activado, Access alinea los
controles con los puntos de la cuadrícula. Cuando está desactivado, puede colocar los controles en cualquier
punto del formulario o informe.
Alinear a la cuadrícula: Alinea la esquina superior izquierda de cada control seleccionado con el punto más
cercano de la cuadrícula. También Alinear A la izquierda, A la derecha, Arriba, Abajo.
Tamaño, Ajustar: Ajusta el tamaño del control seleccionado en un formulario o informe en función de su con-
tenido. Puede que desee agrandar un control, por ejemplo, si incrementa el tamaño de fuente utilizado para su
texto. A la cuadrícula: Mueve todos los lados de los controles seleccionados hacia dentro o fuera para colocarl-
os sobre los puntos más cercanos de la cuadrícula. Use este comando, por ejemplo, cuando haya cambiado el
grosor de la cuadrícula y quiera volver a ajustar el tamaño de los controles en base a esta nueva configuración.
También Tamaño Al más alto, Al más corto, Al más ancho, Al más estrecho.
Espacio Horizontal: Iguala, aumenta o disminuye el espacio horizontal entre tres o más controles seleccionado-
s.
Espacio Vertical: Iguala, aumenta o disminuye el espacio vertical entre tres o más controles seleccionados.
Traer al frente: Mueve el control seleccionado a la parte superior de la pila de controles superpuestos.
Enviar al fondo: Mueve el control seleccionado a la parte inferior de la pila de controles superpuestos.
Crear un formulario mediante Autoformulario
Autoformulario crea un formulario que presenta todos los campos y registros de la tabla o consulta seleccionada.
Cada campo aparece en una línea diferente con una etiqueta a su izquierda.
1 En la ventana Base de datos, haga clic en la ficha Tablas o Consultas.
2 Seleccione la tabla o consulta en la que desea basar el formulario o abra la tabla o consulta en cualquier
vista.
3 Haga clic en la flecha situada junto al botón Nuevo objeto en la barra de herramientas y, a continuación,
haga clic en Autoformulario.
Crear un formulario con un asistente.
1 En la ventana Base de datos, haga clic en la ficha Formularios.
2 Elija el botón Nuevo.
3 En el cuadro de diálogo Nuevo formulario, seleccione el asistente que desea utilizar. En el lado izqui-
erdo del cuadro de diálogo aparecerá una descripción del asistente.
4 Seleccione el nombre de la tabla o consulta que contiene los datos en los que desea basar el formulario.
Nota: No es necesario que siga este paso si elige la opción Asistente para formularios; puede especificar el
origen del registro para el formulario en el asistente.
5 Elija Aceptar.
6 Si ha seleccionado Asistente para formularios, Asistente para gráficos o Asistente para tablas dinámicas
en el paso 3, siga las instrucciones de los cuadros de diálogo del asistente. Si ha seleccionado Autoformulario:

GUIA ACCESS
columnas, Autoformulario: tabular o Autoformulario: hoja de datos, Access crea el formulario de forma autom-
ática.
Si el formulario creado no tiene el aspecto deseado, puede cambiarlo en la vista Diseño.
Nota: Si selecciona una de las opciones de Autoformulario, Access utiliza el último autoformato especificado,
ya sea en el Asistente para formularios o mediante el uso del comando Autoformato del menú Formato en la
vista Diseño.
Arrastrado un hoja de datos, Access muestra el subformulario como una hoja de datos.
Crear un formulario basado en más de una tabla.
En la primera pantalla del Asistente para formularios, puede seleccionar los campos que desea incluir en el for-
mulario. Estos campos pueden proceder de una o de varias tablas. Cuando se utiliza el Asistente para formularios
para crear un formulario basado en varias tablas, Access crea una instrucción SQL detrás del formulario. La
consulta o instrucción SQL incluye la información sobre qué tablas y qué campos utilizar.
Puede utilizar un Asistente para formularios para crear un formulario que presente datos de varias tablas, ya sea
un "formulario plano" o un "formulario jerárquico". Un ejemplo de formulario plano es un formulario que prese-
nta productos y proveedores. Un formulario jerárquico es un formulario con uno o más subformularios. Los
subformularios son útiles si desea mostrar datos de tablas que contienen una relación uno a varios. Por ejemplo,
podría tener un formulario Categorías que incluyera datos de una tabla Categorías y de una tabla Productos.
Puede que desee presentar los datos jerárquicamente sin utilizar un subformulario. Por ejemplo, si tiene un form-
ulario con muchos controles, puede que no le quede espacio para un subformulario. En ese caso, puede utilizar el
Asistente para formularios para crear formularios sincronizados. En ellos, al hacer clic en un botón de comando
del formulario, se abre otro formulario que está sincronizado con el registro del primer formulario.
Plantillas de formularios y de informes.
Cuando crea un formulario o informe sin utilizar un asistente, Access utiliza una plantilla para definir las carac-
terísticas predefinidas del formulario o informe.
La plantilla determina qué secciones tendrá un formulario o un informe y define las dimensiones de cada secci-
ón. La plantilla también contiene todos los valores predeterminados de las propiedades del formulario o informe,
así como sus secciones y controles.
La plantilla predeterminada de los formularios e informes se llama Normal. No obstante, es posible utilizar cua-
lquier formulario o informe ya existente como plantilla. También puede crear un formulario o informe para utili-
zarlo como plantilla.
Nota:
· Cambiar la plantilla no tiene ningún efecto sobre los formularios o informes existentes.
· Una plantilla no crea controles en un nuevo formulario o informe.
· Access guarda los valores para las opciones Plantilla para formulario y Plantilla para informe en el
archivo de información del grupo de trabajo de Access, no en su base de datos de usuario (el archivo .mdb).
Cuando cambia un valor establecido de una opción, los cambios se aplican a cualquier base de datos que abra o
cree. Para ver el nombre de la plantilla que está actualmente en uso por los nuevos formularios o informes, haga
clic en Opciones del menú Herramientas y, después, haga clic en la ficha Formularios/Informes.
· Para utilizar sus plantillas en otras bases de datos, copie o exporte las plantillas. Si las plantillas no están
en una base de datos, Access utiliza la plantilla Normal para cualquier nuevo formulario o informe de nueva
creación. No obstante, los nombres de las plantillas aparecen en las opciones Plantilla para formulario y Plantilla
para informe de cada base de datos del sistema de base de datos, incluso si las plantillas no están en todas las
bases de datos.
Especificar una nueva plantilla para los formularios e informes:
1 En el menú Herramientas, haga clic en Opciones.
2 Haga clic en la ficha Formularios/Informes.
3 Escriba el nombre de la nueva plantilla en el cuadro Plantilla para formulario o Plantilla para informe.
Nota: Puede utilizar un formulario o informe ya existente como plantilla, o bien puede crear un formulario o
informe específicamente para que se utilice como plantilla.
4 Haga clic en Aceptar.
Secciones de formularios.
Puede hacer más eficiente un formulario mediante la adición de una o más secciones. La mayoría de los formu-
larios constan de una única sección, pero también pueden incluir otras secciones, tales como un encabezado de
formulario, encabezado de página, pie de página y pie de formulario.
Un encabezado de formulario muestra información que desea mostrar para cada registro, como un título para el
formulario o botones de comando que abren formularios relacionados o llevan a cabo otras tareas. Los encabeza-
dos de formulario aparecen en la parte superior de la pantalla en la vista Formulario y en la parte superior de la
primera página una vez impresa.
Un encabezado de página muestra información tal como títulos, gráficos, encabezados de columna o cualquier
información que se desee en la parte superior de cada página impresa. Los encabezados de página sólo aparecen
en formularios impresos.

GUIA ACCESS
Una sección Detalle muestra registros. Puede mostrar un registro en la pantalla o página o puede mostrar tantos
como se pueden ajustar.
Un pie de página muestra información tal como la fecha, el número de página o cualquier información que
desee en la parte inferior de cada página impresa. Los pies de página sólo aparecen en formularios impresos.
Un pie de formulario muestra información que desea mostrar para cada registro tal como botones de comando
instrucciones para usar el formulario. Los pies de formulario aparecen sólo en la parte inferior de la pantalla en
la vista Formulario o después de la última sección Detalle de la última página una vez impresa.
Agregar o quitar un encabezado o pie de formulario o un encabezado o pie de página:
1 Abra el formulario en la vista Diseño.
2 En el menú Ver, elija Encabezado o pie de formulario o Encabezado o pie de página.
Nota: Los encabezados y los pies de formulario aparecen en la parte superior e inferior de un formulario en la
vista Formulario y al principio y al final de un formulario impreso. Los encabezados y los pies de página apare-
cen en la parte superior e inferior de cada página impresa; no aparecen en la vista Formulario.
· Si quita un encabezado y un pie, Access elimina los controles del encabezado y el pie.
· Sólo se pueden agregar un encabezado y un pie por pares. Si no desea tener ambos, puede ajustar a cero
el alto del que no desea o puede asignarle a su propiedad Visible (Visible) el valor No. También puede establecer
la propiedad MostrarCuando (DisplayWhen) del encabezado y el pie de un formulario para especificar cuándo
desea que aparezcan el encabezado y el pie (Siempre, Sólo al imprimir o Sólo en pantalla).
Crear un formulario emergente o un cuadro de diálogo personalizado
Puede crear un formulario emergente para presentar la información a un usuario o para pedirle datos. Un formu-
lario emergente permanece visible sobre otros formularios abiertos, incluso cuando otro formulario está activo.
Un formulario emergente puede ser no modal o modal. Cuando un formulario emergente es no modal, se puede
tener acceso a otros objetos y comandos de menú mientras el formulario permanece abierto. Por ejemplo, en un
formulario Pedidos, puede agregar un botón de comando que presente un formulario emergente de Productos. El
formulario emergente presenta la información de un producto en el formulario Pedidos.
1 Cree el formulario. El formulario puede incluir cualquier combinación de controles.
2 En la vista Diseño del formulario, haga doble clic en el selector de formulario para abrir así la hoja de
propiedades del formulario.
3 En el cuadro de la propiedad Emergente (PopUp), haga clic en Sí.
4 En el cuadro de la propiedad EstiloDeLosBordes (BorderStyle), seleccione Fino si no desea que el for-
mulario sea ajustable; de lo contrario, pase al siguiente paso. Si selecciona el valor Fino, podrá desplazar el for-
mulario emergente pero no podrá ajustar el tamaño.
5 Cree una macro o un procedimiento de evento que abra el formulario.
Nota: Para ver un ejemplo de un procedimiento de evento que presente un formulario emergente no modal,
haga clic en el botón Generar situado junto al cuadro de la propiedad AlHacerClic (OnClick) del botón. Ver los
detalles del producto en el formulario Pedidos en la aplicación de ejemplo Pedidos.
6 Adjunte la macro o el procedimiento de evento a un formulario o informe, especificando el nombre de
la macro o el procedimiento de evento como el valor para la propiedad del evento adecuado. Por ejemplo, escri-
ba el nombre de la macro o el procedimiento de evento en el cuadro de la propiedad AlHacerClic (OnClick) de
un botón de comando.
Ver Pág 47, Propiedad Emergente (PopUp).
Ver Pág 48, Prop. Modal.
Cuando un formulario emergente es modal, no se puede tener acceso a ningún otro objeto o comando de menú a
menos que oculte o cierre el formulario. Un formulario emergente modal se llama también cuadro de diálogo
personalizado. Por ejemplo, podría crear un cuadro de diálogo personalizado que preguntará el informe que des-
ee imprimir.
1 Cree el formulario. El formulario puede tener cualquier combinación de controles.
2 En la vista Diseño del formulario, haga doble clic en el selector de formulario para abrir la hoja de
propiedades del formulario.
3 En el cuadro de la propiedad Emergente (PopUp), haga clic en Sí.
4 En el cuadro de la propiedad Modal (Modal), haga clic en Sí.
5 En el cuadro de la propiedad EstiloDeLosBordes (BorderStyle), seleccione Diálogo. Si selecciona el
parámetro Diálogo, el formulario tiene un borde grueso y sólo puede incluir una barra de título y un menú Con-
trol. El formulario no se puede maximizar, minimizar o cambiar de tamaño.
6 Cree una macro o procedimiento de evento que abra el formulario.
Nota: Para ver un ejemplo de una macro que abre un cuadro de diálogo personalizado, vea el botón Imprimir
factura del formulario en la barra de herramientas del formulario Pedidos en la aplicación de ejemplo Pedidos.
7 Adjunte la macro o el procedimiento de evento a un formulario o informe especificando el nombre de la
macro o procedimiento de evento como el valor para la propiedad de evento adecuada. Por ejemplo, escriba el
nombre de la macro o procedimiento de evento en el cuadro de la propiedad AlHacerClic (OnClick) de un botón
de comando.
Nota: Un cuadro de diálogo personalizado contiene normalmente uno o más botones de comando que ejecutan
macros o procedimientos de evento que utilizan la información introducida en el cuadro de diálogo para desarro-
GUIA ACCESS
llar otras acciones. Estos botones se llaman frecuentemente Aceptar o Cancelar. Puede controlar qué botón tiene
el enfoque y cuál será el de cancelar estableciendo las propiedades Predeterminado (Default) y Cancelar (Cancel)
para esos tipos de botones de comando.
Para situar el cuadro de diálogo personalizado en la pantalla, abra el formulario en la vista Diseño, maximice la
ventana de Access , coloque el cuadro de diálogo donde desee y guarde el formulario. El cuadro de diálogo
aparecerá en esta posición cuando se abra (suponiendo que la propiedad CentradoAutomático (AutoCenter) está
establecida a No.
Si desea utilizar el formulario como un formulario normal además de como un cuadro de diálogo, utilice el valor
Diálogo de la acción AbrirFormulario para abrir el formulario temporalmente como un cuadro de diálogo en
lugar de utilizar este procedimiento.
Algunas Propiedades de Formularios (Datos)
Propiedad OrigenDelRegistro (RecordSource)
La propiedad OrigenDelRegistro (RecordSource) se puede utilizar para especificar el origen de los datos para un
formulario o informe. Se pueden mostrar los datos de una tabla, consulta o instrucción SQL. Por ejemplo, para
mostrar y editar los datos de la tabla Empleados en un formulario, se establece la propiedad OrigenDelRegistro
(RecordSource) del formulario a Empleados. A continuación se pueden hacer depender los controles del formu-
lario o informe a los campos especificados de la tabla Empleados estableciendo la propiedad OrigenDelControl
(ControlSource) del control al nombre de un campo de la tabla. Por ejemplo, puede hacer depender un control al
campo Apellido en la tabla Empleados estableciendo a Apellido la propiedad OrigenDelControl (ControlSource)
del control.
Valores
El valor de la propiedad OrigenDelRegistro (RecordSource) puede ser un nombre de tabla, un nombre de una
consulta o una instrucción SQL. Por ejemplo, se pueden utilizar los siguientes valores:
Valores de ejemplo Descripción
Empleados Un nombre de la tabla que especifica la tabla Empleados como el origen de los datos.
SELECT Pedidos.FechaPedido FROM Pedidos; Una instrucción SQL que especifica el campo FechaPedido
en la tabla Pedidos como el origen de los datos. Puede obligar a un control en un formulario o informe al campo
FechaPedido en la tabla Pedidos estableciendo la propiedad OrigenDelControl (ControlSource) del control a
FechaPedido.
La propiedad OrigenDelRegistro (RecordSource) se puede establecer usando la hoja de propiedades del formu-
lario o informe, con una macro o usando Visual Basic.
En Visual Basic, utilice una expresión de cadena para establecer esta propiedad.
Nota Cambiar el origen del registro de un formulario o informe abierto causa una NuevaConsulta (Requery)
automática de los datos bases.
Comentarios
Después de que se haya creado un formulario o informe, se puede cambiar su origen de los datos cambiando la
propiedad OrigenDelRegistro (RecordSource). La propiedad OrigenDelRegistro (RecordSource) también es útil
si se desea crear un formulario o informe reutilizable. Por ejemplo, se podría crear un formulario que incorpore
un diseño estándar, luego copiar el formulario y cambiar la propiedad OrigenDelRegistro (RecordSource) para
mostrar datos de una tabla, consulta o instrucción SQL diferente.
La limitación del número de registros contenidos en el origen del registro de un formulario puede mejorar el
rendimiento, especialmente cuando su aplicación se ejecuta en una red. Por ejemplo, se puede establecer la pro-
iedad OrigenDelRegistro (RecordSource) del formulario una instrucción SQL que devuelva un registro individu-
al y cambiar el origen del registro del formulario dependiendo del criterio seleccionado por el usuario.
Propiedad Filtro (Filter)
Puede utilizar la propiedad Filtro (Filter) para especificar que se muestre un subconjunto de registros, cuando se
aplica un filtro a un formulario, consulta o tabla.
Valores
La propiedad Filtro (Filter) es una expresión de cadena que consiste en una cláusula WHERE sin la palabra clave
WHERE. Por ejemplo, el siguiente código Visual Basic define y aplica un filtro para mostrar sólo los clientes de
EE.UU.:
Me.Filtro = "País = 'EE.UU.'"
Me.ActivarFiltro = True
Puede establecer esta propiedad utilizando hojas de propiedades de tablas o de formularios, una macro o Visual
Basic.
También puede establecer esta propiedad en la vista Formulario o en la vista Hoja de datos seleccionando Filtro
en el menú Registros y haciendo clic en uno de los comandos en el submenú.
Nota Los valores de la propiedad Filtro (Filter) no tienen efecto sobre la propiedad Filter de DAO.
Comentarios
Puede utilizar la propiedad Filtro (Filter) para guardar un filtro y aplicarlo en algún momento posterior. Los
filtros son guardados con los objetos en los que son creados. Cuando se abre el objeto son cargados automática-
mente, aunque no son aplicados automáticamente.

GUIA ACCESS
Cuando se crea un nuevo objeto, hereda las propiedades OrigenDelRegistro (RecordSource), Filtro (Filter), Ord-
enarPor (
OrderBy) y ActivarOrden (OrderByOn) de la tabla o consulta de la que fue creado.
Para aplicar un filtro guardado a un formulario, consulta o tabla, puede hacer clic en Aplicar filtro de la barra de
herramientas, hacer clic en Aplicar Filtro/orden en el menú Registros o utilizar una macro o Visual Basic para
establecer la propiedad ActivarFiltro (FilterOn) a Verdadero (True) (–1). En el caso de los informes, puede apl-
car un filtro estableciendo la propiedad ActivarFiltro (FilterOn) a Sí en la hoja de propiedades del informe.
El botón Aplicar Filtro indica el estado de las propiedades Filtro (Filter) y ActivarFiltro (FilterOn). El botón
permanece desactivado hasta que haya un filtro para aplicar. Si en la actualidad se está aplicando un filtro, el
botón Aplicar filtro aparecerá presionado.
Para aplicar un filtro automáticamente cuando se abre un formulario, especifíquelo en los valores de la propiedad
del evento OnOpen, o bien una macro que utilice la acción AplicarFiltro (ApplyFilter) o un procedimiento de
evento que utilice el método ApplyFilter del objeto DoCmd.
Puede eliminar un filtro haciendo clic en el botón Aplicar filtro presionado, haciendo clic en Quitar filtro u ord-
nar en el menú Registros o utilizando Visual Basic para establecer la propiedad ActivarFiltro (FilterOn) a Falso
(False) (0).
Nota Puede guardar un filtro como una consulta haciendo clic en Guardar como consulta en el menú Archivo
mientras permanezca en la ventana Filtro por formulario o en la ventana Filtro u orden avanzado.
Cuando la propiedad Filtro (Filter) se establece en la vista Diseño del formulario, Access no intenta validar la
expresión SQL. Si la expresión SQL no es válida, se producirá un error cuando se aplique el Filtro.
Propiedad OrdenarPor (OrderBy)
Puede utilizar la propiedad OrdenarPor (OrderBy) para especificar cómo desea ordenar los registros en un form-
ulario, consulta, informe o tabla.
Valores
La propiedad OrdenarPor (OrderBy) es una expresión de cadena que representa el nombre del campo o campos
por los que desea ordenar los registros. Cuando se utiliza más de un nombre de campo, separe los nombres con
una coma (,).
Cuando se establece la propiedad OrdenarPor (OrderBy) introduciendo uno o más nombres de campos, los regi-
stros son ordenados en orden ascendente. De forma similar, Visual Basic ordena estos campos en orden ascen-
dente de forma predeterminada.
Si desea ordenar los registros en orden descendente, escriba DESC al final de la expresión de cadena. Por eje-
mplo, para ordenar los registros de clientes en orden descendente por nombre de contacto, establezca la propi-
edad OrdenarPor (OrderBy) a "NombreContacto DESC".
Puede establecer la propiedad OrdenarPor (OrderBy) utilizando la hoja de propiedades del objeto, en una macro
o Visual Basic.
Comentarios
En el caso de los informes, la propiedad ActivarOrden (OrderByOn) debe ser establecida a Sí, para aplicar el
orden especificado por la propiedad OrdenarPor (OrderBy) del objeto. Para los formularios, seleccione el campo
por el que desea ordenar los campos y o bien haga clic en el botón de ordenar apropiado en la barra de herramie-
ntas o seleccione Ordenar en el menú Registros y haga clic en el comando que corresponda del submenú. Tambi-
én puede establecer la propiedad ActivarOrden (OrderByOn) tanto para Formularios como Informes usando
Visual Basic.
Establecer la propiedad OrdenarPor (OrderBy) para un informe abierto hará que se ejecuten los procedimientos
de evento Close y Open del informe.
Nota Cuando se crea un nuevo objeto, éste hereda las propiedades OrigenDelRegistro (RecordSource), Filtro
(Filter), OrdenarPor (OrderBy) y ActivarOrden (OrderByOn) de la tabla o consulta desde donde fue creado. En
el caso de los formularios e informes, los filtros heredados no se aplican automáticamente cuando se abre un
objeto.
Propiedad PermitirEdiciones (AllowEdits)
La propiedad PermitirEdiciones (AllowEdits) se utiliza para especificar si un usuario puede modificar los regis-
tros guardados cuando use un formulario.
Valores
La PermitirEdiciones (AllowEdits) utiliza los siguientes valores.
Valor Descripción Visual Basic
Sí (Predeterminado) El usuario puede modificar los registros guardados. True (–1)
No El usuario no puede modificar los registros guardados. False (0)
La propiedad PermitirEdiciones (AllowEdits) se puede establecer usando la hoja de propiedades del formulario,
una macro o Visual Basic.
Observaciones
Puede usar la propiedad PermitirEdiciones (AllowEdits) para evitar cambios a los datos mostrados en un formu-
lario. Si dese impedir que se realicen cambios a los datos de un control determinado, use la propiedad Activado
(Enabled) o Bloqueado (Locked).

GUIA ACCESS
Si desea evitar que se produzcan cambios en los registros existentes (hacer un formulario de sólo lectura), estab-
lezca las propiedades PermitirAgregar (AllowAdditions), PermitirEliminación (AllowDeletions) y PermitirEdi-
ciones (AllowEdits) a No. También puede hacer los registros de sólo lectura estableciendo la propiedad TipoR-
ecordset (RecordsetType) a Snapshot.
Cuando la propiedad PermitirEdiciones (AllowEdits) está establecida a No, no están disponibles ni el comando
Eliminar registro del menú Edición, ni el comando Entrada de datos del menú Registros.
Nota Cuando está establecido el argumento Modo de datos de la acción AbrirFormulario, Access anulará un
determinado número de valores de propiedades del formulario. Si el argumento Modo de datos de la acción Ab-
rirFormulario está establecido a Editar, Access abrirá el formulario con los siguientes valores de la propiedad:
· PermitirEdiciones (AllowEdits) Sí
· PermitirEliminación (AllowDeletions) Sí
· PermitirAgregar (AllowAdditions) Sí
· EntradaDeDatos (DataEntry) No
Para evitar que la acción AbrirFormulario anule alguno de estos valores de propiedad existentes, omita el valor
del argumento Modo de datos, de tal forma que Access use los valores de las propiedades definidos por el form-
ulario.
Propiedad EntradaDeDatos (DataEntry)
La propiedad EntradaDeDatos (DataEntry) se utiliza para especificar si se abre un formulario dependiente para
permitir sólo la entrada de datos. La propiedad EntradaDeDatos (DataEntry) no determina si los registros pueden
agregarse o no; sólo determina si se muestran los registros existentes.
Valores
La propiedad EntradaDeDatos (DataEntry) utiliza los siguientes valores.
Valor Descripción Visual Basic
Sí El formulario se abre mostrando sólo un registro en blanco. True (–1)
No (Predeterminado) El formulario se abre mostrando los registros existentes. False (0)
La propiedad EntradaDeDatos (DataEntry) se puede establecer usando la hoja de propiedades de un formulario,
una macro o Visual Basic.
Esta propiedad se puede establecer en cualquier vista.
Observaciones
La propiedad EntradaDeDatos (DataEntry) sólo tiene efecto cuando la propiedad PermitirAgregar (AllowAdditi-
ons) está establecida a Sí.
Establecer la propiedad EntradaDeDatos (DataEntry) a Sí usando Visual Basic tiene el mismo efecto que hacer
clic en Entrada de datos en el menú Registros. Establecerla a No usando Visual Basic es equivalente a hacer clic
en Quitar filtro u ordenar en el menú Registros.
Nota Cuando se establece el argumento Modo de datos de la acción AbrirFormulario, Access anula un número
determinado de valores de propiedades del formulario. Si el argumento Modo de datos de la acción AbrirForm-
ulario está establecido a Editar, Access abrirá el formulario con los siguientes valores de las propiedades:
· PermitirEdiciones (AllowEdits) Sí
· PermitirEliminación (AllowDeletions) Sí
· PermitirAgregar (AllowAdditions) Sí
· EntradaDeDatos (DataEntry) No
Para evitar que la acción AbrirFormulario anule alguno de estos valores de propiedad existentes, omita el valor
del argumento Modo de datos, de tal forma que Access use los valores de las propiedades definidos por el form-
ulario.
Propiedad TipoRecordset (RecordsetType)
Ver Pág 39 Prop. Tipo Recorset.
(Otras) Propiedad Emergente (PopUp)
Ver Pág 44, Crear Formulario emergente o Cuadro diálogo.
Puede usar la propiedad Emergente (PopUp) para especificar si un formulario se abre como un formulario eme-
gente. Por ejemplo, establece la propiedad Emergente (PopUp) del formulario a Sí, la propiedad Modal a Sí, y la
propiedad EstiloDeLosBordes (BorderStyle) a Dialog para crear un cuadro de diálogo personalizado.
Valores
Los valores de la propiedad Emergente (PopUp) son:
Valor Descripción Visual Basic
Sí El formulario se abre como un formulario emergente en la vista Formulario. Permanece por encima de
todas las demás ventanas de Access. True (-1)
No (Predeterminado) El formulario no es un formulario emergente. False (0)
Puede establecer esta propiedad usando la hoja de propiedades, una macro, o Visual Basic.
La propiedad Emergente (PopUp) sólo se puede establecer en la vista Diseño del formulario.
Comentarios
Para especificar el tipo de borde que desea para un formulario emergente, use la propiedad EstiloDeLosBordes
(BorderStyle). Habitualmente se establece "Delgado" en la propiedad EstiloDeLosBordes (BorderStyle) para los
formularios emergentes.

GUIA ACCESS
Sugerencia Puede usar las propiedades Emergente (PopUp), Modal y EstiloDeLosBordes (BorderStyle) para
crear un cuadro de diálogo personalizado. Establezca la propiedad Modal a Sí, la propiedad Emergente (PopUp)
a Sí, y la propiedad EstiloDeLosBordes (BorderStyle) a Diálogo para cuadros de diálogo personalizados.
Establecer la propiedad Emergente (PopUp) a Sí hace que el formulario sea un formulario emergente sólo cua-
ndo haga algo de lo siguiente:
· Abrirlo en la vista Formulario desde la ventana Base de datos.
· Abrirlo en vista Formulario utilizando una macro o Visual Basic.
· Cambiar de la vista Diseño a la vista Formulario.
(Otras) Propiedad Modal
Ver Pág 44, Crear Formulario emergente o Cuadro diálogo.
Puede utilizar la propiedad Modal para especificar si un formulario se abre como un formulario modal. Cuando
un formulario se abre como un formulario modal, debe cerrar el formulario para poder mover el enfoque a otro
objeto.
Valores
La propiedad Modal puede tener los valores siguientes:
Valor Descripción Visual Basic
Sí El formulario se abre como un formulario modal en la vista Formulario. True (–1)
No (Predeterminado) El formulario se abre como un formulario no modal en la vista Formulario. False
(0)
Puede establecer esta propiedad mediante la hoja de propiedades del formulario, una macro o Visual Basic.
Comentarios
Al abrir un formulario modal, las demás ventanas de Access se deshabilitan hasta que se cierra el formulario
(aunque puede cambiar a otras ventanas de otras aplicaciones). Para deshabilitar menús y barras de herramientas
además de otras ventanas, establezca las propiedades Modal y Emergente (PopUp) del formulario a Sí.
Puede utilizar la propiedad EstiloDeLosBordes (BorderStyle) para especificar el tipo de borde que tendrá un
formulario. Normalmente, los formularios modales tienen la propiedad EstiloDeLosBordes (BorderStyle) estab-
lecida a Diálogo.
Sugerencia Puede utilizar las propiedades Modal, Emergente (PopUp) y EstiloDeLosBordes (BorderStyle)
para crear un cuadro de diálogo personalizado. Puede establecer Modal a Sí, Emergente (PopUp) a Sí y Estil-
oDeLosBordes (BorderStyle) a Diálogo para los cuadros de diálogo personalizados.
Al establecer la propiedad Modal a Sí, el formulario se convierte en modal sólo cuando:
· Se abre en la vista Formulario desde la ventana Base de datos.
· Se abre en la vista Formulario mediante una macro o Visual Basic.
· Se cambia de la vista Diseño a la vista Formulario.
Cuando el formulario es modal, no puede cambiar a la vista Hoja de datos desde la vista Formulario, aunque
puede cambiar a la vista Diseño y, a continuación, a la vista Hoja de datos.
El formulario no es modal en la vista Diseño o en la vista Hoja de datos y tampoco es modal si cambia de la vista
Hoja de datos a la vista Formulario.
Nota Puede utilizar el valor Diálogo del argumento de acción Modo de la ventana de la acción AbrirFormulario
para abrir un formulario con sus propiedades Modal y Emergente (PopUp) establecidas a Sí.
Cuando se establece la propiedad Emergente (PopUp) a Sí, no se puede cambiar a las otras vistas desde la vista
Formulario, porque la barra de herramientas del formulario no está disponible (No puede cambiar un formulario
emergente desde la vista Formulario a la vista Hoja de datos, incluso en una macro o en Visual Basic). Debe
cerrar el formulario y volverlo a abrir en la vista Diseño o en la vista Hoja de datos.
El formulario no es un formulario emergente en la vista Diseño y tampoco lo es en la vista Hoja de datos, adem-
ás no es un formulario emergente si cambia desde la vista Hoja de datos a la vista Formulario.
Nota Puede usar el valor Diálogo del argumento Modo de ventana de la acción AbrirFormulario para abrir un
formulario con sus propiedades Emergente (PopUp) y Modal establecidas a Sí.
Sugerencia Cuando maximice una ventana en Access, todas las otras ventanas también se maximizarán cua-
ndo las abra o se cambie a ellas. Sin embargo, los formularios emergentes no serán maximizados. Si desea que
un formulario mantenga su tamaño cuando maximice otras ventanas, establezca su propiedad Emergente (PopU-
p) a Sí.
Propiedad BloqueosDelRegistro (RecordLocks)
Ver Pág 38 Prop. Bloqueos del Registro.
Controles
Toda la información de un formulario o informe está contenida en los controles. Los controles son objetos de un
formulario o informe que muestran datos, realizan acciones o decoran el formulario o el informe. Por ejemplo,
puede utilizar un cuadro de texto en un formulario o informe para mostrar datos, un botón de comando en un
formulario para abrir otro formulario o informe, o una línea o un rectángulo para separar y agrupar controles con
el fin de hacerlos más legibles.
Access incluye los siguientes tipos de controles, a los cuales se puede tener acceso a través del cuadro de herra-
mientas en la vista Diseño del formulario o en la vista Diseño del informe: cuadro de texto, etiqueta, grupo de
opciones, botón de opción, casilla de verificación, botón de alternar, cuadro combinado, cuadro de lista, botón de
GUIA ACCESS
comando, imagen, marco de objeto dependiente, marco de objeto independiente, subformulario/subinforme, salto
de página, línea, rectángulo y controles personalizados ActiveX.
Los controles pueden ser dependientes, independientes o calculados. Un control dependiente está unido a un
campo de una tabla o consulta base. Los controles dependientes se utilizan para mostrar, introducir y actualizar
valores de los campos de la base de datos. Un control calculado utiliza una expresión como origen de los datos.
Una expresión puede utilizar datos de un campo de una tabla o consulta base de un formulario o informe o bien
datos de otro control del formulario o informe. Un control independiente no tiene un origen de los datos. Puede
utilizar los controles independientes para mostrar información, líneas, rectángulos e imágenes.
Tipos de Controles: Etiquetas, Cuadros de texto, Grupos de opciones, Botones de alternar, Botones de opción,
Casillas de verificación, Cuadros combinados, Cuadros de lista, Botones de comando, Imagen, Marcos de objet-
os independientes o Marcos de objetos dependientes, Subformularios, Subinformes, Saltos de página, Líneas,
Rectángulos, Controles ficha, Otros Controles (ActiveX.).
Cuadro de Herramientas de controles
Mostrar/ocultar con ALT+ V, A. Para bloquear una herramienta (dejar fija), doble clic. Desbloquearla, ESC.
Botón seleccionar objetos (Flecha)
Se utiliza para seleccionar un control, una sección o un formulario. Haga clic en esta herramienta para desbloqu-
ear un botón del cuadro de herramientas que estuviera bloqueado. Utilizar siempre para seleccionar controles.
Para varios textos y etiquetas (controles) abarcar en rectángulo arrastrando sobre sólo textos o sobre etiquetas y
sus textos (todo) o sobre sólo etiquetas. Para seleccionar controles no juntos, hacer clic en los textos sosteniendo
MAY. Cuanto se convierte en mano (en borde de texto), mueve texto(s) y etiqueta(s). Para cada uno independie-
nte, dedo sobre cuadrado grande. Para mantener vertical u horizontal mientras se arrastra, sostener MAY. Cam-
iar tamaños con cuadrados pequeños o con Menu Formato (Tamaño, Ajustar)
Los controles se pueden Copiar, Cortar, Pegar (Pasa a portapapeles). También duplicar (Igual que PowerPoint,
Duplicar de Nuevo).
Para alinear controles: Menú Formato (Alinear). A la cuadrícula: alinea esq. sup izq. a la cuadrícula para alinear
en columnas o filas. Seleccionar primero sólo etiquetas o textos. Después: Arriba, Abajo, Izquierda, Derecha.
Botón Asistentes para Controles
Activa y desactiva los asistentes para controles. Utilice los Asistentes para controles para que le ayuden a crear
un cuadro de lista, un cuadro combinado, un grupo de opciones, un botón de comando, un gráfico, un subinforme
o un subformulario. El botón Asistentes para controles debe estar presionado si se desean utilizar automáticame-
nte los asistentes en la creación de estos controles.
Etiqueta
Un control que presenta texto descriptivo, por ejemplo un título o instrucciones de un formulario o informe.
Access adjunta automáticamente etiquetas a los controles que crea.
Utilice este procedimiento para crear una etiqueta individual (una etiqueta que no está adherida a ningún otro
control). Para crear una etiqueta que se adjunta a un control, simplemente cree el control. Access adjunta de
forma automática una etiqueta al control cuando lo crea.
1 Abra un formulario en la vista Diseño del formulario o un informe en la vista Diseño.
2 Haga clic en la herramienta Etiqueta en el Cuadro de Herramientas.
3 En el formulario o informe, haga clic en donde desee colocar la etiqueta, e introduzca a continuación el
texto de la etiqueta.
Nota: Si desea presentar el texto de una etiqueta en más de una línea, puede ajustar el tamaño de la etiqueta des-
pués de haber introducido todo el texto, o puede presionar CTRL+INTRO al final de la primera línea de texto
para introducir un retorno de carro. Si inserta un retorno de carro, Access alinea las líneas subsiguientes según
las escriba. Para romper una línea de forma manual en un línea continua, presione de nuevo CTRL+INTRO. El
ancho máximo de una etiqueta está determinado por la longitud de la primera línea de texto. Si desea utilizar una
"y" comercial (&) en una etiqueta, debe teclearla dos veces. Esto es debido a que Access utiliza el carácter & en
una etiqueta o botón para definir una tecla de acceso.
Cuadros de texto.
Se utiliza para: presentar, introducir o modificar los datos del origen de registros base de un formulario o info r-
me, presentar los resultados de un cálculo o recibir los datos introducidos por el usuario.
Crear un cuadro de texto dependiente
Arrastre el(los) campo(s) desde la lista de campos y póngalos en el formulario o informe.
Access coloca un cuadro de texto en el formulario o informe por cada campo que seleccione en la lista de c-
ampos. Cada cuadro de texto está relacionado con un campo de la fuente de datos base del formulario o del i-
nforme. Cada cuadro de texto tiene también adjunta una etiqueta de forma predeterminada.
Rehaga el tamaño del cuadro de texto de forma que tenga el tamaño adecuado para los datos que desea mos-
rar.
Si es necesario, cambie el texto de la etiqueta.
En el caso de los cuadros de texto de los formularios que tengan muchas líneas de texto, puede desear agregar
un barra de desplazamiento vertical (propiedad Barras de Desplazamientos).
Crear un cuadro de texto independiente

GUIA ACCESS
Haga clic en cualquier parte del formulario o informe para crear un cuadro de texto de tamaño predetermina-
do, o arrastre un cuadro de texto que tenga el tamaño que desea.
Crear un control calculado
Un cuadro de texto es el tipo de control más utilizado para presentar un valor calculado, también puede utili-
zar cualquier control que tenga una propiedad OrigenDelControl (ControlSource).
S el control es un cuadro de texto, puede escribir directamente la expresión en el control.
Si el control no es cuadro de texto o si el control es un cuadro de texto pero desea utilizar el Generador de e-
xpresiones para crear la expresión, asegúrese de que el control está seleccionado, haga clic en Propiedades
en la barra de herramientas para abrir la hoja de propiedades del control y luego escriba la expresión en el cu-
adro de la propiedad OrigenDelControl (ControlSource) o presione el botón Generar para abrir el Generador
de expresiones.
En un control calculado, comience cada expresión con el operador =.
·Si en el cuadro de la propiedad OrigenDelControl (ControlSource) necesita más espacio para escribir una e-
xpresión, presione MAY+F2 para abrir el cuadro Zoom.
·Si el formulario está basado en una consulta, podría querer colocar la expresión en la consulta, en vez de en
el control calculado.
Para control texto de cálculo, introducir la expresión. ( Ej.: =[Unit Price]*.75 (-25%)).
Algunas Propiedades de Cuadro de Texto (Datos)
Propiedad OrigenDelControl (ControlSource)
La propiedad OrigenDelControl (ControlSource) se puede utilizar para especificar qué datos aparecen en un
control. Se pueden mostrar y editar datos dependientes de un campo en una tabla, consulta o instrucción SQL.
También se puede mostrar el resultado de una expresión. Para un nivel de grupo de informe, la propiedad Orige-
nDelControl (ControlSource) determina el campo o expresión por el que agrupar.
Nota La propiedad OrigenDelControl (ControlSource) no se aplica a los controles de casillas de verificación,
botones de opción o botones de alternar incluidos en un grupo de opciones. Sólo se aplica al propio grupo de
opciones.
En el caso de los informes, la propiedad OrigenDelControl (ControlSource) sólo se aplica a los niveles de grupo
del informe.
Valores
La propiedad OrigenDelControl (ControlSource) tiene los siguientes valores:
Valor Descripción
Un nombre de campo El control es dependiente de un campo en una tabla, consulta o instrucción SQL. Los
datos del campo se muestran en el control. Los cambios a los datos dentro del control hacen que se cambien los
datos correspondientes en el campo. (Para hacer que el control sea de sólo lectura, establezca la propiedad Blo-
ueado (Locked) a Sí.) Si hace clic en un control dependiente para un campo que tiene un tipo de dato Hipervínc-
ulo, irá al destino especificado en la dirección del hipervínculo.
Una expresión El control muestra los datos generados por una expresión. Estos datos pueden ser cambiados
por el usuario pero no se guardan en la base de datos.
La propiedad OrigenDelControl (ControlSource) se puede establecer para un control usando la hoja de propieda-
des del control, con una macro o usando Visual Basic.
También se puede establecer la propiedad OrigenDelControl (ControlSource) para un cuadro de texto escribien-
do un nombre de campo o expresión directamente en el cuadro de texto en la vista Diseño del formulario o en la
vista Diseño del informe.
(Dejar en Blanco)
Para un informe, se puede establecer esta propiedad seleccionando un campo o escribiendo una expresión en la
columna Campo/expresión del cuadro Ordenar y agrupar . Para obtener más detalles, consulte la propiedad Gro-
upLevel.
En Visual Basic, utilice una expresión de cadena para establecer el valor de esta propiedad.
Comentarios
Los formularios e informes actúan como “ventanas” de su base de datos. El origen principal de los datos para un
formulario o informe se especifica estableciendo su propiedad OrigenDelRegistro (RecordSource) a una tabla,
consulta o instrucción SQL. A continuación puede establecer la propiedad OrigenDelControl (ControlSource) a
un campo en el origen de los datos o a una expresión. Si el valor de la propiedad OrigenDelControl (ControlSou-
rce) es una expresión, el valor que se muestra es de sólo lectura y no se guarda en la base de datos. Por ejemplo,
puede utilizar los siguientes valores:
Valores de ejemplo Descripción
ApellidoPara un control, los datos del campo Apellido se muestran en el control. Para un nivel de grupo de info-
rme, Access agrupa los datos sobre el apellido.
=Fecha( ) + 7 Para un control, esta expresión muestra una fecha que es siete días a partir del día de hoy en el
control.
=ParteFecha("q",FechaEnviado) Para un control, esta expresión muestra el trimestre de la fecha de envío. Para
un nivel de grupo de informe, Access agrupa los datos en el trimestre de la fecha del envío.
Propiedad MáscaraDeEntrada (InputMask)
GUIA ACCESS
Ver Pág 13, Propiedad Máscara.
Propiedades Activado (Enabled) y Bloqueado (Locked)
· La propiedad Activado (Enabled) especifica si un control puede tener el enfoque en la vista Formulario.
· La propiedad Bloqueado (Locked) especifica si se pueden editar los datos de un control en la vista For-
mulario.
Valores
Los valores de la propiedad Activado (Enabled) son las siguientes.
Valor Descripción Visual Basic
Sí (Predeterminado para todos los controles excepto los marcos de objeto independientes) El control puede
tener el enfoque. Si el control es un marco de objeto independiente, haciendo doble clic en él se ejecuta el verbo
principal del control. Por ejemplo, un marco de objeto independiente podría reproducir un objeto de sonido incr-
ustado. True (–1)
No (Predeterminado para marcos de objeto independientes) El control no puede tener el enfoque y aparece
atenuado. Si el control es un grupo de opciones, ni el grupo de opciones ni los controles dentro del grupo de
opciones pueden tener el enfoque. False (0)
Los valores de la propiedad Bloqueado (Locked) son los siguientes.
Valor Descripción Visual Basic
Sí (Predeterminado para marcos de objeto independientes) El control funciona normalmente pero no per-
mite modificar, agregar o eliminar datos. True
No (Predeterminado para todos los controles excepto marcos de objeto independientes) El control funciona
normalmente y permite modificar, agregar o eliminar datos. False
Puede establecer estas propiedad utilizando la hoja de propiedades del control, una macro, o en Visual Basic.
Comentarios
Use la propiedad Activado (Enabled) para activar y desactivar controles. Por ejemplo, en la vista Formulario
puede desactivar un botón de comando hasta que haya cambiado los datos en un control de cuadro de texto.
Puede usar entonces el evento AfterUpdate del control para llamar a un procedimiento de evento o una macro
para activar el botón de comando.
Use la propiedad Bloqueado (Locked) para proteger los datos en un campo haciéndolos de sólo lectura. Por eje-
mplo, podría desear que un control sólo mostrase información, sin permitir su modificación, o podría desear
bloquear un control hasta que se cumpliese una condición específica.
Puede combinar los valores de las propiedades Activado (Enabled) y Bloqueado (Locked) para lograr los sigui-
entes efectos.
Activado (Enabled) Bloqueado (Locked) Efecto
Sí Sí El control puede tener el enfoque. Los datos se muestran normalmente y se pueden copiar pero
no editar.
Sí No El control puede tener el enfoque. Los datos se muestran normalmente y se pueden copiar y
editar.
No Sí El control no puede tener el enfoque. Los datos se muestran normalmente pero no se pueden
copiar ni editar.
No No El control no puede tener el enfoque. El control y los datos están desactivados (atenuados).
La propiedad PuntoDeTabulación (TabStop) se puede combinar con la propiedad Activado (Enabled) para evitar
el uso de la tecla TAB para seleccionar un botón de comando, mientras se sigue permitiendo el uso del botón
haciendo clic en él. Al establecer "No" en la propiedad PuntoDeTabulación (TabStop) se hace que el botón de
comando no esté en el orden de tabulación. Sin embargo, si la propiedad Activado (Enabled) está establecida a
"Sí", podrá hacer clic en el botón de comando.
Para permitir modificaciones en un objeto incrustado o vinculado de un marco de objeto independiente, debe
establecer "Sí" en la propiedad Activado (Enabled) de marco de objeto independiente y "No" en la propiedad
Bloqueado (Locked).
Propiedad BuscarPorFiltro (FilterLookup)
Puede utilizar la propiedad BuscarPorFiltro (FilterLookup) para especificar si los valores deben aparecer en un
control de cuadro de texto dependiente cuando utilice la ventana Filtro por formulario.
Valores
La propiedad BuscarPorFiltro (FilterLookup) utiliza los siguientes valores.
Valor Descripción Visual Basic
Nunca No se muestran los valores del campo. Puede especificar si los registros filtrados pueden contener val-
res Null. 0
Base de datos predeterminada (Predeterminado) Los valores de los campos se muestran de acuerdo con los
valores bajo la sección Valores predeterminados de filtro por formulario de la ficha Editar/Buscar del cuadro de
diálogo Opciones, disponible haciendo clic en Opciones en el menú Herramientas. 1
Siempre Los valores de los campos se muestran siempre. 2
Puede establecer la propiedad BuscarPorFiltro (FilterLookup) utilizando la hoja de propiedades del cuadro de
texto, una macro o Visual Basic.

GUIA ACCESS
También puede establecer de forma predeterminada esta propiedad utilizando un cuadro de texto con el estilo de
control predeterminado del control o el método DefaultControl en Visual Basic.
Comentarios
Si desea limitar los tipos de campos a mostrar, elimine la casilla de verificación apropiada bajo Valores prede-
terminados de Filtro por formulario en la ficha Modificar/Buscar del cuadro de diálogo Opciones, al que se tiene
acceso haciendo clic en Opciones en el menú Herramientas. Si no se muestran las listas de campos, debe incre-
mentar el número en el cuadro No mostrar listas cuando el número de registros leídos sea superior a, de forma
que el valor sea mayor o igual al número máximo de registros en cualquier campo del origen de los registros.
Grupo de opciones
Se utiliza junto con las casillas de verificación, los botones de opción o los botones de alternar para presentar un
conjunto de valores alternativos. Por ejemplo, se puede utilizar un grupo de opción para especificar si un pedido
se va a enviar por aire, por mar o por tierra.
Crear un grupo de opciones con casillas de verificación, botones de alternar o de opción
Puede crear su propio grupo de opciones o puede hacer que Access cree el grupo de opciones para el usuario
utilizando un asistente. Un asistente aligera el proceso de crear un grupo de opciones porque lleva a cabo todo el
trabajo de tipo básico que realizaría el usuario. Cuando utiliza un asistente, Access le pide información y crea un
grupo de opciones basado en sus respuestas.
Sugerencia: Si desea presentar más de unas pocas opciones, utilice un cuadro de lista o un cuadro combinado
en vez de un grupo de opciones.
Puede utilizar un grupo de opciones en un formulario o informe para presentar un conjunto limitado de alternati-
vas. Un grupo de opciones hace fácil seleccionar un valor, ya que sólo tiene que hacer clic en el valor que desee.
Sólo se puede elegir una opción cada vez de entre un grupo de opciones.
Un grupo de opciones consiste en un marco de grupo y un conjunto de casillas de verificación, opciones, o bot-
nes de alternar.
Si un grupo de opciones está vinculado con un campo, sólo está vinculado con el campo el propio marco del
grupo, no las casillas de verificación, los botones de alternar, o los botones de opción dentro del marco. En vez
de establecer la propiedad OrigenDelControl (ControlSource) para cada uno de los controles del grupo de opcio-
nes, establezca la propiedad ValorDeLaOpción (OptionValue) de cada casilla de verificación, botón de alternar,
o de opción a un número que tenga algún significado para el campo con el que el marco del grupo está vinculad-
o. Cuando se selecciona una opción en un grupo de opciones, Access establece el valor del campo con el que el
grupo de opciones está vinculado al valor de la propiedad ValorDeLaOpción (OptionValue) de la opción selec-
cionada.
Nota: La propiedad ValorDeLaOpción (OptionValue) se establece a un número porque el valor de un grupo de
opciones sólo puede ser un número, no texto. Access guarda este número en la tabla base. En este ejemplo, si
desea presentar el nombre del distribuidor en vez de un número en la tabla Pedidos, puede crear una tabla separ-
ada llamada Distribuidores que guarde los nombres de los distribuidores, y entonces hacer que el campo Enviar
de la tabla Pedidos sea un campo de Búsqueda que busca los datos de la tabla Distribuidores.
Un grupo de opciones también puede ser establecido como una expresión, o puede ser independiente. Puede
utilizar un grupo de opciones independientes en un cuadro de diálogo personalizado para aceptar la entrada de
datos de los usuarios y llevar a cabo a continuación alguna acción basada en esa entrada.
Si desea crear un grupo de opciones independiente, haga clic en donde desee colocar el marco del grupo.
Si desea crear un grupo de opciones dependiente, haga clic en Lista de campos en la barra de herramientas para
presentar la lista de campos y arrastre entonces el campo apropiado desde la lista de campos hacia el formulario
o informe. Si el botón de la lista de campos o el comando no están disponibles, necesita hacer depender el for-
ulario o el informe de un origen de registros mediante la propiedad OrigenDelRegistro (RecordSource).
Nota: Debe arrastrar el campo desde la lista de campos. Si hace clic en la lista de campos y después hace clic
en el formulario o informe, el control no quedará relacionado.
En el Cuadro de herramientas, haga clic en la herramienta Casilla de verificación , Botón de opción, o Botón de
alternar, y haga a continuación clic dentro del marco del grupo donde desee que aparezca el ángulo superior
izquierdo de la casilla de verificación, del botón de opción, o el botón de alternar. Cuando el puntero del ratón
esté sobre el marco, Access señala el grupo de opciones para indicar que los controles colocados dentro forman
parte del grupo de opciones.
Cuando Access crea el primer control dentro de un grupo de opciones, establece la propiedad ValorDeLaOpción
(OptionValue) del control a 1.
Repita el paso 5 para cada uno de los controles que agregue al grupo de opciones. Access establece la propiedad
ValorDeLaOpción (OptionValue) de la segunda opción a 2, la tercera a 3, y así sucesivamente.
Si creara una casilla de verificación, un botón de opción o un botón de alternar fuera de un grupo de opciones y
quisiera agregar ese control al grupo de opciones, debe cortar y pegar el control dentro del grupo de opciones
(seleccione el marco del grupo de opciones antes de pegar). Al cortar y pegar, Access establece la propiedad
ValorDeLaOpción (OptionValue) del control a -1 de forma que debe restablecer la propiedad al valor que desee.
Si arrastra un control existente hacia un marco de grupo, el control no llega a formar parte del grupo de opciones.

GUIA ACCESS
Botón de alternar
Se utiliza como: un control autónomo dependiente de un campo Sí/No, como un control independiente para
recibir los datos introducidos por el usuario en un cuadro de diálogo personalizado, o como parte de un grupo de
opciones.
Puede utilizar un botón de alternar en un formulario como un control individual para presentar un valor Sí/No de
una tabla, consulta o instrucción SQL base.
Cuando se hace clic en un botón de alternar que está vinculado a un campo de Sí/No, Access presenta el valor
en la tabla base de acuerdo con la propiedad Formato (Format) del campo (Si/No, Verdadero/Falso, o Activ-
ado/Desactivado).
Los botones de alternar son muy prácticos cuando se utilizan en un grupo de opciones junto con otros botones.
En un grupo de opciones, puede ver fácilmente si un botón está presionado.
Puede utilizar imágenes en los botones de alternar en vez de texto. Por ejemplo, en vez de presentar la palabra
"Suspendido" en el botón de alternar del primer ejemplo, podría presentar la imagen de una papelera.
También puede utilizar el botón de alternar en un cuadro diálogo personalizado para aceptar la entrada de datos
de los usuarios.
Botón de opción
Se utiliza como: un control autónomo dependiente de un campo Sí/No, como un control independiente para
recibir los datos introducidos por el usuario en un cuadro de diálogo personalizado, o como parte de un grupo de
opciones.
Puede utilizar un botón de opción en un formulario como un control individual para presentar un valor Sí/No de
una tabla, consulta o instrucción SQL base.
Cuando se selecciona o desactiva una opción que está vinculada a un campo Sí/No, Access presenta el valor de
la tabla base de acuerdo con la propiedad Formato (Format) del campo (Sí/No, Verdadero/Falso o Activado-
/Desactivado).
También puede utilizar las opciones en un grupo de opciones para presentar valores entre los cuales elegir. Tam-
bién puede utilizar un botón de opción independiente en un cuadro de diálogo personalizado para aceptar la ent-
rada de datos de los usuarios.
Casilla de verificación
Se utiliza como: un control autónomo dependiente de un campo Sí/No, como un control independiente para
recibir los datos introducidos por el usuario en un cuadro de diálogo personalizado, o como parte de un grupo de
opciones.
Puede utilizar una casilla de verificación en un formulario o informe como un control individual para presentar
un valor Sí/No de una tabla, consulta o instrucción SQL base.
Cuando se selecciona o borra una casilla de verificación que depende de un campo Sí/No, Access presenta el
valor de la tabla base de acuerdo con la propiedad Formato (Format) del campo (Sí/No, Verdadero/Falso o Act-
vado/Desactivado).
También puede utilizar casillas de verificación en un grupo de opciones para presentar valores entre los cuales
elegir. También puede utilizar una casilla de verificación independiente en un cuadro diálogo personalizado para
aceptar la entrada de datos de los usuarios.
Cuadro combinado
Combina las características de un cuadro de lista y un cuadro de texto. Se puede escribir en el cuadro de texto o
seleccionar un elemento en el cuadro de lista para agregar un valor a un campo base.
Las filas para un cuadro de lista o cuadro combinado pueden venir desde una lista fija de valores que introduce
cuando crea el cuadro de lista o cuadro combinado (procedimiento utilizado cuando la lista no cambia muy a
menudo), o pueden venir de una tabla o consulta (procedimiento utilizado cuando la tabla se actualiza muy a
menudo). Por ejemplo, podría utilizar una lista fija para un cuadro de lista que contenga las entradas de Sr., Sra.,
Srta. Si, por otro lado, tiene un formulario de Productos y desea presentar un cuadro de lista que liste los prove-
edores de producto que van a cambiar muy frecuentemente, base el cuadro de lista en una tabla o consulta. El
cuadro de lista busca los valores en la tabla de Proveedores y presenta los nombres de los proveedores para que
se pueda elegir.
Cuando un usuario selecciona un valor en el cuadro de lista o cuadro combinado, tiene dos opciones. Puede
guardar el valor seleccionado en una tabla (no en la misma tabla de donde la lista toma las filas) o puede pasar el
valor a otro control. Por ejemplo, para el cuadro de lista de Proveedores, si un usuario selecciona "Pavlova, Ltd-
.", Access busca el valor de la clave principal (IdProveedor) para Pavlova, Ltd. en la tabla Proveedores y estab-
lece el campo IdProveedor (la clave exterior) para el registro actual en la tabla Productos para el mismo valor.
Este es el valor que se guarda. Puesto que se guarda un valor basado en una selección en el cuadro de lista, el
cuadro de lista es dependiente. (Observe que el valor del NombreProveedor de la tabla Proveedores se muestra
en el cuadro de lista pero no se almacena.)
Si, por otra parte, desea utilizar el valor seleccionado en el cuadro de lista o cuadro combinado para determinar
el contenido de otro control o controles, necesita crear un cuadro de lista o cuadro combinado independiente. Por
ejemplo, puede desear crear un cuadro de lista o cuadro combinado que pueda utilizar para buscar un registro
relacionado en un formulario. O puede desear crear un cuadro de lista o cuadro combinado para filtrar los regis-
tros en otro cuadro de lista o cuadro combinado.
GUIA ACCESS
Crear un cuadro de lista dependiente o cuadro combinado que muestre valores fijos:
Cree un Campo de búsqueda en la vista Diseño de la tabla.:
Para insertar el campo dentro de la tabla, haga clic en la fila situada debajo del lugar donde desea agregar el
campo y, a continuación, haga clic en Insertar filas en la barra de herramientas.
Para agregar el campo al final de la tabla, haga clic en la primera fila en blanco.
En la columna Nombre del campo, escriba el nombre del campo siguiendo las reglas para nombrar objetos de
Access.
En la columna Tipo de datos, haga clic en la flecha y seleccione Asistente para búsquedas.
En el primer cuadro de diálogo del Asistente para búsquedas, haga clic en la opción que indica que escribirá los
valores que desee.
Haga clic en Siguiente y siga las instrucciones de los restantes cuadros de diálogo del Asistente para búsquedas.
Nota: Cuando se utiliza el Asistente para búsquedas para crear una lista de valores fijos, Access establece dete-
rminadas propiedades del campo según las selecciones realizadas en el asistente. Una vez creado el campo, si
agrega el campo a un formulario, Access copia su definición al formulario. No tendrá que crear el cuadro com-
binado o el cuadro de lista ni su definición de lista de valores para el formulario. No obstante, si cambia la def-
nición del campo de lista de valores de la tabla después de agregarlo a un formulario, esos cambios no se refle-
jarán en el formulario. Para corregir esta situación, elimine el campo del formulario y agréguelo de nuevo.
Nota Puede crear un cuadro de lista o cuadro combinado de búsqueda sin crear un campo de búsqueda, aunque
si crea un campo de búsqueda en la vista Diseño de la tabla, sólo necesita crear el cuadro de lista o cuadro com-
binado una vez. Puede entonces utilizar la misma lista de consultas en cualquier formulario. Si no tiene pensado
utilizar la misma lista de búsqueda en más de un formulario, puede utilizar el Asistente para cuadros de Lista o el
Asistente para cuadros Combinados en la vista Diseño del formulario.
Haga una de las siguientes cosas:
· Cree un nuevo formulario basado en un origen de registros que incluya el campo de búsqueda que ha
creado en el paso 1. Access crea de forma automática el cuadro de lista o cuadro combinado de búsqueda.
· Abra un formulario existente basado en un origen del registro que incluya el campo de búsqueda que ha
creado en el paso 1. En la vista Diseño del formulario, haga clic en Lista de campos en la barra de herramientas
para presentar la lista de campos y, a continuación, arrastre el campo de búsqueda desde la lista de campos al
formulario. Access crea de forma automática el cuadro de lista o cuadro combinado de búsqueda.
Crear un cuadro de lista o cuadro comb. dependiente que muestre los valores de una tabla o consulta:
Cree un Campo de búsqueda en la vista Diseño de la tabla. Debe definir la lista de campos de la búsqueda en una
tabla que contendrá la clave exterior. Por ejemplo, si desea crear un campo de búsqueda para la tabla Proveedor-
es en un formulario Productos, defina el campo de búsqueda en la tabla Productos.
Haga una de las siguientes cosas:
· Cree un nuevo formulario basado en un origen del registro que incluye el campo de búsqueda que ha
creado en el paso 1. Access crea de forma automática el cuadro de lista o cuadro combinado de búsqueda.
· Abra un formulario existente basado en un origen del registro que incluya el campo de búsqueda que ha
creado en el paso 1. En la vista Diseño del formulario, haga clic en Lista de campos en la barra de herramientas
para presentar la lista de campos y, a continuación, arrastre el campo de búsqueda desde la lista de campos al
formulario. Access crea automáticamente el cuadro de lista o cuadro combinado de búsqueda.
Cuando utilice un asistente para crear un cuadro de lista o cuadro combinado basado en una tabla o consulta,
Access creará una instrucción SQL basada en los campos que ha seleccionado y establecerá la propiedad Orige-
nDeLaFila del control a esa instrucción SQL. Si el cuadro de lista o cuadro combinado no está ordenado en el
orden que el usuario desea, es posible modificar la instrucción SQL haciendo clic en el botón Generar cercano a
la propiedad OrigenDeLaFila.
Crear un cuadro de lista o cuadro combinado independiente que muestre valores fijos:
Asegúrese de que la herramienta Asistente para controles está presionada en el cuadro de herramientas.
Haga clic en la herramienta Cuadro de lista o en la herramienta Cuadro combinado en el cuadro de herramient-
as.
En el formulario, haga clic en donde desee colocar el cuadro de lista o cuadro combinado.
Siga las instrucciones en los cuadros de diálogo del asistente. Cuando el asistente le pregunte cómo desea obten-
er los valores de la lista, seleccione la opción que indica que el usuario escribirá los valores que crearán la lista.
Cuando el asistente pregunte si desea guardar los valores o recordarlos para una utilización futura, seleccione la
opción que indica que el usuario los recordará para utilizarlos posteriormente.
Crear un cuadro de lista o cuadro comb. independiente que muestre los valores de una tabla o consulta:
Asegúrese de que la herramienta Asistentes para controles está presionada en el cuadro de herramientas.
Haga clic en la herramienta Cuadro de Lista o en la herramienta Cuadro combinado en el cuadro de herramient-
as. En el formulario, haga clic donde desee colocar la lista.
Siga las instrucciones en los cuadros de diálogo del asistente. Cuando el asistente le pregunte cómo desea obten-
er los valores de la lista, seleccione la opción que indica que desea que el cuadro combinado o el cuadro de lista
busque los valores en la tabla o consulta. Cuando el asistente pregunte si desea guardar los valores o recordarlos
para una utilización futura, seleccione la opción que indica que los recordará para utilizarlos posteriormente.

GUIA ACCESS
Nota: Cuando utilice un asistente para crear un cuadro de lista o cuadro combinado basado en una tabla o consu-
lta, Access creará una instrucción SQL basado en los campos que ha seleccionado y establecerá la propiedad
OrigenDeLaFila del control a esa instrucción SQL. Si el cuadro de lista o cuadro combinado no está ordenado en
el orden que el usuario desea, es posible modificar la instrucción SQL haciendo clic en el botón Generar cercano
a la propiedad OrigenDeLaFila.
Buscar un registro seleccionando un valor de una lista
En un formulario, puede crear un cuadro de lista o un cuadro combinado que busque un registro cuando selecc-
ione un valor de la lista.
1 Abra el formulario en la vista Diseño.
2 Haga clic en Asistentes para controles del cuadro de herramientas si no está presionado.
3 En el cuadro de herramientas, haga clic en Cuadro de lista o en Cuadro combinado
4 En el formulario, haga clic donde desee situar el cuadro de lista o el cuadro combinado.
5 En el primer cuadro de diálogo del asistente, haga clic en la opción para buscar un registro basándose en
el valor que ha seleccionado en el cuadro de lista o en el cuadro combinado.
6 Siga las instrucciones en los cuadros de diálogo del asistente. En el último cuadro de diálogo, haga clic
en Terminar para mostrar el cuadro de lista o el cuadro combinado en la vista Diseño.
Si desea ver el procedimiento de evento que hace que funcione el cuadro de lista o el cuadro combinado, abra la
hoja de propiedades del cuadro y, a continuación, haga clic en el botón Generar situado al lado del cuadro de la
propiedad Después de actualizar (AfterUpdate).
Algunas Propiedades de Cuadro de Lista/Combinado (Datos)
Ver Pág 19, Propiedades de Cuadros de lista o combinados, para resumen.
Propiedades TipoDeOrigenDeLaFila (RowSourceType) y OrigenDeLaFila (RowSource)
Las propiedades TipoDeOrigenDeLaFila (RowSourceType) y OrigenDeLaFila (RowSource) se pueden utilizar
juntas para mostrar a Access cómo suministrar datos a un cuadro de lista, a cuadro combinado o un objeto OLE
no dependiente, como por ejemplo un gráfico. Por ejemplo, para mostrar filas de datos en un cuadro de lista
desde una consulta llamada ListaClientes, configure la propiedad RowSourceType del cuadro de lista a Tabla-
/Consulta y su propiedad OrigenDeLaFila (RowSource) a la consulta llamada ListaClientes.
Valores
La propiedad TipoDeOrigenDeLaFila (RowSourceType) utiliza los siguientes valores.
Valor Descripción
Tabla/Consulta (Predeterminado) Los datos son de una tabla, consulta o instrucción SQL especificados por el
valor de OrigenDeLaFila(RowSource).
Lista de valores Los datos son una lista de elementos especificados por el valor de OrigenDeLaFila-
(RowSource).
Lista de campos Los campos son una lista de nombres de campos de una tabla, consulta o instrucción SQL
especificados por el valor de OrigenDeLaFila(RowSource).
Nota La propiedad TipoDeOrigenDeLaFila (RowSourceType) se puede también establecer con una función
definida por el usuario. El nombre de la función se introduce sin que le preceda un signo igual (=) y sin que le
siga el par de paréntesis. Es necesario suministrar los argumentos de código específicos de la función para indic-
ar a Access cómo rellenar el control.
El valor de la propiedad OrigenDeLaFila (RowSource) depende del valor de la propiedad TipoDeOrigenDeLaF-
ila (RowSourceType).
Para establecer el valor de
TipoDeOrigenDeLaFila
(RowSourceType)
Introduzca en OrigenDeLaFila (RowSource)
Tabla/consulta Un nombre de tabla, un nombre de consulta o una instrucción SQL.
Lista de valores Una lista de elementos usando puntos y comas (;) como separadores.
Lista de campos Un nombre de tabla, un nombre de consulta o una Instrucción SQL.
Nota Si la propiedad TipoDeOrigenDeLaFila (RowSourceType) se establece a una función definida por el
usuario, la propiedad OrigenDeLaFila (RowSource) puede dejarse en blanco.
Las propiedades TipoDeOrigenDeLaFila (RowSourceType) y OrigenDeLaFila (RowSource) se pueden establec-
er usando la hoja de propiedades del control, con una macro o usando Visual Basic.
Para los campos de tabla, estas propiedades se pueden establecer en la ficha Buscar en la sección Propiedades del
campo de la vista Diseño de la tabla para los campos estableciendo la propiedad Mostrar control a un cuadro
combinado o cuadro de lista.
Nota Access establece estas propiedades automáticamente cuando se selecciona el Asistente para consultas
como el tipo de datos para un campo en la vista Diseño de la tabla.
En Visual Basic, establezca la propiedad TipoDeOrigenDeLaFila (RowSourceType) usando una expresión de
cadena con uno de estos valores: "Tabla/consulta", "Lista de valores" o "Lista de campos". Una expresión de
cadena también se usa para establecer el valor de la propiedad OrigenDeLaFila (RowSource). Para establecer la
propiedad TipoDeOrigenDeLaFila (RowSourceType) a una función definida por el usuario, introduzca el nom-
re de la función.
GUIA ACCESS
Comentarios
Cuando se tiene un número limitado de valores que no cambian, se puede establecer la propiedad TipoDeOrige-
nDeLaFila (RowSourceType) a Lista de valores y luego introducir los valores que conforman la lista en la propi-
edad OrigenDeLaFila (RowSource).
Cuando se crea una función definida por el usuario para insertar elementos en un cuadro de lista o cuadro com-
binado, Access llama a la función repetidamente para obtener la información que necesita. Las funciones Tip-
DeOrigenDeLaFila (RowSourceType) definidas por el usuario deben ser escritas en un formato de función muy
específico.
Propiedad ColumnaDependiente (BoundColumn)
Al realizar una selección en un cuadro de lista o un cuadro combinado, la propiedad ColumnaDependiente (Bou-
ndColumn) indica a Access la columna cuyos valores debe utilizar como valor del control. Si el control depende
de un campo, el valor de la columna especificada por la propiedad ColumnaDependiente (BoundColumn) se
almacena en el campo indicado en la propiedad OrigenDelControl (ControlSource).
Valores
La propiedad ColumnaDependiente (BoundColumn) puede tener los valores siguientes:
Valor Descripción
0 El valor de la propiedad ListIndex, en lugar del valor de la columna, se almacena en el registro actual.
El valor de la propiedad ListIndex de la primera fila es 0, de la segunda fila es 1, etc. Access establece la propi-
edad ListIndex cuando se selecciona un elemento de un cuadro de lista o de la parte de cuadro de lista de un
cuadro combinado. El establecimiento de la propiedad ColumnaDependiente (BoundColumn) a 0 y el uso del
valor de la propiedad ListIndex del control pueden resultar útiles si, por ejemplo, sólo tiene interés en almacenar
una secuencia de números.
1 ó mayor (El valor predeterminado es 1). El valor de la columna especificada se convierte en el valor del
control. Si el control depende de un campo, este valor se almacena en ese campo en el registro actual. La propi-
edad ColumnaDependiente (BoundColumn) no puede establecerse a un valor mayor que el valor de la propiedad
NúmeroDeColumnas (ColumnCount).
Puede establecer la propiedad ColumnaDependiente (BoundColumn) mediante la hoja de propiedades del contr-
ol, una macro o Visual Basic.
Para los campos de tabla, puede establecer esta propiedad en la ficha Búsqueda de la sección Propiedades del
campo de la vista Diseño de la tabla para los campos cuya propiedad Mostrar control esté establecida a Cuadro
combinado o a Cuadro de lista.
Sugerencia Access establece la propiedad ColumnaDependiente (BoundColumn) automáticamente al selec-
cionar Asistente para búsquedas como tipo de datos de un campo en la vista Diseño de la tabla.
En Visual Basic, establezca la propiedad ColumnaDependiente (BoundColumn) utilizando un número o una
expresión numérica cuyo valor se encuentre entre 0 y el valor de la propiedad NúmeroDeColumnas (ColumnCo-
unt).
Comentarios
La columna visible más a la izquierda de un cuadro combinado (la columna situada más a la izquierda cuyo valor
de la propiedad AnchuraDeColumnas (ColumnWidths) del cuadro combinado no sea 0) contiene los datos que
aparecen en el cuadro de texto que forma parte del cuadro combinado en la vista Formulario o en un informe. La
propiedad ColumnaDependiente (BoundColumn) determina la columna cuyo valor del cuadro de texto o el cua-
dro combinado se almacenará al realizar una selección. Esto permite mostrar datos diferentes de los almacenados
como el valor del control.
Nota Si la columna dependiente no es la misma que la columna visible situada más a la izquierda del control (o
si establece la propiedad ColumnaDependiente (BoundColumn) a 0), la propiedad LimitarALista (LimitToList)
se establece a Sí.
Access utiliza números basados en cero para hacer referencia a las columnas de la propiedad Columna (C olum-
n). Es decir, se hace referencia a la primera columna mediante la expresión Column(0); se hace referencia a la
segunda columna mediante la expresión Column(1); etc. No obstante, la propiedad ColumnaDependiente (Boun-
dColumn) utiliza números basados en 1 para hacer referencia a las columnas. Esto quiere decir que si la propi-
edad ColumnaDependiente (BoundColumn) está establecida a 1, puede tener acceso al valor almacenado en esa
columna mediante la expresión Column(0).
Si la propiedad ExpansiónAutomática (AutoExpand) está establecida a Sí, Access introduce automáticamente
un valor en la parte del cuadro de texto del cuadro combinado que coincide con un valor de la lista del cuadro
combinado a medida que el usuario escribe el valor.
Cuadro de lista
Presenta una lista de valores desplazable. En la vista Formulario, se puede seleccionar de la lista para introducir
un valor en un nuevo registro o para cambiar un valor en un registro existente.
Ver Cuadro Combinado.
Botón de comando
Se utiliza para realizar acciones; por ejemplo localizar un registro, imprimir un registro o aplicar un filtro de
formulario.

GUIA ACCESS
Es posible crear su propio botón de comando o puede hacer que Access cree el botón de comando utilizando un
asistente. Un asistente aligera el proceso de crear un botón de comando porque lleva a cabo todo el trabajo de
tipo básico a realizar por el usuario. Cuando utiliza un asistente, Access le pide información y crea un botón de
comando basado en sus respuestas.
Con el Asistente para botones de comando puede crear más de 30 tipos diferentes de botones de comandos. Por
ejemplo, puede crear un botón de comando que busca un registro, imprime un registro, o aplica un filtro de un
formulario.
También es una buena idea utilizar el Asistente para botones de comando si desea aprender cómo escribir proce-
dimientos de evento. Cuando Access crea un botón de comando con un asistente, crea un procedimiento evento
y lo adjunta al botón. Puede abrir el procedimiento de evento para ver cómo funciona y modificarlo para que se
ajuste a sus necesidades.
Crear un botón de comando sin usar un asistente: (Botón Asistente de Cuadro de Herramientas desactivado)
En el formulario, haga clic donde desee colocar el botón de comando.
Asegúrese de que el botón de comando está seleccionado y haga clic en Propiedades para abrir su hoja de propi-
edades.
En el cuadro de la propiedad AlHacerClic (OnClick), escriba el nombre de la macro o procedimiento de evento
que desee ejecutar cuando se haga clic en el botón, o bien haga clic en el botón Generar para utilizar el Gener-
ador de macros o el Generador de código.
Botón de Comando prop. Al hacer Clic: nombre de Macro o Función.
Mejor crear arrastrando la Macro.
Un evento es una acción determinada que se produce en, o con, un objeto particular. Access puede responder a
una variedad de eventos: clics del ratón, cambios en los datos, formularios que se abren o se cierran, y muchos
otros. Los eventos son normalmente el resultado de una acción del usuario.
Usando un procedimiento de evento o una macro, se pueden agregar respuestas personalizadas a un evento que
se produzca en un formulario, informe, o control.
Suponga que desea que un formulario Detalles de producto se abra cuando haga clic en un botón de comando
Detalles de producto en un formulario Pedidos. Los siguientes ejemplos muestran cómo hacer esto usando un
procedimiento de evento o usando una macro.
Responder al evento Al hacer clic usando un procedimiento de evento:
Cuando se crea un procedimiento de evento para un objeto, Access agrega una plantilla de procedimiento de
evento nombrada para el evento y el objeto al módulo de formulario o módulo de informe. Todo lo que necesita
hacer es agregar código que responda de la forma que desee cuando se produzca el evento en el formulario o
informe.
Responder al evento Al hacer clic usando una macro:
Para hacer que se ejecute una macro en respuesta a un evento, abra la hoja de propiedades para el formulario,
informe, o control. Busque la propiedad que corresponda al evento, y establézcala a la macro que desee ejecutar.
Si desea presentar texto en el botón de comando, escriba el texto en el cuadro de la propiedad Título (Caption).
Si no desea texto en el botón, puede utilizar en su lugar una imagen.
Sugerencia También puede crear un botón de comando que ejecute una macro arrastrando la macro desde la
ventana Base de datos a la vista Diseño del formulario.
Crear un botón de comando para abrir y sincronizar, cerrar o imprimir un formulario:
1 Abra un formulario en la vista Diseño del formulario.
2 Haga clic en la herramienta Asistentes para controles en el Cuadro de herramientas si no está ya presi-
onada.
3 En el Cuadro de herramientas, haga clic en la herramienta Botón de comando .
4 En el formulario, haga clic en donde desee colocar el botón de comando.
5 En el primer cuadro de diálogo del asistente, haga clic en Operaciones con formularios en el cuadro de
Categorías, y a continuación haga clic en el tipo de botón que desee crear en el cuadro Acciones.
6 Siga las instrucciones de los cuadros de diálogo del asistente. En el último cuadro de diálogo, haga clic
en Terminar para presentar el botón de comando en la vista Diseño.
Si desea ver el procedimiento de evento que pone en funcionamiento al botón, haga clic en el botón Generar en
la propiedad AlHacerClic (OnClick) del botón de comando.
Imagen
Se utiliza para presentar una imagen estática en un formulario o informe. Dado que una imagen estática no es un
objeto OLE, no se puede modificar la imagen dentro de Access una vez que ha sido incluida en un formulario o
informe.
En el cuadro de diálogo Insertar imagen, haga clic en el nombre de archivo cuya imagen desea agregar. Podría
necesitar utilizar el cuadro Buscar en para especificar la unidad y la carpeta donde se encuentra la imagen.
Access crea un control de imagen y presenta la imagen en el control.
Nota: Puede ajustar el tamaño y proporciones de un objeto después de que lo haya pegado (Propiedades).
· Recortar. Presenta la imagen con su tamaño real. Si la imagen es mayor que el área dentro de los már-
genes, la imagen se recorta.

GUIA ACCESS
· Extender. Hace la imagen del tamaño del área dentro de los márgenes. Esto puede distorsionar la ima-
gen.
· Zoom. Presenta la imagen entera después de cambiarle el tamaño para ajustar o bien el alto o bien el an-
cho al área de los márgenes. Esta opción no distorsiona la imagen.
Cuando agrega una imagen a un control de imagen, Access inserta la imagen de modo predeterminado. Cuando
se inserta una imagen forma parte del archivo de base de datos. Si piensa utilizar la misma imagen en varios
formularios e informes, es posible que desee vincular la imagen en lugar de insertarla. Cuando vincula una ima-
gen, sólo guarda la imagen una vez. Para vincular una imagen, establezca la propiedad TipoDeImagen para el
control de imagen a Vinculado.
Agregar una imagen u otro objeto a un formulario o informe:
Es posible agregar objetos o partes de objetos que haya creado en otras aplicaciones a un formulario o informe
de Access. Por ejemplo, puede agregar una imagen que haya creado con Paint, una hoja de cálculo que haya
creado con Excel, o un documento Word que haya creado con Word. Puede agregar toda la información de un
archivo o solamente determinada información seleccionada.
Cómo agregar una imagen o un objeto depende de si desea que el objeto sea dependiente o independiente. Un
objeto dependiente se guarda en una tabla. Cuando se mueva a un nuevo registro, el objeto presentado en el
formulario o informe cambia. Por ejemplo, es posible querer guardar una foto de cada uno de los empleados de
su compañía. Un objeto independiente, por su parte, se guarda en el diseño del formulario o del informe. Cuando
se mueve a un nuevo registro, el objeto no cambia. Por ejemplo, se puede agregar un logotipo que ha creado con
Paint a un formulario o informe.
Marco de objeto independiente
Se utiliza para presentar un objeto OLE independiente, como una hoja de cálculo de Excel, en un formulario o
informe. El objeto permanece constante mientras usted se desplaza de registro en registro.
Es posible agregar objetos o partes de objetos que haya creado en otras aplicaciones a un formulario o informe
de Access. Por ejemplo, puede agregar una imagen que haya creado con Paint, una hoja de cálculo que haya
creado con Excel, o un documento Word que haya creado con Word. Puede agregar toda la información de un
archivo o solamente determinada información seleccionada.
Cómo agregar una imagen o un objeto depende de si desea que el objeto sea dependiente o independiente. Un
objeto dependiente se guarda en una tabla. Cuando se mueva a un nuevo registro, el objeto presentado en el
formulario o informe cambia. Por ejemplo, es posible querer guardar una foto de cada uno de los empleados de
su compañía. Un objeto independiente, por su parte, se guarda en el diseño del formulario o del informe. Cuando
se mueve a un nuevo registro, el objeto no cambia. Por ejemplo, se puede agregar un logotipo que ha creado con
Paint a un formulario o informe.
Insertar un objeto independiente existente
Abra un formulario en la vista Diseño o un informe en la vista Diseño.
Sobre el formulario o informe, haga clic donde desee insertar el objeto.
En el cuadro de diálogo Insertar Objeto, haga clic en Crear desde archivo, y especifique la ruta de acceso del
archivo. Si no conoce la ruta de acceso, puede hacer clic en Examinar.
Seleccione la opción Mostrar como icono si desea que el objeto aparezca como un icono en vez de como el pro-
pio objeto. Mostrar como icono un objeto puede ser útil cuando el objeto contiene información adicional que no
tiene que ser presentada. Mostrar como icono un objeto utiliza menos espacio en disco.
Si la aplicación que está copiando permite editar el objeto OLE utilizando arrastrar y soltar, puede arrastrar el
archivo directamente desde el Explorador de Windows o desde el escritorio en vez de utilizar la herramienta
Marco de objeto independiente.
En muchos casos, se editará un objeto independiente en la vista Diseño del formulario o informe. Si desea poder
editar también el objeto en la vista Formulario, establezca la propiedad Activado (Enabled) del marco de objeto
independiente a Sí y la propiedad Bloqueado (Locked) a No.
Marco de objeto dependiente
Se utiliza para mostrar los objetos OLE; por ejemplo una serie de imágenes, en un formulario o informe. Este
control es para objetos almacenados en un campo del origen de registros base del formulario o informe. A med-
da que se desplaza de registro en registro, se presenta un objeto diferente en el formulario o informe.
Agregar un objeto dependiente a un formulario o informe:
Puede agregar un objeto dependiente a un formulario o informe como un objeto insertado o como un objeto
vinculado.
Cuando inserta un objeto en un formulario o informe, Access guarda el objeto en su archivo de base de datos. Si
modifica un objeto desde su formulario o informe, el objeto se cambia en su base de datos. Por esta razón, un
objeto insertado está siempre disponible.
Cuando vincula un objeto, puede ver y modificar el objeto desde su formulario o informe, pero los cambios se
almacenan en el archivo original del objeto, no en su archivo de la base de datos. También puede modificar el
archivo del objeto de forma separada y hacer que los últimos cambios le aparezcan la próxima vez que abra el
formulario o informe. La vinculación de un objeto es muy útil para los archivos muy grandes que no desea incl-
uir en su base de datos, y para los archivos que desee utilizar en varios formularios e informes, aunque si un
archivo de objeto vinculado es movido, tiene que reconectar el vínculo de nuevo.
GUIA ACCESS
Insertar un objeto dependiente existente
Si todavía no lo ha hecho, cree un marco de objeto dependiente en un formulario.
Cambie a la vista Formulario o la vista Hoja de datos.
Muévase al registro en el que desea insertar el objeto y haga clic en el campo del objeto OLE.
En el menú Insertar, haga clic en Objeto.
En el cuadro de diálogo Insertar Objeto, haga clic en Crear desde archivo y, a continuación, especifique una ruta
de acceso hacia el archivo. Si no conoce la ruta de acceso, haga clic en Examinar.
Seleccione la casilla de verificación Vincular, si desde vincularlo.
Seleccione la opción Mostrar como icono si desea que el objeto aparezca como un icono en vez de como el pro-
pio objeto. Mostrar como icono un objeto puede ser útil cuando el objeto contiene información adicional que no
tiene que ser presentada. Mostrar como icono un objeto utiliza menos espacio en disco.
Haga clic en Aceptar.
Si se encuentra en la vista Formulario, Access presenta el objeto. Si se encuentra en la vista Hoja de datos,
Access presenta el nombre del objeto, por ejemplo, "Imagen de mapa de bits".
Si necesita editar el objeto, haga doble clic en él.
Nota: Si la aplicación que está copiando admite la edición de OLE de arrastrar y soltar, puede arrastrar el archivo
directamente desde el Explorador de Windows o desde el escritorio en vez de utilizar el comando Objeto.
Puede ajustar el tamaño y proporciones de un objeto después de que lo haya pegado
También puede insertar un objeto dependiente en una hoja de datos de una tabla o consulta.
Salto de página
Se utiliza para comenzar una nueva pantalla en un formulario, una nueva página en un formulario impreso o una
nueva página de un impreso.
Crear un formulario con más de una página (pantalla)
Haga clic en el formulario en el lugar donde desea situar el fin de página. Sitúe el fin de página por encima o por
debajo de un control para evitar cortar los datos de ese control.
Access marca el fin de página en el borde izquierdo del formulario con una pequeña línea de puntos.
Nota: Si desea que todas las páginas tengan el mismo tamaño y que cada ventana muestre solamente una pág-
na, diseñe el formulario de modo que los fines de página estén a la misma distancia unos de otros. Para ello, sitúe
los controles de fin de página mediante la regla vertical.
Haga doble clic en el selector de formularios para abrir la hoja de propiedades y, a continuación, haga clic en
Página activa en el cuadro de la propiedad Ciclo (Cycle). Cuando la propiedad Ciclo (Cycle) está establecida a
Página activa, no se puede presionar la tecla TAB para desplazarse entre páginas.
Quite la barra de desplazamiento vertical estableciendo la propiedad BarrasDeDesplazamiento (ScrollBars) a
Sólo horizontal o a Ninguna.
Cambie a la vista Formulario para probar el formulario y cambiar su tamaño de modo que, cada vez, sólo pueda
ver una página. Puede presionar las teclas RE PÁG o AV PÁG para desplazarse por las páginas.
Nota: Es posible que también desee establecer otras propiedades en la vista Diseño. Por ejemplo, puede que
desee establecer la propiedad EstiloDeLosBordes (BorderStyle) a Fino para que no se permita cambiar el tamaño
del formulario y también es posible que desee establecer la propiedad BotonesMinMax (MinMaxButtons) a
Ninguno para que el formulario no presente botones Minimizar y Maximizar. Además, cabe la posibilidad de
que desee agregar un botón de comando a cada página que pueda utilizarse para mover el enfoque a la página
siguiente o a la página anterior. Para ver un ejemplo de este tipo de botón de comando, vea el formulario Emple-
ados de la base de datos de ejemplo Neptuno.
Un fin de página está activo en la vista Formulario sólo cuando la propiedad PresentaciónPredeterminada (Defa-
ultView) del formulario tiene el valor Formulario simple.
Para los formularios utilizados en la vista Formulario, el fin de página marca hasta dónde se desplazará el for-
ulario al presionar RE PÁG o AV PÁG. En los formularios impresos, el fin de página marca el principio de una
nueva página dentro de una sección. Para empezar una página al principio de una sección, utilice la propiedad
ForzarNuevaPágina (ForceNewPage) de la sección.
Control ficha
Utilice este control para crear un formulario con fichas de varias páginas (como el formulario Empleados de la
base de datos Neptuno) o un cuadro de diálogo con fichas (como el cuadro de diálogo Opciones del menú Herr-
amientas). Puede copiar o agregar otros controles a un control ficha. Haga clic con el botón secundario del ratón
en el control Ficha de la cuadrícula de diseño para modificar el número de páginas, el orden de las páginas, las
propiedades de la página seleccionada y las propiedades del control ficha seleccionado.
En el cuadro de herramientas, haga clic en la herramienta Control ficha y, a continuación, haga clic en el formu-
lario en el que desea situar el control.
Access agrega un control ficha con dos páginas. La primera página se encuentra en la parte superior.
Para agregar controles al control ficha, haga clic en la ficha de la página a la que desea agregar los controles. A
continuación, agregue los controles mediante uno de los métodos siguientes:
Haga clic en Lista de campos en la barra de herramientas para mostrar la lista de campos y arrastre
uno o más campos a la página de la ficha.

GUIA ACCESS
· Haga clic en una herramienta del cuadro de herramientas y haga clic en la página de la ficha. Puede
agregar cualquier tipo de control excepto otro control ficha.
· Copie controles de otra parte del formulario o de otra página (sin embargo, no es posible arrastrar contr-
oles de otra parte de un formulario o de otra página).
Éstas son otras operaciones que quizá desee realizar:
· Para cambiar el nombre de una ficha, haga doble clic en la página que desea cambiar para abrir su hoja
de propiedades y especifique un nuevo nombre en la propiedad Título (Caption). Si no especifica un nombre en
la propiedad Título (Caption), Access utiliza el valor de la propiedad Nombre (Name).
· Para agregar, eliminar o cambiar el orden de las fichas, haga clic en el borde del control ficha con el
botón secundario del ratón (ratón) y, a continuación, haga clic en Insertar página, Eliminar página u Orden de las
páginas.
· Para cambiar el orden de tabulación de los controles de una página, haga clic en la página con el botón
secundario del ratón y haga clic en Orden de tabulación.
· Para cambiar el nombre de la fuente, el tamaño de la fuente, etc., de las páginas, haga doble clic en el
borde del control ficha para abrir su hoja de propiedades y a continuación establezca las propiedades correspon-
dientes. No es posible especificar configuraciones diferentes para cada página.
Ajuste el tamaño del control ficha según sea apropiado. Haga clic en cada ficha para asegurarse de que todos los
controles caben en ella.
Nota: Access no recorta los controles al ajustar el tamaño del control ficha. Es posible que tenga que mover los
controles para poder reducir el tamaño del control ficha.
Subformulario/Subinforme
Se utiliza para presentar los datos procedentes de más de una tabla en un formulario o informe.
Crear un formulario y un subformulario al mismo tiempo:
Antes de utilizar este procedimiento, asegúrese de que ha configurado la tabla de relaciones correctamente.
1 En cualquier ventana de Access, haga clic en la flecha situada al lado del botón Nuevo objeto, luego
seleccione Formulario.
2 En el cuadro de diálogo Nuevo formulario, haga doble clic en Asistente para formularios.
3 En el primer cuadro de diálogo del asistente, seleccione de la lista una tabla o una consulta. Por ejemp-
lo, para crear un formulario Categorías que presente los productos de cada categoría en un subformulario, selec-
cione la tabla Categorías (la parte "uno" de la relación uno a varios).
4 Haga doble clic en los campos que desee incluir de esta tabla o consulta.
5 En el mismo cuadro de diálogo del asistente, seleccione otra tabla o consulta de la lista. Utilizando el
mismo ejemplo, seleccione la tabla Productos (la parte "varios" de la relación uno a varios del formulario Categ-
orías de ejemplo).
Nota: Da igual que elija primero una tabla o una consulta.
6 Haga doble clic en los campos que desee incluir de esta tabla o consulta.
7 Cuando haga clic en Siguiente, si ha establecido las relaciones correctamente antes de iniciar el asistent-
e, el asistente preguntará qué tabla o consulta desea ver. Utilizando el mismo ejemplo, que para crear el formu-
lario Categorías, seleccione por Categorías.
8 En el mismo cuadro de diálogo, seleccione la opción Formulario con subformularios.
9 Siga las indicaciones de los cuadros de diálogo restantes. Cuando seleccione Terminar, Access crea dos
formularios, uno para el formulario principal y el control del subformulario y otro para el subformulario.
Crear un subformulario y agregarlo a un formulario existente:
Antes de utilizar este procedimiento, asegúrese de que ha configurado la tabla de relaciones correctamente.
1 Abra en vista Diseño el formulario que desee agregar al subformulario.
2 Asegúrese de que la herramienta Asistentes para controles en el cuadro de herramientas está presionada.
3 Haga clic en la herramienta Subformulario/Subinforme del cuadro de herramientas.
4 En el formulario, haga clic en el lugar donde desee colocar el subformulario.
5 Siga las indicaciones de los cuadros de diálogo del asistente.
6 Cuando seleccione Terminar, Access agrega un control de un subformulario al formulario. También
crea un formulario separado que el control del subformulario utiliza para presentar el subformulario.
Agregar un formulario existente a otro formulario también existente para crear un formulario con un subfo-
rmulario:
Antes de utilizar este procedimiento, asegúrese de que ha configurado la tabla de relaciones correctamente.
1 Abra el formulario que desee utilizar como el formulario principal en la vista Diseño. Normalmente será
un formulario basado en una tabla o una consulta en la parte "uno" de una relación uno a varios.
2 Asegúrese de que la herramienta Asistentes para controles esté presionada en el cuadro de herramientas.
3 Presione F11 para pasar a la ventana Base de datos.
4 Arrastre un formulario o una hoja de datos de la ventana Base de datos al formulario principal.
Access agrega un control de un subformulario al formulario. Si ha arrastrado un formulario presentado en la
vista Formulario, Access presenta el subformulario en esa vista. Si ha arrastrado un hoja de datos, Access mue-
stra el subformulario como una hoja de datos.
Vincular un formulario principal y un subformulario
GUIA ACCESS
Si crea un subformulario con el Asistente para formularios o con el Asistente para subformularios y subinformes,
Access vincula automáticamente el formulario principal con el subformulario según ciertas condiciones. Si el
formulario principal y el subformulario no satisfacen estas condiciones, puede utilizar este procedimiento para
vincularlos.
1 Abra el formulario principal en la vista Diseño.
2 Asegúrese de que el control del subformulario esté seleccionado, y luego haga clic en Propiedades en
la barra de herramientas para presentar la hoja de propiedades del control del subformulario.
3 En el cuadro de la propiedad Vincular campos secundarios (LinkChildFields), introduzca el nombre del
campo de vinculación del subformulario. Si no está seguro de qué es un campo de vinculación, haga clic en el
botón Generar para abrir el Vinculador de campos de subformularios y subinformes. Para introducir más de un
campo de vinculación, separe los nombre de los campos con puntos y comas (;). Si introduce más de un campo
de vinculación, debe introducir los campos en el mismo orden en las propiedades Vincular campos secundarios
(LinkChildFields) y Vincular campos principales (LinkMasterFields).
Nota No puede utilizar el nombre de un control en la propiedad VincularCamposSecundarios (LinkChildField-
s).
4 En el cuadro de la propiedad Vincular campos principales (LinkMasterFields) introduzca el nombre del
campo de vinculación en el formulario principal. Si no está seguro de qué es un campo de vinculación, haga clic
en el botón Generar para abrir el Vinculador de campos de subformularios y subinformes. Para introducir más de
un campo de vinculación, separe los nombre de los campos con puntos y comas (;). Si introduce más de un cam-
po de vinculación, debe introducir los campos en el mismo orden en las propiedades Vincular campos secundari-
os (LinkChildFields) y Vincular campos principales (LinkMasterFields).
Notas
· Los campos de vinculación no han de aparecer en el formulario principal ni en el subformulario, pero se
han de incluir en el origen de registros base. Si utiliza el Asistente para formularios al crear el subformulario;
Access incluye automáticamente los campos de vinculación en el origen de registros base incluso, si no los elige
en el asistente.
· Los campos de vinculación deben tener el mismo o un tipo compatible de tipo de datos o tamaño de
campo. Por ejemplo, un campo Autonumérico es compatible con un campo numérico cuya propiedad Tamaño
del campo esté establecida a Entero largo.

Ejemplo (diseño) de Formulario con datos en primer ejemplo de Consulta en Pág 26.

Para obtener una sola Sección y sus totales, según el Pie del formulario anterior:

Formulario con Botones de alternar en un Cuadro de opciones en que en sus Propiedades, en ficha Eventos, En
evento Al hacer clic, ejecuta la macro "Ver Botones" (ver imagen siguiente).
El Cuadro de texto independiente se utiliza como Variable de memoria con valor predeterminado 0 y nombre
ABIERTOS.

GUIA ACCESS
El Subformalario 12 es para mostrar el Total General (todas las Secciones) a partir del segundo ejemplo de
Consulta en Pág 26 y el diseño es:

Vista completa:

GUIA ACCESS
Algunas Propiedades de Subformulario/Subinforme (Datos)
Propiedad ObjetoOrigen (SourceObject)
Use la propiedad ObjetoOrigen (SourceObject) para identificar el formulario o informe origen del subformulario
o subinforme de un formulario o informe. También puede usar esta propiedad con marcos de objeto independie-
ntes vinculados para determinar la ruta completa y el nombre del archivo que contiene los datos vinculados al
marco de objeto.
Valores
Introduzca el nombre del formulario o informe origen del subformulario en la hoja de propiedades del control. Si
agrega un subformulario o subinforme a un formulario o informe arrastrándolo desde la ventana Base de datos,
la propiedad se establecerá automáticamente en la hoja de propiedades.
Para los marcos de objeto independientes, la propiedad ObjetoOrigen (SourceObject) se establece automáticam-
ente al utilizar el comando Objeto del menú Insertar para insertar un objeto OLE.
Para un subformulario o subinforme, puede establecer esta propiedad utilizando la hoja de propiedades del con-
trol, una macro o Visual Basic.
En Visual Basic, esta propiedad se establece usando una expresión de cadena que contiene el nombre de un for-
mulario o informe.
Para los marcos de objeto independientes vinculados, la propiedad ObjetoOrigen (SourceObject) no se puede
establecer en ninguna vista.
Nota No se puede establecer o modificar la propiedad ObjetoOrigen (SourceObject) en los eventos Open o
Format de un informe.
Comentarios
Si elimina el valor de la propiedad ObjetoOrigen (SourceObject) en la hoja de propiedades de un subformulario
o subinforme, el control permanecerá en el formulario pero ya no estará vinculado al formulario o informe ori-
gen.
Propiedades VincularCamposSecundarios (LinkChildFields) y VincularCamposPrincipales (LinkMasterFiel-
ds)
Use conjuntamente las propiedades VincularCamposSecundarios (LinkChildFields) y VincularCamposPrincipal-
es (LinkMasterFields) para especificar cómo Access vincula los registros de un formulario o informe con los
registros de un subformulario, subinforme u objeto incrustado, tales como un gráfico. Si se establecen estas pro-
iedades, Access actualiza automáticamente el registro vinculado del subformulario al cambiar a un nuevo regis-
tro del formulario principal.
Valores
Puede establecer la propiedades VincularCamposSecundarios (LinkChildFields) y VincularCamposPrincipales
(LinkMasterFields) del subformulario, subinforme u objeto incrustado de la siguiente forma:
· La propiedad VincularCamposSecundarios (LinkChildFields) Escriba el nombre de uno o más campos
de vinculación en el subformulario, subinforme u objeto incrustado.
· La propiedad VincularCamposPrincipales (LinkMasterFields): Escriba el nombre de uno o más campos
o controles de vinculación en el formulario o informe principales.
Puede utilizar el Vinculador de campos de subformulario/subinforme para establecer estas propiedades eligiendo
el botón Generar a la derecha del cuadro de la propiedad en la hoja de propiedades.
También puede establecer estas propiedades mediante una expresión de cadena en una macro o Visual Basic.
Sólo es posible establecer estas propiedades en la vista Diseño o durante el evento Open de un formulario o
informe.
Comentarios
No es necesario que tengan el mismo nombres los campos o controles que use para establecer estas propiedades,
pero han de contener la misma clase de datos y tener el mismo (o compatible) tipo de datos y tamaño de campo.
Por ejemplo, un campo AutoNumérico es compatible con un campo Numérico si la propiedad Tamaño del cam-
po del campo numérico es Entero largo.
Puede usar el nombre de un control (incluso el nombre de un control calculado) para establecer la propiedad
VincularCamposPrincipales (LinkMasterFields), pero no puede usar el nombre de un control para la propiedad
VincularCamposSecundarios (LinkChildFields). Si desea usar un valor calculado como el vínculo para un subfo-
rmulario, subinforme u objeto incrustado, defina un campo calculado en la consulta base del objeto secundario y
establezca la propiedad VincularCamposSecundarios (LinkChildFields) a ese campo.
Cuando especifique más de un nombre de campo o control para el valor de estas propiedades, ha de introducir el
mismo número de campos o controles para ambas propiedades y separar los nombres con un punto y coma (;).
Al crear un subformulario o subinforme arrastrando un formulario o informe desde la ventana Base de datos a
otro formulario o informe o usando el Asistente para formularios, Access automáticamente establece las propi-
edades VincularCamposSecundarios (LinkChildFields) y VincularCamposPrincipales (LinkMasterFields) bajo
las condiciones siguientes:
· Tanto el formulario o informe principal como el objeto secundario se basan en tablas y se ha definido
una relación entre estas tablas con el comando Relaciones. Access utiliza los campos que relacionan las dos
tablas como los campos de vinculación.
GUIA ACCESS
· El formulario o informe principal se basa en una tabla con una clave principal y el subformulario o
subinforme se basan en una tabla o consulta que contiene un campo con el mismo nombre y el mismo tipo de
datos (o compatible) que la clave principal. Access usa la clave principal de la tabla base del objeto principal y
el campo con el mismo nombre de la tabla o consulta base del objeto secundario como campos de vinculación.
Nota Los campos de vinculación no han de estar incluídos en el objeto principal o en el objeto secundario. Es
suficiente con que estén en las tablas o consultas base de los objetos, para que se puedan usar para vincular los
objetos. Si se usa un asistente, Access incluye automáticamente los campos de vinculación.
Línea:
Se utiliza en un formulario o informe, por ejemplo, para dar énfasis a la información relacionada o especialmente
importante.
Dibujar una línea en un formulario o un informe:
1 Abra un formulario en la vista Diseño o un informe en la vista Diseño.
2 Haga clic en la herramienta Línea en el cuadro de herramientas.
3 Haga clic en cualquier parte del formulario o informe para crear una línea de tamaño predeterminado o
bien haga clic y arrastre el ratón (ratón) para crear una línea del tamaño que desee.
Nota: Para dibujar líneas horizontales o verticales, haga clic en la herramienta Línea y, a continuación, arrastre
el ratón para crear la línea. Para realizar pequeños ajustes en la longitud o el ángulo de una línea, seleccione la
línea, mantenga presionada la tecla MAY y presione una de las teclas de dirección. Para efectuar pequeños ajust-
es en la ubicación de una línea, mantenga presionada la tecla CTRL y presione una de las teclas de dirección.
Para cambiar el grosor de una línea, seleccione la línea, haga clic en la flecha situada junto al botón Ancho de
línea o de borde en la barra de herramientas Formato y, a continuación, seleccione el grosor de línea que desee.
Para cambiar el estilo de línea (puntos, guiones, etc.) de una línea, seleccione la línea, haga clic en Propiedades
en la barra de herramientas para abrir la hoja de propiedades y, a continuación, seleccione un estilo de borde en
el cuadro de la propiedad EstiloDeLosBordes (BorderStyle).
Seleccionar línea y elegir Duplicar varias veces para crear líneas iguales (Ej.: líneas para escribir a mano)
Si necesario, utilizar Formato (Alinear). Para 3-D: Propiedades, Formato, Estilo Especial.
Rectángulo
Se utiliza para crear efectos gráficos, como agrupar un conjunto de controles de un formulario o resaltar los datos
importantes de un informe.
Dibujar un rectángulo en un formulario o un informe:
1 Abra un formulario en la vista Diseño o un informe en la vista Diseño.
2 Haga clic en la herramienta Rectángulo en el cuadro de herramientas.
3 Haga clic en cualquier parte del formulario o informe para crear un rectángulo de tamaño predetermina-
do o arrastre el ratón (ratón) para crear un rectángulo del tamaño que desee.
Nota: Para cambiar el grosor del borde de un rectángulo, seleccione el rectángulo, haga clic en la flecha situada
junto al botón Ancho de línea o de borde en la barra de herramientas Formato y, a continuación, seleccione el
grosor que desee. Para cambiar el estilo de línea (puntos, guiones, etc.) de un rectángulo, seleccione el rectá-
ngulo, haga clic en Propiedades en la barra de herramientas para abrir la hoja de propiedades y, a continuación,
seleccione un estilo de borde en el cuadro de la propiedad EstiloDeLosBordes (BorderStyle).
Cambiar las propiedades predeterminadas de un tipo de control
Cada tipo de control tiene un conjunto predeterminado de propiedades que determina la apariencia general y el
comportamiento de ese tipo de control. Por ejemplo, las propiedades predeterminadas de un cuadro de texto
determinan el tamaño y la fuente del cuadro de texto y si tiene una etiqueta adjunta. Este conjunto de propiedad-
es del control se denomina "estilo de control predeterminado". Es posible que desee cambiar el estilo de control
predeterminado de un tipo de control si observa que a menudo hace los mismos cambios en ese tipo de control
después de agregarlo a un formulario o un informe.
Por ejemplo, suponga que no desea crear etiquetas para los cuadros de texto que agrega a un nuevo formulario.
En lugar de eliminar la etiqueta cada vez que crea un cuadro de texto, puede cambiar el valor de la propiedad
Etiquetado automático a No en el estilo de control predeterminado del cuadro de texto.
Una vez que restablece el estilo de control predeterminado de un control, todos los controles posteriores de ese
tipo agregados al formulario o informe activos tendrán esa configuración de propiedades. El estilo de control
predeterminado se mantiene activo en ese formulario o informe hasta que lo cambie de nuevo.
Cambiar el estilo de control predeterminado de nuevos controles mediante la hoja de propiedades
1 Abra un formulario en la vista Diseño, o un informe en la vista Diseño.
2 En el cuadro de herramientas, elija la herramienta del tipo de control que desea cambiar. Por ejemplo, si
desea cambiar el estilo de control predeterminado de los cuadros de texto, elija la herramienta Cuadro de texto .
3 Presente la hoja de propiedades haciendo clic en Botón Propiedades en la barra de herramientas Diseño
Access cambia la barra de título de la hoja de propiedades para indicar que ha abierto la hoja de propiedades
predeterminada de ese tipo de control.
4 En la hoja de propiedades, cambie los valores de las propiedades.
Cambiar el estilo de control predeterminado de nuevos controles mediante un control existente
1 Abra un formulario en la vista Diseño, o un informe en la vista Diseño.
2 Seleccione el control que tiene las características que desea usar como características predeterminadas.
GUIA ACCESS
3 En el menú Formato, elija Definir valores predeterminados de los controles.
Access establece las propiedades predeterminadas para ese tipo de control basándose en el control seleccionado.
Sugerencia: Se pueden copiar las características de formato de un control a otro haciendo clic en Copiar for-
mato en la barra de herramientas. Para obtener más información, haga clic en .
Especificar una nueva plantilla para los formularios e informes
1 En el menú Herramientas, haga clic en Opciones.
2 Haga clic en la ficha Formularios/Informes.
3 Escriba el nombre de la nueva plantilla en el cuadro Plantilla para formulario o Plantilla para informe.
Nota: Puede utilizar un formulario o informe ya existente como plantilla, o bien puede crear un formulario o
informe específicamente para que se utilice como plantilla.
4 Haga clic en Aceptar.
Objetos/Controles: Ajustes y Complementos.
Puede cambiar la apariencia de un formulario completo o simplemente de alguna de sus partes.
· Para cambiar la fuente, el tamaño de fuente y el grosor de línea para todo el texto y líneas del formulario
al mismo tiempo, haga clic en Autoformato en la barra de herramientas, y a continuación seleccione un nuevo
autoformato para el formulario.
· Para cambiar la apariencia de un control, por ejemplo, un cuadro de texto, haga clic en el control para
seleccionarlo. Después, en la barra de herramientas Formato, seleccione una fuente distinta, un tamaño de fuente
distinto u otra opción de formato. Para agregar una imagen de fondo a un formulario, en la hoja de propiedades
del formulario, especifique un gráfico en el cuadro de la propiedad Imagen o haga clic en el botón Generar que
se encuentra junto al cuadro de la propiedad para abrir el cuadro de diálogo Insertar imagen.
Puede mover controles seleccionados, ajustar su tamaño o alinearlos. Para seleccionar un control, por eje-
mplo, un cuadro de texto, haga clic en él. Para seleccionar varios controles, mantenga presionada la tecla
MAY mientras hace clic en cada control. Una vez que el control está seleccionado, moviendo los cuadros de
ajuste lateral modifica el tamaño, una mano en control principal lo mueve junto con su etiqueta, un dedo en
cuadro de selección mueve sólo al control.
Para alinear controles, seleccione los que desea alinear. Después, seleccione Alinear en el menú Formato y haga
clic en Izquierda, Derecha, Arriba, Abajo o A la cuadrícula.
Es posible crear efectos especiales, como por ejemplo texto sombreado, asimétrico, girado y estirado, utilizando
la herramienta WordArt de la barra de herramientas Dibujo.
Los objetos de WordArt son realmente objetos de dibujo, por lo que no se tratan como texto. Al igual que con los
objetos de dibujo, puede utilizar las herramientas de las barras de herramientas WordArt y Dibujo para cambiar
los objetos de WordArt. Por ejemplo, puede cambiar su relleno, estilo de línea, sombra o efecto 3D. Sin embar-
go, no puede ver el objeto de WordArt en la vista Esquema ni revisar su ortografía.
Si utiliza la herramienta Sombra de la barra de herramientas Dibujo, agregará profundidad a los objetos de dib-
ujo. Para ajustar la posición de la sombra o cambiar su color, haga clic en Configuración de sombra y, a conti-
nuación, utilice las herramientas de la barra de herramientas Configuración de sombra.
Puede agregar un efecto 3D a las líneas, Autoformas y objetos de forma libre utilizando la herramienta 3D de la
barra de herramientas Dibujo. Con las opciones 3D, puede cambiar la profundidad del objeto de dibujo y su
color, ángulo, dirección de la iluminación y reflexión de la superficie. Para modificar el efecto 3D de un objeto
de dibujo, haga clic en Configuración 3D y utilice las herramientas de la barra de herramientas Configuración
3D.
Se puede agregar una sombra o un efecto 3D a un objeto de dibujo, pero no ambas cosas. Por ejemplo, si aplica
un efecto 3D a un objeto de dibujo que tenga sombra, la sombra desaparece.
Puede utilizar la herramienta Color de relleno de la barra de herramientas Dibujo para rellenar los objetos de
dibujo con un color sólido, un degradado, una trama, una textura o una imagen. Para quitar el color de relle-
no o crear un objeto de dibujo transparente, haga clic en la flecha que se encuentra junto a Color de relleno y, a
continuación, haga clic en Sin relleno.
Al dibujar un objeto, éste aparece automáticamente con un borde alrededor _ una línea fina que define su forma.
También se pueden agregar bordes a cuadros de texto, imágenes y artes importadas. Puede cambiar o aplicar
formato a los bordes de la misma forma que se hace con las líneas. Para cambiar el grosor de los bordes, utilice
la herramienta Estilo de línea. La herramienta Tipo de línea se utiliza para hacer que los bordes sean rayados o
punteados; utilice la herramienta Color de línea para agregar color a los bordes o quitarlos completamente.
La barra de herramientas Dibujo contiene herramientas que se utilizan para dibujar, manipular y dar formato a
todo tipo de objetos de dibujo. Para ver esta barra de herramientas, haga clic en Dibujo en la barra de herramie-
ntas Estándar. Si hace clic en un botón de la barra de herramientas que incluya una flecha triangular, aparecerá
un menú. Puede mover algunos de estos menús y acercarlos a los objetos de dibujo para poder utilizarlos con
mayor facilidad. Si el menú que aparece tiene una barra sólida en el borde superior, arrastre la barra para mover
el menú.
Utilizando las herramientas de Autoformas de la barra de herramientas Dibujo, podrá crear automáticamente
una gran variedad de formas.
El menú Autoformas contiene varias categorías de formas. Además de las líneas, incluye formas básicas, flechas
de bloque, elementos de diagrama de flujo, cintas y estrellas, y llamadas.
GUIA ACCESS
Para dibujar una Autoforma, haga clic en Autoformas, señale una categoría y haga clic en la forma que desee.
Haga clic en el documento para agregar la forma con su tamaño predeterminado o arrástrela para obtener el tam-
año que desee.También puede transformar una Autoforma en otra. Seleccione la autoforma que desee cambiar,
haga clic en Dibujo en la barra de herramientas Dibujo, señale Cambiar autoforma y seleccione la nueva forma.
Todas las Autoformas tienen controladores de tamaño y uno o varios controladores de ajuste. Puede arrastrar
los controladores para cambiar su tamaño o forma.
Puede utilizar las herramientas de Líneas del menú Autoformas para trazar líneas rectas o curvas, líneas de forma
libre y flechas sencillas o dobles.Para trazar una línea o una forma libre, haga clic en Autoformas en la barra de
herramientas Dibujo, señale Líneas, haga clic en la herramienta que desee y arrastre el ratón. En caso de que sólo
desee trazar una línea recta, haga clic en Línea de la barra de herramientas Dibujo.
Puede utilizar las herramientas de formato de la barra de herramientas Dibujo para modificar líneas, curvas y
formas libres. Por ejemplo, puede dar color a las líneas, cambiar su grosor, agregar puntas de flecha o converti-
rlas en líneas punteadas o rayadas.
Puede agregar texto a cualquier objeto de dibujo, excepto en las líneas rectas, las formas libres y los conec-
tores, haciendo clic en el objeto y escribiendo el texto. El texto se adjunta y se mueve con el objeto. Si no desea
adjuntar el texto a ningún objeto de dibujo, utilice la herramienta Cuadro de texto de la barra de herramientas
Dibujo. Esta herramienta puede utilizarse para agregar texto a cualquier parte de la página, por ejemplo para
crear títulos para los gráficos.

INFORMES
Un informe es una forma efectiva de presentar los datos en formato impreso. Como tiene control sobre el tamaño
y el aspecto de todos los elementos de un informe, puede presentar la información en la forma que desee verla.
La mayor parte de la información en un informe proviene de una tabla, consulta o instrucción SQL base, que es
el origen de los datos del informe. Otra información del informe se almacena en el diseño del informe.
Puede crear un informe usted mismo o hacer que Access cree un informe automáticamente mediante un Asist-
ente para Informes. Un asistente para informes acelera el proceso para crear un informe ya que hace todo el trab-
ajo básico en su lugar. Cuando usa un asistente para informes, éste le pide información y crea un informe basado
en sus respuestas. Aunque haya creado muchos informes, puede que desee utilizar un asistente para organizar
rápidamente su informe. Después puede cambiar a la vista Diseño para personalizarlo.
INFORMES - MENUS EN VISTA PREVIA DISEÑO Y PRELIMINAR.
Incluídos en Tablas, Vista Hoja de datos.
INFORMES - MENUS EN VISTA DISEÑO.
Incluídos en Formularios, Vista Diseño excepto:
MENU VER
Vista previa del diseño: Presenta el informe con el aspecto que tendrá cuando se imprima, pero utilizando sólo
datos de muestra, de forma que pueda echar un vistazo rápido al diseño del informe. La vista previa del diseño
presenta todas las secciones del informe y ordena y agrupa los datos de la sección de detalle, pero ignora los
criterios y las combinaciones de cualquier consulta base. También se accede a este comando por botón en Ficha
Informes de la ventana Base de Datos, mostrando el informe seleccionado..
Vista preliminar: Muestra el objeto activo, tabla, formulario o informe, tal y como va a aparecer cuando se
imprima (excepto en la ventana Macro, donde presenta primero el Documentador). Puede acercar o alejar una
página o ver varias páginas al mismo tiempo.
Ordenar y agrupar: Agrega, elimina o modifica los campos o expresiones por los que agrupar, el orden y las
propiedades de grupo tales como los encabezados y pies.
Encabezado o pie de página : Incluye o elimina una sección de encabezado y una sección de pie de página de
un formulario o informe. Utilice los encabezados de página para, por ejemplo, presentar títulos o encabezados de
columna. Utilice los pies de página para, por ejemplo, presentar el número de página o la fecha.
Encabezado o pie del informe: Presenta o quita las secciones de encabezado o pie del informe. Utilice el encab-
ezado para introducciones que contengan, por ejemplo, texto, imágenes y logotipos. Utilice el pie del informe
para resúmenes que contengan, por ejemplo, totales generales.
Crear un informe usando Autoinforme:
Autoinforme crea un informe que presenta todos los campos y registros de la tabla o consulta seleccionada.
1 En la ventana Base de datos, haga clic en la ficha Informes.
2 Haga clic en Nuevo.
3 En el cuadro de diálogo Nuevo informe haga clic en uno de los siguientes asistentes:
· Autoinforme: en columnas. Cada campo aparece en una línea distinta con una etiqueta a su izquierda.
· Autoinforme: tabular. Los campos de cada registro aparecen en una línea y las etiquetas se imprimen
una vez en la parte superior de cada página.
4 Haga clic en la tabla o consulta que contiene los datos en los que desea basar su informe.
5 Haga clic en Aceptar.

GUIA ACCESS
Access aplica el último autoformato utilizado en el informe. Si todavía no ha utilizado el Asistente para info r-
mes para crear el informe ni ha usado el comando Autoformato en el menú Formato, Access utiliza el autoform-
ato estándar.
Sugerencia: También puede crear un informe de una sola columna basado en la tabla o consulta abierta o en la
tabla o consulta seleccionada en la ventana Base de datos. Haga clic en Autoinforme en el menú Insertar, o en la
flecha junto al botón Nuevo objeto en la barra de herramientas, y después en Autoinforme. Los informes creados
con este método sólo constan de registros de detalle, pero no incluyen encabezado de informe ni encabezado de
página ni pie de página.
Crear un informe con un asistente:
1 En la ventana Base de datos, haga clic en la ficha Informes.
2 Elija Nuevo.
3 En el cuadro de diálogo Nuevo Informe, elija el asistente que desea utilizar. Una descripción del asist-
ente aparece en el lado izquierdo del cuadro de texto.
4 Elija la tabla o consulta que contiene los datos en los que desea basar su informe.
Nota: Access utiliza esa tabla o consulta como el origen de datos predeterminada para el informe. Sin embargo,
puede cambiar el origen de datos del asistente y seleccionar campos de otras tablas y consultas.
5 Haga clic en Aceptar.
6 Si ha hecho clic en Asistente para informes, Asistente para gráficos o Asistente para etiquetas en el paso
3, siga las instrucciones de los cuadros de diálogo del asistente. Si ha seleccionado Autoinforme: tabular o Aut-
oinforme: en columnas, Access creará automáticamente el informe.
Si el informe obtenido no tiene el aspecto deseado, puede cambiarlo en la vista Diseño.
Crear un informe sin asistente:
1 En la ventana Base de datos, haga clic en la ficha Informes.
2 Haga clic en Nuevo.
3 En el cuadro de diálogo Nuevo Informe, haga clic en Vista diseño.
4 Elija el nombre de la tabla o consulta que contiene los datos en los que desea basar el informe. (Si desea
un informe independiente, no seleccione nada de esta lista)
Sugerencia: Si desea crear un informe que utilice datos de más de una tabla, base su informe en una consulta.
5 Haga clic en Aceptar.
Access presenta la ventana Informe en la vista Diseño.
Crear un informe basado en más de una tabla:
Usar el Asistente para informes es la forma más sencilla y rápida de crear un informe que combine datos de más
de una tabla. El Asistente para informes acelera el proceso de crear un informe porque hace todo el trabajo bás-
ico automáticamente. En la primera pantalla del Asistente para informes, puede elegir los campos que desea
incluir en su informe. Estos campos pueden ser de una tabla o de varias tablas. Cuando utiliza el Asistente para
informes para crear un informe basado en varias tablas, Access crea una consulta detrás del informe. La consulta
incluye la información sobre qué tablas y qué campos utilizar.
Si desea crear un informe usted mismo, es posible crear una consulta y basar el informe sobre ella.
Crear un subinforme en un informe existente:
Si el subinforme se va a vincular al informe principal, compruebe que ha configurado correctamente las relac-
iones de tabla antes de utilizar este procedimiento.
1 Abra el informe que desea utilizar como informe principal en la vista Diseño.
2 Compruebe que la herramienta Asistentes para controles en el cuadro de herramientas está presionada.
3 Haga clic en Subformulario/Subinforme en el cuadro de herramientas.
4 En el informe, haga clic donde desee situar el subinforme.
5 Siga las instrucciones de los cuadros de diálogo del asistente.
Cuando haga clic en el botón Terminar, Access agregará un control de subinforme a su informe. También creará
otro informe que se mostrará como subinforme.
Agregar un informe existente a otro para crear un subinforme
Si el subinforme se va a vincular al informe principal, asegúrese de que ha configurado correctamente las relac-
iones de tabla antes de utilizar este procedimiento.
1 Abra el informe que desea utilizar como informe principal en la vista Diseño.
2 Compruebe que la herramienta Asistentes para controles en el cuadro de herramientas está presionada.
3 Presione F11 para cambiar a la ventana Base de datos.
4 Arrastre un informe o una hoja de datos desde la ventana Base de datos a la sección del informe princ-
ipal donde desea que aparezca el subinforme.
Access agregará un control de subinforme al informe.
Secciones de un informe.
La información de un informe puede dividirse en secciones. Cada sección tiene un propósito específico y se
imprime en un orden previsible en la página y en el informe.

GUIA ACCESS
El encabezado del informe aparece una vez al principio de un informe. Se puede usar para elementos como un
logotipo, un título de informe o una fecha de impresión. El encabezado del informe se imprime antes que el
encabezado de página en la primera página del informe.
El encabezado de página aparece en la parte superior de cada página del informe. Se usa para mostrar eleme-
ntos tales como los encabezados de columna.
Al principio de un nuevo grupo de registros aparece un encabezado de grupo. Se usa para mostrar información
que se aplica al grupo como conjunto, tal como un nombre de grupo.
La sección Detalle contiene el cuerpo principal de los datos de un informe. Esta sección se repite para cada regi-
stro del origen de registros base del informe.
Al final de cada grupo de registros aparece un pie de grupo. Se usa para mostrar elementos como los totales de
grupo.
El pie de página aparece en la parte inferior de cada página del informe. Se usa para mostrar elementos tales
como los números de página.
El pie del informe aparece una vez al final del informe. Se usa para mostrar elementos tales como los totales de
informe. Es la última sección en el diseño del informe, pero aparece antes del pie de página en la última página
del informe impreso.
Agregar o quitar un encabezado y pie de informe o un encabezado y pie de página
· Abra el informe en la vista Diseño.
· Haga clic en Encabezado o pie del informe o en Encabezado o pie de página en el menú Ver.
Notas:· Sólo se pueden agregar un encabezado y pie de página como pareja. Si no desea ambos, un encabezado
y un pie de página, establezca la propiedad Visible a No para la sección que no desee. O bien, elimine todos los
controles de la sección y cambie el tamaño de la sección a un alto igual a cero o estableczca su propiedad Altura
(Height) a 0.
· Si elimina un encabezado y pie de página, Microsoft Access eliminará también los controles del encab-
ezado y pie de página.
Crear etiquetas postales y de otros tipos
1 En la ventana Base de datos, haga clic en la ficha Informes.
2 Haga clic en Nuevo.
3 En el cuadro de diálogo Nuevo informe, haga clic en Asistente para etiquetas.
4 Haga clic en la tabla o la consulta que contiene los datos de las etiquetas y, a continuación, haga clic en
Aceptar.
5 Siga las instrucciones de los cuadros de diálogo del asistente.
Si el informe de etiquetas resultante no tiene el aspecto deseado, podrá borrarlo y volver a ejecutar el Asistente
para etiquetas.
El informe Etiquetas de cliente de la base de datos de ejemplo Neptuno muestra tres etiquetas postales a lo anc-
ho. Para ver este informe, abra la base de datos Neptuno en la subcarpeta Ejemplos de la carpeta del programa
Office. En la ventana Base de datos, haga clic en la ficha Informes, en Etiquetas de cliente y, por último, en
Diseño.
Insertar Campo calculado a un registro de un informe
1 Abra el informe en la vista Diseño.
2 Agregue un cuadro de texto a la sección de detalle.
3 Para ver la hoja propiedades, asegúrese de que el cuadro de texto esté seleccionado, y luego haga clic en
el botón Propiedades de la barra de herramientas.
4 Haga una de las siguientes cosas:
· En el cuadro de la propiedad OrigenDelControl (ControlSource), introduzca una expresión apropiada.
(Ver Pág 30 Expresiones.)
· Haga clic en el botón Generar para utilizar el Generador de expresiones para crear la expresión.
Nota: Si un informe está basado en una consulta, puede colocar la expresión en la consulta base del informe.
Puede mejorar el rendimiento del informe y si va a calcular los totales de grupos de registros, es más fácil utilizar
el nombre de un campo calculado de una función agregada (Ver Pág 23, Totales, ALT+ V, T.).
Agrupar los registros en un informe
En un informe se pueden agrupar hasta 10 campos o expresiones.
1 Abra el informe en la vista Diseño.
2 Haga clic en el botón Ordenar y agrupar de la barra de herramientas para mostrar el cuadro Ordenar y
agrupar.
3 Establezca el tipo de orden para los datos del informe.
4 Haga clic en el campo o expresión cuyas propiedades de grupo desee establecer.
5 Establezca las propiedades de grupo en la siguiente lista. Se debe establecer a Sí o Encabezado del gru-
po o Pie del grupo para crear un nivel de grupo y establecer las demás propiedades de agrupamiento.
· Encabezado del grupo. Agrega o elimina un encabezado del grupo para el campo o expresión.
· Pie del grupo. Agrega o elimina un pie de grupo para el campo o expresión.

GUIA ACCESS
· AgruparEn (GroupOn). Especifica cómo se desean agrupar los valores. Las opciones que se ven depen-
den del tipo de datos del campo por el que se está agrupando. Si se agrupa por una expresión, verá todas las
opciones para todos los tipos de datos.
· IntervaloDelGrupo (GroupInterval). Especifica cualquier intervalo que sea válido para los valores en el
campo o expresión por el que esté agrupando.
· MantenerJuntos (KeepTogether). Especifica si Access debe imprimir todo o sólo parte de un grupo en
la misma página.
Nota: El informe Ventas de empleado por país de la base de datos de ejemplo Neptuno tiene dos niveles de
grupo.
Ordenar los registros en un informe.
En un informe se puede ordenar hasta por 10 campos o expresiones.
1 Abra el informe en la vista Diseño.
2 Haga clic en Ordenar y agrupar en la barra de herramientas para mostrar el cuadro Ordenar y agrupar.
3 En la primera fila de la columna Campo/Expresión, seleccione un nombre de campo o escriba una expr-
esión.
El campo o expresión de la primera fila es el primer nivel de ordenación (el conjunto mayor). La segunda fila es
el segundo nivel de ordenación y así sucesivamente.
Cuando se rellena la columna Campo/Expresión, Access establece el tipo de orden a Ascendente. El tipo de
orden ascendente ordena desde la A a la Z o desde 0 a 9.
4 Para cambiar el tipo de orden, seleccione Descendente en la lista Tipo de orden. El orden Descendente
ordena desde la Z a la A o desde 9 a 0.
Nota: El informe Etiquetas de cliente de la base de datos de ejemplo Neptuno ordena los registros por los valor-
es de tres campos.
Calcular un total o promedio para un grupo o para todos los registros de un informe
1 Abra el informe en vista Diseño.
2 Agregue un cuadro de texto calculado a una o más de las siguientes secciones:
· Para calcular un total o promedio de un grupo de registros, agregue un cuadro de texto al encabezado
del grupo o al pie de página del grupo.
· Para calcular el total general o promedio de todos los registros en el informe, agregue un cuadro de
texto al encabezado del informe o al pie de página del informe.
3 Para mostrar la hoja de propiedades, asegúrese de que el cuadro de texto esté seleccionado, y luego haga
clic en el botón Propiedades de la barra de herramientas.
4 Haga una de las siguientes cosas:
· En el cuadro de la propiedad OrigenDelControl (Control Source), introduzca una expresión que utilice
la función Suma (Sum) para calcular un total o la función Promedio (Avg) para calcular un promedio.
· Haga clic en el botón Generar para utilizar el Generador de expresiones para crear la expresión.
· El informe Ventas de empleado por país de la base de datos de ejemplo Neptuno tiene un ejemplo de
totales de grupo y un total general.
Calcular una suma continua de un informe
1 Abra el informe en la vista Diseño.
2 Agregue un cuadro de texto a una o más de las siguientes secciones:
Para calcular una suma continua que se incrementa por cada registro, agregue un cuadro de texto dep-
endiente o un cuadro de texto calculado a la sección de detalle.
· Para calcular una suma continua que se incrementa por cada grupo de registros, agregue un cuadro de
texto dependiente o un cuadro de texto calculado al encabezado del grupo o al pie de página del grupo.
3 Para presentar la hoja de propiedades, asegúrese de que el cuadro de texto esté seleccionado, y luego
haga clic en el botón Propiedades de la barra de herramientas.
4 Establezca la propiedad SumaContinua (RunningSum) de acuerdo con el tipo de total continuo que
desee:
· Sobre grupo. Inicializa a 0 al principio de cada nivel de grupo más alto.
· Sobre todo. Acumula hasta el final del informe.
Notas
· Cuando establece la propiedad SumaContinua (RunningSum) a Sobre todo, puede repetir el total gener-
al en el pie de página del informe. Cree un cuadro de texto en el pie de página del informe y establezca su propi-
edad OrigenDelControl (ControlSource) al nombre del cuadro de texto que calcula la suma continua; por eje-
mplo, =[CantidadPedido].
Propiedad SumaContinua (RunningSum)
La propiedad SumaContinua (RunningSum) se puede utilizar para calcular los totales registro a registro o grupo
a grupo de un informe. La propiedad SumaContinua (RunningSum) especifica si un cuadro de texto en un infor-
me muestra un subtotal y le permite establecer el intervalo en el que se acumulan los valores. Por ejemplo, puede
agrupar los datos por meses y mostrar la suma de las ventas de cada mes en el pie de página del grupo. Se puede
mostrar la suma continua de las ventas acumuladas del informe completo (ventas de Enero en el pié de página de

GUIA ACCESS
Enero, ventas de Enero más Febrero en el pié de página de Febrero y así sucesivamente) agregando un cuadro de
texto al pie de página que muestre la suma de las ventas y configurando su propiedad SumaContinua (RunningS-
um) a Sobre todo.
Nota: La propiedad SumaContinua (RunningSum) sólo se aplica a un cuadro de texto en un informe.
Valores: La propiedad SumaContinua (RunningSum) utiliza los siguientes valores:
Valor Descripción) Visual Basic
No (Predeterminado) El cuadro de texto muestra los datos del campo base para el registro activo. 0
Sobre grupo El cuadro de texto muestra una suma continua de los valores del mismo nivel de grupo. El
valor acumula hasta que se encuentre otra sección de nivel de grupo. 1
Sobre todo El cuadro de texto muestra una suma continua de valores en el mismo nivel de grupo. El valor
se acumula hasta el final del informe. 2
La propiedad SumaContinua (RunningSum) se puede establecer usando la hoja de propiedades del cuadro de
texto, con una macro o usando Visual Basic. La propiedad SumaContinua (RunningSum) sólo se puede establec-
er en la vista Diseño.
Comentarios: Coloque el cuadro de texto en la sección de detalles para calcular un total registro a registro. Por
ejemplo, para numerar los registros que aparecen en una sección de detalles de un informe, establezca la propi-
edad OrigenDelControl (ControlSource) para el cuadro de texto a "=1" y establezca la propiedad SumaContinua
(RunningSum) a Sobre grupo.
Coloque el cuadro de texto en un encabezado de grupo o pie de página del grupo para calcular un total grupo a
grupo. Es posible tener hasta 10 niveles de grupos anidados en un informe.
Calcular porcentajes en un informe
1 Abra el informe en la vista Diseño.
2 Agregue los cuadros de texto que calculan el total de registro, el total del grupo y el total general.
3 En la sección apropiada, agregue el cuadro de texto que calcula el porcentaje.
· Para calcular qué porcentaje supone cada elemento en un total de grupo o de total general, coloque el
control en la sección de detalle.
· Para calcular qué porcentaje supone cada grupo de elementos en el total general, coloque el cuadro de
texto en el encabezado del grupo o el pie de página del grupo.
Si su informe incluye niveles de grupo múltiples, coloque el cuadro de texto en el encabezado o pie de página del
nivel para el que desea que Access le calcule un porcentaje.
4 Para presentar la hoja de propiedades, asegúrese de que el cuadro de texto esté seleccionado, y luego
haga clic en el botón Propiedades de la barra de herramientas.
5 Haga una de las siguientes cosas:
· En el cuadro de la propiedad OrigenDelControl (ControlSource), escriba una expresión que divida el
total más pequeño por el total mayor del cual el total menor es una parte. Por ejemplo, divida el valor del control
TotalDiario por el valor del control TotalGeneral.
· Haga clic en el botón Generar para utilizar el Generador de expresiones para crear una expresión.
6 Establezca la propiedad Formato (Format) del cuadro de texto al valor Porcentaje.
Nota: El informe Resumen de ventas por año de la base de datos de ejemplo Neptuno tiene un ejemplo de por-
centajes.
Comenzar cada grupo de un informe en una nueva fila o columna
1 Cree un informe de múltiples columnas que tenga al menos un nivel de agrupamiento.
2 En la vista Diseño de informe, haga clic en Configurar página en el menú Archivo.

3 Haga clic en la ficha Columnas. En Opciones de la cuadrícula, asegúrese que Número de columnas está
establecido a un valor mayor que 1.
4 En Diseño de columna, realice una de estas acciones:
· Para comenzar cada grupo en una nueva columna, haga clic en la opción Hacia abajo y después a lo
ancho.
· Para comenzar cada grupo en una nueva fila, haga clic en la opción A lo ancho y después hacia abajo.
5 Haga clic en Aceptar.
6 Haga doble clic en el selector de sección para el encabezado o el pie de grupo para mostrar su hoja de
propiedades.
7 Establezca la propiedad NuevaFilaOColumna (NewRowOrCol) a uno de los siguientes valores.
Ninguno(Predeterminado): Los saltos de fila o columna están determinados por el valor del cuadro de diálogo
Configurar página y por el espacio disponible en la página.
Antes de la sección: Access comienza a imprimir la sección actual (la sección para la que establece la
propiedad, como el encabezado de grupo) en una nueva fila o columna. Comienza a imprimir la sección sigui-
ente, por ejemplo, la sección de detalles, en la misma fila o columna.
Después de la sección: Access comienza a imprimir la sección actual, como el encabezado de grupo, en la
fila o la columna actual. Comienza a imprimir la sección siguiente, por ejemplo una sección de detalle, en la fila
o la columna siguiente.

GUIA ACCESS
Antes y después: Access comienza a imprimir la sección actual, por ejemplo el encabezado de grupo, en una
nueva fila o columna. Comienza a imprimir la sección siguiente, como la sección de detalles, en la siguiente fila
o columna.
Nota: El informe Productos por categoría de la base de datos de ejemplo Neptuno comienza cada grupo en una
nueva columna.
Ver Pág 87, Ejemplos de macros.
Restablecer números de página para cada grupo de un informe
Crear una macro que restablezca números de página
1 Cree una macro que utilice la acción EstablecerValor para cambiar la propiedad Página a 1.
Decida si el número de página aparecerá en el encabezado o en el pie de página y, a continuación, utilice los
valores siguientes para los argumentos de la acción EstablecerValor.
Ubicación del número de página Argumentos de EstablecerValor
Encabezado de página Elemento: [Página]
Expresión: 0
Pie de página Elemento: [Página]
Expresión: 1
Guarde y cierre la macro.
Ver Pág 87, Ejemplos de macros.

GUIA ACCESS
Guía alfabética de Macros y Módulos.
Para Tablas, Consultas, Formularios e Informes, ir al principio con CTRL+INICIO.

Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn
Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz
Macros Módulos
Para volver a este índice: ALT+F12

A
Abrir Base de datos con una serie de acciones automáticas (Macro Autoexec) Ver Pág 82
Abrir ventana Macro o Módulo desde formulario o informe Ver Pag 80
Acción de macro, agregar Ver Pag 80 Ver Argumentos de acción.
Acción o una serie de acciones, asignar a una tecla Ver Pág 82
Acciones de macros agrupadas por tarea Ver Pág 81
Acciones de macros, secuencia Ver Pág 80
Actualización (modificación) de registros con QueryDef Ver Pág 133
Agregar inspección ALT+D, A
Alternar interrupción y no interrupción en errores no tratados y pasar a siguiente instrucción ALT+F5
Alternar interrupción y no interrupción en módulo clase y seguir la ejecución ALT+F8
Alternar punto de interrupción (F9) ALT+D, L
Añadir registros Ver Pag 128
Archivo, insertar ALT+I, A
Argumento de acción de macro, introducir una expresión Ver Pág 82
Argumentos de acción en macro, establecer Ver Pág 81
Argumentos Ver Pág 99.
Asistentes (Generadores de macros, código y expresiones) Ver Pág 87
Ayuda contextual en el punto de inserción F1
B
Base de datos, listar tablas, consultas, campos Ver Pág 132
Bloquear datos Ver Pág 131
Borrar todos los puntos de interrupción (CTRL+MAY+F9) ALT+D, B
Buscar la siguiente aparición de texto seleccionado CTRL+F3
Buscar o Reemplazar, repetir con cuadro de diálogo cerrado, hacia atrás MAY+F3
Buscar o Reemplazar, repetir con cuadro de diálogo cerrado F3
Buscar registro desde Cuadro combinado/lista con macro Ver Pág 88
Buscar registros en Dynasets y Snapshots (Find) Ver. Pág 128
Buscar registros en Tablas (Seek) Ver Pág 129
Buscar (CTRL+B) ALT+E, B. Buscar siguiente (F3) ALT+E, U
C
Cambiar entre los paneles superior e inferior F6
Campo, establecer valor con macro Ver Pág 88
Campos grandes, manipular Ver Pág 130
Clone, clonar (Copia de Dynaset) Ver Pág 129
Código de procedimiento, presentar (MAY+F2) ALT+V, F
Código o macro, continuar ejecución F5
Código o macro, restablecer ejecución MAY+F5
Código o macro, detener la ejecución CTRL+INTERRUMPIR
Código visible, seleccionar todo en la ventana Módulo CTRL+A
Código, ejecución paso a paso Ver Pág 107
Código, ejecución Ver Pág 98
Código, ejecutar hasta punto de inserción y detener la ejecución CTRL+F8
Código, restablecer, reiniciar ALT+C, R
Código, solución de errores Ver Pág 106
Código, suspender ejecución Ver Pág 106
Còdigo, ver módulo general de Formulario o Informe Señalar o activar Formulario o Informe y ALT+V, G.
(Informe con ratón). Abrir primera lista (Objeto) para ver sus objetos y la segunda (procedimientos) para
ver los eventos de cada objeto.
Códigos con Formularios e Informes Ver Pág 120
Compilar módulos cargados ALT+D, D
Compilar todos los módulos ALT+D, O
Compilar y guardar todos los módulos ALT+D, U
Completar palabra (CTRL+BARRA) ALT+E, O
Condiciones de macro Ver Pág 80

GUIA ACCESS
Condiciones de macro, abrir columna ALT+V, C
Constantes Definición: Ver Pág 98. Ejemplos: Ver Pág 117
Constantes, lista (CTRL+MAY+J) ALT+E, S
Consultas de acción, crear, modificar (variables QueryDef) Ver Pág 133
Consultas de parámetros Ver Pág 136
Consultas de selección (dynaset) Ver Pág 125
Continuar la ejecución de código o de macro F5
Control de errores durante ejecución Ver Pág 119
Control, hacer visible o no Ver Pág 89
Control, ir para comenzar edición Ver Pág 88
Control, tipos Ver Pág 124
Controles ActiveX ALT+H, C
Cortar la línea actual y copiarla al Portapapeles CTRL+Y
Crear macro Ver Pág 78
Cuadro de diálogo emergente modal, abrir con botón para solicitar información del usuario Ver Pág 90
Cuadro de diálogo Llamadas CTRL+L
Cuadro de Lista, crear lista con código Ver Pág 120
Cuadro Objeto, enfoque CTRL+F2
Cuadro Procedimiento, enfoque CTRL+F2, TAB
D
DAO (Data Access Object) Ver Pág 99
Datos, bloquear Ver Pág 131
Datos, tratamiento, manipulación Ver Pág 125
Definición de macro Ver Macros, Pág 77.
Definición, presentar código de procedimiento (MAY+F2) ALT+V, F
Depuración, generalidades Ver Pág 114
Depuración, panel Inmediato Ver Pág 106
Depuración, panel Inspección Ver Pág 106
Depuración, panel Locales Ver Pág 105
Depuración, ventana (CTRL+S) ALT+V, V. Ver Utilización, Pág 105.
Depuración, ventana CTRL+G
Desaparecer la lista ESC
Deshacer CTRL+Z
Detener la ejecución de código o de macro CTRL+INTERRUMPIR
Do...Loop, instrucción Ver Pág 102
DoCmd, instrucción, ejecutar acciones y macros por código Ver Pág 114
Dynaset, variable Recorset Ver Pág 125
E
Ejecución de código o de macro, continuar F5
Ejecución de código o de macro, restablecer MAY+F5
Ejecución de código Ver Pág 98
Ejecución de código, suspender Ver Pág 106
Ejecución, iniciar o continuar (F5) ALT+C, C
Ejecución, terminar ALT+C, T
Ejecutar acciones y macros por código, DoCmd Ver Pág 114
Ejecutar código hasta cursor (CTRL+F8) ALT+D, E
Ejecutar directamente una macro Ver Pág 79
Ejecutar macro desde otra macro o desde procedimiento Ver
Ejecutar macro o procedimiento de evento para un evento en formulario, informe o control Ver
Ejecutar macro que pertenece a grupo de macros Ver
Ejecutar un subprocedimiento sin parámetros en punto de inserción, desde la ventana Módulo F5
Ejemplo función Buscar archivo Ver
Ejemplo función con argumento Ver
Ejemplo función Invertir orden letras Ver
Ejemplo función Primer día del mes siguiente Ver
Ejemplo función Siglo Ver
Ejemplos de macros Ver Ejemplos de Macros, Pág 87.
Ejemplos y generalidades de Visual Basic Ver
Elemento seleccionado, introducir en una lista CTRL+INTRO o TAB
Elemento seleccionado, introducir y mover el cursor a la línea siguiente INTRO
Eliminar registros Ver
Eliminar todos los puntos de interrupción CTRL+MAY+F9
Enfoque en el cuadro Objeto CTRL+F2
Enfoque en el cuadro Procedimiento CTRL+F2, TAB
Enumerar las constantes CTRL+MAYÚS+J
Enumerar las propiedades y los métodos CTRL+J
Errores de código, solucionar Ver
Errores durante ejecución, controlar Ver
Establecer la instrucción siguiente (CTRL+F9) ALT+D, N
GUIA ACCESS
Estructuras de decisión y control Ver
Evento en formulario, informe o control, ejecutar macro o procedimiento de evento Ver
Evento, determinar cuándo ocurre Ver
Eventos de controles Ver
Eventos de datos Ver
Eventos de enfoque Ver
Eventos de error y sincronización Ver
Eventos de filtro Ver
Eventos de formularios Ver
Eventos de impresión Ver
Eventos de informes y secciones de informes Ver
Eventos de teclado Ver
Eventos de ventana Ver
Eventos del ratón Ver
Eventos, definición Ver Ver Procedimiento de evento.
Eventos, propiedades Ver
Examinador de objetos (F2) ALT+V, E. Ver Definición.
Expresión de inspección, agregar Ver
Expresión o variable, ver valor con código suspendido Ver
Expresión seleccionada, crear Inspección instantánea MAY+F9
Expresión, definición Ver Pág 30 Expresiones.
F
Fila actual, eliminar en macro ALT+E, M o seleccionar y Supr para varias.
Fila de macro, insertar ALT+I, F
Filas, mover Seleccionarlas y Clic y arrastrar desde selecctor o Seleccionar y Cortar y Pegar.
Filas, seleccionar varias seguidas Clic en selector (primera columna izquierda() en primera (o desde
actual) y MAY+Clic en última. (Para Suprimir o Mover).
Filtrar registros con macro Ver
Filtrar registros Ver
For each...Next, instrucción Ver
For...Next, instrucción Ver
Formulario, abrir con botón desde otro formulario Ver
Formulario, ir al registro que se quiera al abrirlo Ver
Formulario, mantener los registros coordinados con el formulario principal Ver
Formulario, ver si está abierto Ver
Funciones e Instrucciones, por tarea de programación Ver
Funciones, referencia Ver
G
Generadores (asistentes de macros, código y expresiones) Ver
Generalidades y Ejemplos de Visual Basic Ver
Grupo de informe, comenzar por página 1 Ver
H
I
If TypoOf, instrucción Ver
If..Then...Else, instrucción Ver
Imprimir informe con botón Ver
Imprimir registro actual con botón Ver
Imprimir uno (país, etc.) o todos con Cuadro de lista y macro Ver
Información de la Base de datos (tablas, consultas, campos) Ver
Información de parámetros (CTRL+MAY+I) ALT+E, A
Información rápida (CTRL+I) ALT+E, I
Información, solicitar al usuario con cuadro de diálogo Ver
Informe a imprimir, seleccionar mediante cuadro de diálogo Ver
Informe, comenzar cada grupo por página 1 Ver
Informe, ocultar sección Ver
Informe, registros a imprimir por página Ver
Informe, totalizar por página Ver
Inmediato, panel de depuración Ver
Insertar archivo ALT+I, A
Insertar módulo de clase ALT+I, M
Insertar módulo ALT+I, D
Insertar procedimiento ALT+I, P
Inspección rápida (MAY+F9) ALT+D, C
Inspección, agregar ALT+D, A Ver Pág 107.
Inspección, modificar ALT+D, M
Instancia, definición Ver
Instrucción siguiente, establecer (CTRL+F9) ALT+D, N

GUIA ACCESS
Instrucción siguiente, mostrar CTRL+D, S
Instrucción, definición Ver
Instrucciones condicionales y de bucle Ver
Instrucciones y Funciones, por tarea de programación Ver
Instrucciones, paso a paso (F8) ALT+D, R
Instrucciones, referencia Ver
Interrumpir ejecución de código o macro CTRL+INTERRUMPIR
Interrupción y no interrupción, alternar en errores no tratados y pasar a siguiente instrucción ALT+F5
Interrupción y no interrupción, alternar en módulo clase y seguir la ejecución ALT+F8
Introducir el elemento seleccionado en una lista CTRL+INTRO o TAB
Ir con macro a control, registro, página Ver
Ir paso a paso Ver Paso a paso
J
K
L
Línea, última visualizada anteriormente CTRL+MAY+F2
Lista de Cuadro de Lista, crear con código Ver
Listar Formularios, controles, Propiedad Count Ver
Llamadas, Cuadro de diálogo CTRL+L
Llamadas, pila (CTRL+H) ALT+V, P Ver Pág 108.
M
Macro Autoexec, se ejecuta automáticamente al abrir la Base de datos Ver
Macro dentro de un grupo, ejecutar Ver
Macro o procedimiento de evento, ejecutar para un evento en formulario, informe o control Ver
Macro, agregar acción Ver
Macro, convertir en Visual Basic ALT+H, M, V.
Macro, crear Ver
Macro, ejecutar Activa, en hoja macros ALT+C. En Diseño: ALT+E, C Ejecutar otra: ALT+H, M, M.
Desde Evento: Ficha Eventos desde Propiedades del Control y asociar al evento. Siempre ejecuta sólo la
primera Macro del grupo. Para una en particular: Nombte del grupo, punto, Nombre de la Macro. Ej: Macr-
o1.VerSección. Ver Ejecutar Macro.
Macro, ejecutar al abrir Base de datos Ver Macro Autoxec.
Macro, ejecutar desde otra macro o desde procedimiento Ver
Macro, ejecutar directamente Ver
Macro, mover en misma hoja Ver Filas, mover.
Macros de menús Crear Menú a partir de Macro: ALT+ H, M, C. Crear Barra a partir de Macro: ALT+ H,
M, B. Crear Menú Contextual a partir de Macro: ALT+ H, M, A. Los Menús con Macro se mantienen por
compatibilidad con versiones anteriores. Para nuevos Menús: Ver Menús, personalizar ALT+V, B.
Macros Ver Pág 77.
Macros, condiciones Ver
Macros, definición, cuándo utilizar Ver Macros, Pág 77.
Macros, ejemplos Ver Ejemplos de Macros, Pág 87,
Macros, ventana, saltar entre paneles F6
Marcadores ALT+E, M Ver Ejemplos.
Matrices Ver
Me, palabra clave Ver
Menús con macros Ver Macros de menús.
Método, definición Ver
Métodos y Propiedades, lista (CTRL+J) ALT+E, M
Métodos, por tarea de programación Ver
Métodos, referencia Ver
Modificación (actualización) de registros con QueryDef Ver
Modificar inspección ALT+D, M
Modificar registros Ver
Módulo de clase, insertar ALT+I, M
Módulo, insertar ALT+I, D
Módulo, ventana Ver
Módulos de clases Ver
Módulos estándar Ver
Módulos Ver Pág 90.
Módulos, compilar Ver Compilar
Módulos, definición, cuándo utilizar Ver
Mostrar Instrucción siguiente CTRL+D, S
N
Nombres de macro, abrir ALT+V, M
O
GUIA ACCESS
Objeto, colección, definición Ver
Objetos activos (Prop. Screen) Ver
Objetos como argumentos Ver
Objetos como variables Ver
Objetos predefinidos Forms, Reports Ver. Screen, Parent, Form, Report, Dynaset, Bookmark: Ver
Objetos, examinador (F2) ALT+V, E
Objetos, métodos Ver
Ocultar o hacer visible un control Ver
Ocultar sección de informe Ver
Ordenar, clasificar registros Ver
P
Palabra clave de Visual Basic, completar CTRL+BARRA
Palabra clave Me Ver
Palabra clave, procedimiento, variable, definición MAY+F2
Palabra completa (CTRL+BARRA) ALT+E, O
Paneles de depuración Ver Depuración, panel
Paneles, cambiar entre superior e inferior F6
Parámetros, consulta Ver
Parámetros, Información (CTRL+MAY+I) ALT+E, A
Parámetros, solicitar con macro Ver
Paso a paso para salir (CTRL+MAY+F8) ALT+D, S
Paso a paso por instrucciones (F8) ALT+D, R
Paso a paso por procedimientos (MAY+F8) ALT+D, P
Paso a paso, ejecución de código Ver
Paso a paso, ejecutar macro ALT+C, P
Pila de llamadas (CTRL+H) ALT+V, P
Posición última, volver (CTRL+MAY+F2) ALT+V, M
Procedimiento anterior CTRL + ↑
Procedimiento de evento o macro, ejecutar para un evento en formulario, informe o control Ver
Procedimiento de evento, crear Ver
Procedimiento personalizado, crear Ver
Procedimiento siguiente CTRL + Ø
Procedimiento, insertar ALT+I, P
Procedimiento, ir Paso a paso (un solo paso) F8
Procedimiento, presentar código (MAY+F2) ALT+V, F
Procedimiento, salir CTRL+MAY+F8
Procedimiento, saltar MAY+F8
Procedimiento, variable o palabra clave, definición MAY+F2
Procedimientos Function Ver
Procedimientos Sub Ver Generalidades: Ver
Procedimientos, definición, clases Ver
Procedimientos, paso a paso (MAY+F8) ALT+D, P
Propiedad Count (Formularios e Informes) Ver
Propiedad, definición Ver
Propiedades de eventos Ver
Propiedades y Métodos, lista (CTRL+J) ALT+E, M
Punto de inserción, Ayuda contextual F1
Punto de inserción, ejecutar código hasta él y detener la ejecución CTRL+F8
Punto de interrupción para suspender ejecución Ver
Punto de interrupción, alternar (F9) ALT+D, L
Puntos de interrupción, eliminar todos (CTRL+MAY+F9) ALT+D, B
Q
QueryDef, variables (crear, modificar consultas de acción) Ver
R
Recorset, variables (Tabla, Dynaset, Snapshot) Ver
Reemplazar texto (CTRL+L) ALT+E, Z
Referencias, lista ALT+H, R
Registro actual, imprimir con botón Ver
Registros a imprimir, seleccionar mediante cuadro de diálogo Ver
Registros a imprimir, seleccionar mediante parámetros Ver
Registros, añadir Ver
Registros, buscar en Dynasets y Snapshots (Find) Ver
Registros, buscar en Tablas (Seek) Ver
Registros, eliminar Ver
Registros, filtrar Ver
Registros, modificar Ver
Registros, ordenar Ver
Repetir Buscar o Reemplazar con cuadro de diálogo cerrado F3
GUIA ACCESS
Repetir Buscar o Reemplazar con cuadro de diálogo cerrado, hacia atrás MAY+F3
Requerir entrada en formulario Ver
Restablecer la ejecución de código o de macro MAY+F5
Restablecer, reiniciar código ALT+C, R
S
Salir de un procedimiento CTRL+MAY+F8
Saltar un procedimiento MAY+F8
Sangría, aplicar (TAB). Anular (RETROCESO). ALT+E, A
Secciones de ventana, cambiar entre superior e inferior F6
Secuencia de acciones en macros Ver
Selección, buscar la siguiente aparición CTRL+F3
Selección, consultas (dynaset) Ver
Seleccionar informe a imprimir mediante cuadro de diálogo Ver
Seleccionar registros a imprimir mediante cuadro de diálogo Ver
Seleccionar registros a imprimir mediante parámetros Ver
Seleccionar todo el código visible en la ventana Módulo CTRL+A
Select case, instrucción Ver
Snapshot, variable Recorset Ver
Solicitar información al usuario con cuadro de diálogo Ver
Solución de errores de código Ver
Suspender ejecución de código Ver
T
Tabla, variable Recorset Ver
Tecla, asignar acción o una serie de acciones Ver
Terminar ejecución ALT+C, T
Tipo de control Ver
Transacciones Ver
Tratamiento de datos, manipulación Ver
U
Ultima posición, volver (CTRL+MAY+F2) ALT+V, M
V
Validar con macro Ver
Variable o expresión, ver valor con código suspendido Ver
Variable, definición Ver
Variable, procedimiento o palabra clave, definición MAY+F2
Variables de controles Ver
Variables de Formularios e Informes Ver
Variables de objetos Ver
Variables QueryDef (crear, modificar consultas de acción) Ver
Variables Recorset (Tabla, Dynaset, Snapshot) Ver
Variables, presentación en panel Locales Ver
Variables, resumen, declaración, tipos de datos, ByVal Ver
Ventana Depuración (CTRL+S) ALT+V, V
Ventana Macro o Módulo, abrir desde formulario o informe Ver
Ventana macros, saltar entre paneles F6
Ventana módulo Ver
Visualizar o no un control Ver
Volver última posición (CTRL+MAY+F2) ALT+V, M
W
With, instrucción Ver
X
Y
Z

MACROS
Una macro es un conjunto de una o más acciones que cada una realiza una operación determinada, tal como abrir
un formulario o imprimir un informe. Las macros pueden ayudar a automatizar las tareas comunes. Por ejemplo,
puede ejecutar una macro que imprima un informe cuando el usuario haga clic en un botón de comando.
Una macro puede ser una macro compuesta de una secuencia de acciones, o puede ser un grupo de macros. Ta-
mbién se puede usar una expresión condicional para determinar si se llevará a cabo una acción en algunos casos
cuando se ejecute la macro.

GUIA ACCESS
Una secuencia de acciones.
Una macro puede estar compuesta de una serie de acciones. Access lleva a cabo estas acciones cada vez que se
ejecuta la macro.
Un grupo de macros:
Si tiene numerosas macros, agrupar las macros relacionadas en grupos de macros puede ayudar a administrar la
base de datos más fácilmente. Para mostrar los nombres de las macros de un grupo de macros, haga clic en No-
mbres de macros en el menú Ver en la ventana Macro.
El nombre en la columna Nombre de macro identifica a cada macro. Cuando se ejecuta una macro en un grupo
de macros, Access lleva a cabo la acción de la columna acción y cualquier otra acción que siga inmediatamente,
cuya columna Nombre de macro esté en blanco.
Para ejecutar una macro en un grupo de macros, utilice el nombre del grupo de macros seguido de un punto y a
continuación el nombre de macro. En el ejemplo anterior, para hacer referencia a la macro Empleados en el gru-
po de macros Botones, escribiría Botones.Empleados.
Acciones condicionales.
Para mostrar la columna Condición, haga clic en Condiciones en el menú Ver en la ventana Macro.
F6 para saltar entre paneles de ventana Macro.
Para crear Macro que abra un objeto, arrastrarlo desde la ventana Database a la de Macro, las dos en Mosaico.
Macro Group: Invoice. Una Macro de Invoice: Tax. Para llamar sólo a Tax: Invoice.Tax
Ver columnas de Nombres y Condiciones en Menú Ver, o con sus botones.
Cuándo utilizar una macro
Las macros son un método sencillo para llevar a cabo tareas sencillas como abrir y cerrar formularios, mostrar u
ocultar barras de herramientas y ejecutar informes. Permiten vincular fácil y rápidamente los objetos de la base
de datos creados, ya que no es necesario recordar mucha sintaxis; los argumentos de cada acción se muestran en
la parte inferior de la ventana Macro.
Además de la facilidad de uso, deberá utilizar macros para:
· Realizar asignaciones globales de teclas.
· Ejecutar una acción o una serie de acciones cuando se abre por primera vez una base de datos. Además,
puede usar el cuadro de diálogo Inicio para que se realicen determinadas operaciones cuando se abra una base de
datos, como, por ejemplo, que se abra un formulario.
MACROS - MENUS.
MENU EDICION
Eliminar filas: Elimina la fila o filas seleccionadas. Para seleccionar una fila, haga clic en el selector de fila .
MENU VER
Nombres de macro: Alterna entre presentar y ocultar la columna Nombres de macro en la ventana Macro. Pre-
sente la columna Nombre de macro cuando defina un grupo de macros.
Condiciones: Alterna entre presentar y ocultar la columna Condiciones en la ventana Macro. Presente la colum-
na Condiciones cuando quiera establecer condiciones para una acción.
MENU INSERTAR
Filas: Crea una fila en blanco antes de la fila seleccionada. Para seleccionar una fila, haga clic en el selector de
fila.
MENU EJECUTAR
Ejecutar: Ejecuta la macro activa en la ventana Macro. Si la macro es un grupo de macros, Microsoft Access
ejecuta la primera macro del grupo. Si la primera línea está en blanco o contiene un comentario, la macro no se
ejecutará. También se accede a este comando por botón en Ficha Macro de la ventana Base de Datos, ejecutan-
do la macro seleccionada..
Paso a paso: Activa y desactiva el modo paso a paso. Cuando está activado el modo paso a paso, las acciones se
ejecutan una a una.
Crear una macro
1 En la ventana Base de datos, haga clic en la ficha Macros.
2 Haga clic en Nuevo.
3 En la columna Acción, haga clic en la flecha para presentar la lista de acciones.
4 Haga clic en la acción que desee utilizar.
5 Introduzca un comentario para la acción. Los comentarios son opcionales pero harán la macro más fácil
de entender y mantener.
6 En la parte inferior de la ventana, especifique los argumentos de la acción, si es que se requiere alguno.
7 Para agregar más acciones a la macro, muévase a otra fila de acción y repita los pasos 3 a 6. Access
lleva a cabo las acciones en el orden en el que se enumeren.
Sugerencia: Para crear rápidamente una macro que lleva a cabo una acción sobre un objeto de base de datos
específico, arrastre el objeto desde la ventana Base de datos hasta una fila de acción en la ventana Macros. Por
ejemplo, puede crear una macro que abra un formulario arrastrando el formulario a una fila de acción. Para hacer
esto, haga clic en Mosaico vertical en el menú Ventana para posicionar la ventana Macros y la ventana Base de
datos de forma que ambas sean visibles en su pantalla; a continuación haga clic en la ficha de la ventana Base de

GUIA ACCESS
datos correspondiente al tipo de objeto que desee arrastrar, y después haga clic en el objeto y arrástrelo hasta una
fila de acción. Arrastrar una macro agrega una acción que ejecuta la macro, mientras que arrastrar cualquier otro
objeto (tablas, consultas, formularios, informes o módulos) agrega una acción que abre el objeto.
Ejecutar una macro
Cuando ejecuta una macro, Access comienza desde el principio de la macro y lleva a cabo todas las acciones en
la macro hasta que alcanza o bien otra macro (si la macro se encuentra en un grupo de macros) o el fin de la
macro.
Una macro puede ser ejecutada directamente, desde otra macro o un procedimiento de evento, o como respuesta
a un evento que se produce en un formulario, informe o control. Por ejemplo, puede agregar una macro a un
botón de comando de forma que la macro se ejecute cuando el usuario presiona el botón. También puede crear
un comando de menú personalizado o un botón de la barra de herramientas que ejecute una macro, asignar una
macro a una combinación de teclas, o ejecutar automáticamente una macro al abrir una base de datos.
Ejecutar directamente una macro
· Para ejecutar directamente una macro desde la ventana Macro, haga clic en Ejecutar en la barra de
herramientas.
· Para ejecutar una macro desde la ventana Base de datos, haga clic en la ficha Macros y después haga
doble clic en el nombre de la macro.
· Para ejecutar una macro desde la vista Diseño del formulario o desde la vista Diseño del informe, en el
menú Herramientas sitúe el puntero sobre Macro y haga clic en Ejecutar macro.
· Para ejecutar una macro desde cualquier parte de Access, en el menú Herramientas, haga clic en Eje-
utar macro. A continuación haga clic sobre una macro en el cuadro desplegable Nombre de la macro.
Nota: Por lo general, sólo se ejecuta una macro directamente cuando desea probarla. Puede entonces agregar la
macro a un formulario, informe o control, de forma que se ejecute como respuesta a un evento, o puede crear un
comando de menú personalizado que ejecute la macro.
Ejecutar una macro o un procedimiento de evento para un evento en un formulario, un informe o un control
Microsoft Access responde a muchos tipos de eventos en formularios, informes y controles, incluyendo clics del
mouse, cambios en los datos, así como aperturas o cierres de formularios o informes.
1 Abra el formulario o informe en la vista Diseño.
2 Cree una macro o un procedimiento de evento. (Un procedimiento de evento es un procedimiento que se
ejecuta automáticamente como respuesta a un evento iniciado por el usuario o por el código de programa o bien
activado por el sistema.). Así, por ejemplo, puede crear una macro o un procedimiento de evento que muestre un
mensaje cuando se haga clic en un botón de comando.
3 Establezca la propiedad de evento del formulario, informe o control apropiada al nombre de la macro o
a [Procedimiento de evento] si está utilizando un procedimiento de evento.
Por ejemplo, para utilizar una macro que muestre un mensaje cuando se hace clic en un botón de comando, esta-
blezca la propiedad AlHacerClic (OnClick) del botón de comando al nombre de la macro que muestra el mensa-
je. Para utilizar un procedimiento de evento, cree un procedimiento de evento Click para el botón de comando, y
establezca AlHacerClic (OnClick) a [Procedimiento de evento]
Ver Pág 83, Eventos.
Ejecutar una macro que pertenece a un grupo de macros.
· Especifique la macro como valor propiedad de evento en un formulario o informe o como argumento de
Nombre de macro de la acción EjecutarMacro. Refiérase a la macro utilizando esta sintaxis.
nombregrupomacros.nombremacro
Por ejemplo, el valor de propiedades de evento siguiente ejecuta una macro llamada Categorías en un grupo de
macros llamado Botones del Panel de control del formulario:
Botones del Panel de control del formulario.Categorías
· En el menú Herramientas, sitúe el puntero sobre Macro, haga clic en Ejecutar macro y seleccione la
macro de la lista Nombre de macro. Cuando los nombres de las macros aparecen en la lista, Access incluye una
entrada por cada macro en cada grupo de macros.
· Ejecute una macro que esté en un grupo de macros desde un procedimiento de Visual Basic para aplic-
aciones utilizando el método RunMacro del objeto DoCmd, con la sintaxis mostrada previamente para referirse a
la macro.
Ejecutar una macro desde otra macro o desde un procedimiento Visual Basic
Para ejecutar una macro desde otra macro o desde un procedimiento de Visual Basic, agregue la acción Ejecuta-
rMacro a su macro o procedimiento.
· Para agregar la acción EjecutarMacro a una macro, haga clic en EjecutarMacro en la lista de acciones en
una fila de acción que esté libre, y coloque en el argumento de Nombre de la macro el nombre de la macro que
desea ejecutar.
· Para agregar la acción EjecutarMacro a un procedimiento Visual Basic, agregue el método RunMacro
del objeto DoCmd a su procedimiento, y especifique el nombre de la macro que desea ejecutar; por ejemplo, el
siguiente método RunMacro ejecuta la macro Mi Macro:
DoCmd.RunMacro "Mi Macro"

GUIA ACCESS
Abrir la ventana Macro o Módulo desde un formulario o informe
1 En la vista Diseño del formulario o en la vista Diseño del informe, lleve a cabo una de estas acciones:
· Haga doble clic en el selector de formulario o selector de informe para abrir la hoja de propiedades del
formulario o informe.

· Haga doble clic en el selector de sección para abrir la hoja de propiedades de la sección.
· Asegúrese de que un control está seleccionado, y haga clic en Propiedades en la barra de herramientas.
2 Haga clic en el botón Generar al lado de la propiedad de evento adecuada. Por ejemplo, si desea crear
una macro o procedimiento de evento que se ejecute al hacer clic en un botón de comando, haga clic en el botón
Generar al lado de la propiedad AlHacerClic (OnClick) del botón de comando.
3 Elija el Generador de macros para abrir la ventana Macro o haga clic en el Generador de código para
abrir la ventana Módulo.
Nota: Si desea ver todo el código detrás de un formulario o informe, elija Código del menú Ver.
Condiciones en una macro.
En algunos casos, puede desear llevar a cabo una acción o serie de acciones en una macro solamente si se cum-
le una condición en particular. Por ejemplo, si está utilizando una macro para validar los datos de un formulario,
puede desear presentar un mensaje en respuesta a un conjunto de valores introducidos en un registro y otro men-
saje en respuesta a otro conjunto diferente de valores. En casos como éstos, puede utilizar las condiciones para
controlar el flujo de la macro.
Una condición es una expresión lógica. La macro sigue las distintas rutas dependiendo de si la condición es
verdadera o falsa.
Introduzca condiciones en la columna Condición de la ventana Macros. Si se cumple una condición, Access
lleva a cabo la acción en esa fila. Puede hacer que Access lleve a cabo una serie de acciones si la condición es
verdadera introduciendo puntos suspensivos (...) en la columna Condición de las acciones que siguen inmediat-
amente a la condición. Las acciones que sigan a condiciones en blanco se realizarán independientemente de la
expresión condicional.
Por ejemplo, la siguiente macro lleva a cabo la acciones MsgBox y DetenerMacro cuando no haya valor en el
campo País (cuando el valor es Nulo). Si no fuera porque la segunda acción detiene la Macro, también realizaría
la tercera y cuarta. Si hubiera valor (falso) sólo efectuaría las tercera y cuarta.
Condición Acción
IsNull([País]) MsgBox
... StopMacro
OpenForm
MoveSize.
Ver Ej. Validar.
Ejemplos de condiciones de macro
Utilice esta expresión Para llevar a cabo la acción si
[Ciudad]=”Paris” Paris es el valor de Ciudad en el campo en el formulario desde el cual se ejecutó la macro.
DCont(“[IdPedido]”, “Pedidos”)>35 Hay más de 35 entradas en el campo IdPedido de la tabla Pedidos.
DCont(“*”, “Detalles de pedidos”, “[IdPedido]=Forms![Pedidos]![IdPedido]")>3 Hay más de tres entra-
das en la tabla Detalles de pedidos para los cuales el campo IdPedido de la tabla coincide con el campo IdPedido
del formulario Pedidos.
[FechaEnvío] Entre #2-Feb-1995# y #2-Mar-1995# El valor del campo FechaEnvío del formulario desde el cual
se ejecuta la macro no es anterior al 2-Feb-1995 y no es posterior al 2-Mar-1995.
Forms![Productos]![UnidadesEnStock]<5 El valor del campo UnidadesEnStock del formulario Productos es
menor que cinco.
EsNulo([Nombre]) El valor Nombre del formulario desde el que se ejecuta la macro es Nulo(no tiene
valor). Esta expresión es equivalente a [Nombre] Es Nulo.
[País]=”UK” Y Forms![Ventas Totales]![TotalPedidos]>100 El valor en el campo País del formulario desde el
que se ejecuta la macro es UK, y el valor del campo TotalPedidos del formulario Ventas Totales es mayor que
100.
[País] En (“Francia”, “Italia”, “España”) y Len([CódigoPostal])<>5 El valor en el campo País del formulario
desde el cual se ejecuta la macro es Francia, Italia, o España, y el código postal no es de 5 caracteres de longitud.
CuadroMsj(“¿Confirmar cambios?”,1)=1 Haga clic en Aceptar en el cuadro de diálogo que presenta la función
CuadroMsj. Si hace clic en Cancelar en el cuadro de diálogo, Access ignora la acción.
Sugerencia: Para hacer que Access ignore temporalmente una acción, introduzca Falso como condición. Ignorar
temporalmente una acción puede ser de utilidad cuando esté tratando de encontrar problemas en una macro.
Ver Pág 87, Ejemplos de macros.
Agregar una acción a una macro
1 En la ventana Macros, haga clic en la primera fila en blanco de la columna Acción. Si desea insertar una
acción entre dos filas de acciones, haga clic en el selector de la fila de acción que está justo debajo de la fila
donde desea insertar la nueva acción, y haga clic en Insertar filas en la barra de herramientas.

GUIA ACCESS
2 En la columna Acción, haga clic en la flecha para presentar la lista de acciones.
3 Haga clic en la acción que desee utilizar.
4 Escriba un comentario para la acción. Los comentarios son opcionales.
5 En la parte inferior de la ventana, especifique los argumentos de la acción, si se requiere alguno.
Sugerencia: En el caso de muchos argumentos de acción cuyos valores establecidos son el nombre del objeto de
la base de datos, puede establecer el argumento arrastrando el objeto desde la ventana Base de datos al cuadro
del argumento NombreObjeto de la acción. Por ejemplo, puede establecer el argumento Nombre Objeto de la
acción SeleccionarObjeto al nombre de un formulario arrastrando el formulario al cuadro del argumento. Para
hacer esto, haga clic en Mosaico vertical del menú Ventana para posicionar la ventana Macros y la ventana Base
de datos de forma que ambas sean visibles en su pantalla; entonces, haga clic en la ficha de la ventana Base de
datos en el tipo de objeto que desee arrastrar, haga clic en el objeto y arrástrelo al cuadro del argumento. Al arra-
strar el objeto también se establece el argumento Tipo de objeto.
Acciones agrupadas por tarea
Categoría Tarea Acción
Datos de formularios e informes
Restringe datos AplicarFiltro
Se mueve por los datos BuscarRegistro, BuscarSiguiente, IrAControl, IrAPágina, IrARegistro,
Ejecución
Ejecuta un comando EjecutarComando
Sale de Access Salir
Ejecuta una macro, procedimiento o consulta AbrirConsulta, EjecutarCódigo, EjecutarMacro, E-
jecutarSQL
Ejecuta otra aplicación EjecutarAplicación
Detiene la ejecución CancelarEvento, DetenerTodasMacros, DetenerMacro, Salir
Importar/exportar
Envía objetos Access a otras aplicaciones EnviarObjeto, SalidaHacia
Transfiere datos entre formatos de datos de Access y otros TransferirBaseDatos,
TransferirHojaCálculo, TransferirTexto
Manipulación de objetos
Copia, guarda o cambia el nombre de un objeto CambiarNombre, CopiarObjeto, Guardar
Elimina un objeto EliminarObjeto
Mueve o cambia el tamaño de una ventana DesplazarTamaño, Maximizar, Minimizar, Restaurar
Abre o cierra un objeto AbrirConsulta, AbrirFormulario, AbrirInforme, AbrirMódulo,
AbrirTabla, Cerrar
Imprime un objeto AbrirConsulta, AbrirFormulario, AbrirInforme, Imprimir
Selecciona un objeto SeleccionarObjeto
Establece el valor de un campo, control o propiedad EstablecerValor
Actualiza datos o la pantalla MostrarTodosRegistros, NuevaConsulta, RepintarObjeto
Diversos
Crea una barra de menús personalizada, un menú contextual personalizado, una barra de menús glo-
bal, o menú contextual global AgregarMenú
Establece el estado de los elementos de menú en una barra de menús personalizada o en una barra de
menús global EstablecerElementoDelMenú
Muestra información por la pantalla CuadroMsj, Eco, EstablecerAdvertencias, RelojDeAre-
na
Genera pulsaciones de teclas EnviarTeclas
Muestra u oculta la barra de comandos incorporada o personalizada MostrarBarraDeHerramientas
Produce un aviso sonoro Bip
Establecer argumentos de acción en una macro
Después de agregar una acción a una macro, establezca los argumentos de la acción en la parte inferior de la
ventana Macro. Estos argumentos dan a Access información adicional sobre cómo llevar a cabo la acción.
Estas son algunas sugerencias para el establecimiento de los argumentos de la acción:
· Puede introducir un valor en un cuadro de argumento o, en muchos casos, puede seleccionar un valor
establecido de una lista.
· En general, es una buena idea establecer los argumentos de la acción en el orden en el que están listado-
s, porque las opciones de un argumento pueden determinar las opciones de los argumentos que le siguen.
· Si agrega una acción a su macro arrastrando un objeto de base de datos desde la ventana Base de datos,
Access establece de forma automática los argumentos apropiados para esa acción.
· Si una acción tiene un argumento que requiere el nombre de un objeto de la base de datos, puede estab-
lecer de forma automática el argumento y el tipo de objeto correspondiente arrastrando el objeto desde la ventana
Base de datos al cuadro del argumento.

GUIA ACCESS
· Puede utilizar una expresión precedida de un signo de igual (=) para establecer los argumentos de cua-
lquier acción. Puede utilizar una expresión para los siguientes argumentos.
Argumento Acción
Tipo de objeto Cerrar, EliminarObjeto, IrARegistro, SalidaHacia, CambiarNombre, RepintarObjeto,
Guardar; SeleccionarObjeto, EnviarObjeto, TransferirBaseDatos
Tipo del objeto de origen CopiarObjeto
Tipo de base de datos TransferirBaseDatos
Tipo de hoja de cálculo TransferirHojaCálculo
Nombre de especificación TransferirTexto
Nombre de la barra de herramientas MostrarBarraDeHerramientas
Formato de salida SalidaHacia, EnviarObjeto
Todos los argumentos EjecutarComando
Introducir una expresión en el argumento de una acción de macro
· Escriba un signo de igual (=) seguido de la expresión. Por ejemplo, la siguiente expresión establece el
argumento de la acción al valor del control ListaDeSelecciónDeCompañías:
=[ListaDeSelecciónDeCompañías]
Existen dos excepciones: el argumento Expresión de la acción EstablecerValor, y el argumento Repetir Expresi-
ón de la acción EjecutarMacro. Si precede una expresión en estos argumentos con el signo de igual, Access
evalúa la expresión dos veces, lo que puede producir resultados inesperados.
Sugerencia: También puede hacer clic en el botón Generar junto al cuadro de argumento para usar el Generador
de expresiones, el cual le guía por el proceso de creación de una expresión..
Asignar una acción o una serie de acciones a una tecla
Puede asignar una acción o un conjunto de acciones a una tecla o una combinación de teclas específica creando
un grupo de macros denominado AsignarTeclas. Cuando presione la tecla o la combinación de teclas, Access
ejecutará la acción.
1 En la ventana de la base de datos, haga clic en la ficha Macros.
2 Haga clic en Nuevo.
3 Haga clic en Nombres de macro en la barra de herramientas.
4 En la columna Nombre de macro, escriba la tecla o la combinación de teclas a la que desea asignar la
acción o el conjunto de acciones.
5 Agregue la acción o el conjunto de acciones que desea que lleve a cabo la tecla o la combinación de
teclas. Por ejemplo, podría agregar una acción EjecutarMacro que ejecute la macro ImprimirRegistroActual al
presionar CTRL+R.
6 Repita los pasos 4 y 5 para cualquier otra asignación de teclas que desee realizar.
7 Guarde el grupo de macros con el nombre AsignarTeclas.
Las nuevas asignaciones de teclas tendrán efecto en cuanto guarde el grupo de macros y cada vez que abra la
base de datos.
Nota: Si asigna un conjunto de acciones a una combinación de teclas que utiliza Access (por ejemplo, CTR-
L+C es la combinación de teclas para Copiar), las acciones que asigne a esa combinación de teclas sustituirán a
la asignación de Access.
Llevar a cabo una acción la primera vez que se abre la base de datos
Puede utilizar una macro especial llamada AutoExec para ejecutar una acción o una serie de acciones cuando se
abre la base de datos por primera vez. Cuando se abre la base de datos, Access busca una macro con este nom-
re y, si la encuentra, la ejecuta automáticamente.
1 Cree una macro que contenga las acciones que desea ejecutar cuando abra la base de datos.
2 Guarde la macro con el nombre AutoExec.
La próxima vez que abra la base de datos, Access ejecutará automáticamente esta macro.
Nota: Si no desea ejecutar la macro AutoExec cuando abre la base de datos, mantenga presionada la tecla
MAY cuando se abra la base de datos.
· También puede controlar cómo se inicia una base de datos o una aplicación estableciendo opciones en el
cuadro de diálogo Inicio (menú Herramientas).
Ejemplo:
Nombre de macro: Autoexec. (Se ejecuta automáticamente al abrir la Base de datos.
Action Comments
Echo Freeze screen (Echo off)
Hourglass Display an hourglass while macro is running
OpenForm Abre Formulario Principal (Botones: View Forms, Print Repts, View Daily Order Totals, Da-
tabase Window, Exit.)

A cada Botón de formulario principal en OnPush:


Macro grupo Principal:
Name Action

GUIA ACCESS
View Form OpenForm (Formularios)
Print Reports OpenForm (Informes)
Orders Totals OpenForm (Formulario diálogo para ver totales pedidos diarios).
Database Window SelectObject (Ventana de Base de datos)
Exit Quit (Salir de Access)

Ej.: Botón Print Repts.: prop. Auto Repeat: no, OnPush: Principal.Print Reports.
Eventos
Un evento es una acción determinada que se produce en, o con, un objeto particular. Access puede responder a
una variedad de eventos: clics del ratón, cambios en los datos, formularios que se abren o se cierran, y muchos
otros. Los eventos son normalmente el resultado de una acción del usuario.
Usando un procedimiento de evento o una macro, se pueden agregar respuestas personalizadas a un evento que
se produzca en un formulario, informe, o control.
Suponga que desea que un formulario Detalles de producto se abra cuando haga clic en un botón de comando
Detalles de producto en un formulario Pedidos. Los siguientes ejemplos muestran cómo hacer ésto usando un
procedimiento de evento o usando una macro.
Responder al evento Al hacer clic usando un procedimiento de evento
Ver Pág 79. Ver Pág 94.
Cuando se crea un procedimiento de evento para un objeto, Access agrega una plantilla de procedimiento de
evento nombrada para el evento y el objeto al módulo de formulario o módulo de informe. Todo lo que necesita
hacer es agregar código que responda de la forma que desee cuando se produzca el evento en el formulario o
informe.
Responder al evento Al hacer clic usando una macro
Ver Pág 79
Para hacer que se ejecute una macro en respuesta a un evento, abra la hoja de propiedades para el formulario,
informe, o control. Busque la propiedad que corresponda al evento, y establézcala a la macro que desee ejecutar.
Determinar cuándo ocurre un evento
Una sola acción, como puede ser pasar de un control a otro puede desencadenar varios eventos diferentes que
suceden en una determinada secuencia. El saber cuándo ocurren los eventos y en qué orden lo hacen es importa-
nte, porque esto afecta a cómo y cuándo se ejecutan sus macros o procedimientos de evento. Por ejemplo, si
tiene dos procedimientos de evento que deben ejecutarse en un orden determinado, querrá estar seguro de que los
eventos con los que están asociados suceden en ese orden.
Nota: Puede ver el orden en que ocurren los eventos en un formulario, abriendo el formulario MostrarEventos
en la aplicación de ejemplo Pedidos. Cuando ocurre un evento en el formulario MostrarEventos, por ejemplo,
cuando abre el formulario o mueve un registro, el formulario HistorialDeEventos relaciona los eventos en el
orden en el cual se producen.
Eventos de formularios:
OnOpen (opening a Form)
OnCurrent (making a record the current (al cambiar))
OnInsert (inserting a new record)
BeforeUpdate and AfterUpdate (changing data in a Record)
OnDelete (deleting a record)
OnClose (closing a Form)
Eventos de controles:
OnEnter (selecting a Control)
OnPush (pressing a Command Button)
BeforeUpdate and AfterUpdate (changing data in a Control)
OnDoubleClick (double-clicking a Control)
OnExit (leaving a Control)
Eventos de Informes:
OnOpen (antes de empezar a imprimir, seleccionar registros con macro)
OnClose (cuando se cierra, por ejemplo preguntar por el usuario)
Eventos de Secciones de Informes:
OnFormat (prior to layout for Print. Ej.: display or hide a control based on another control. Has access
to current record.
OnPrint (before the section is printed. Ej.: update page totals for the page on the page footer).
EVENTOS DE DATOS
Los eventos de datos ocurren cuando se introducen, eliminan o cambian datos en un formulario o control, o cua-
ndo el enfoque se mueve desde un registro a otro.
Evento Propiedad del evento Ocurrencia

GUIA ACCESS
AfterDelConfirm
DespuésDeConfirmarEliminación (AfterDelConfirm) (formularios) Después de confirmar la eliminación de
los registros y los registros sean realmente eliminados o después de que la eliminación sea cancelada.
AfterInsert DespuésDeInsertar (AfterInsert) (formularios) Después de que se haya agregado un nue-
vo registro a la base de datos.
AfterUpdate
DespuésDeActualizar (AfterUpdate) (formularios, controles) Después de que un control o registro sea actualiza-
do con el dato cambiado. Este evento ocurre cuando el control o el registro pierde el enfoque, o se hace clic en
Guardar registro en el menú Registros. Este evento ocurre para los registros nuevos y los existentes.
BeforeDelConfirm
AntesDeConfirmarEliminación (BeforeDelConfirm) (formularios) Después de que uno o más registros hayan
sido eliminados, pero antes de que Access muestre un cuadro de diálogo pidiéndole que confirme o cancele la
eliminación. Este evento ocurre después del evento Delete.
BeforeInsert
AntesDeInsertar (BeforeInsert) (formularios) Cuando se escribe el primer carácter de un nuevo registro,
pero antes de que se haya agregado el registro a la base de datos.
BeforeUpdate
AntesDeActualizar (BeforeUpdate) (formularios, controles) Antes de que un control o registro sea actualizado
con el dato modificado. Este evento ocurre cuando el control o registro pierde el enfoque o se haga clic en Gua-
dar registro en el menú Registros. Este evento ocurre para los registros nuevos y los existentes.
Change
AlCambiar (OnChange) (controles) Cuando cambia el contenido de un cuadro de texto o la parte de
cuadro de texto de un cuadro combinado; por ejemplo, cuando se escribe un carácter en el control o se cambia la
propiedad Texto del control usando una macro o Visual Basic.
Current
AlActivarRegistro (OnCurrent) (formularios) Cuando el enfoque se mueve a un registro, haciéndolo el
registro activo o cuando se hace una NuevaConsulta al origen de datos de un formulario. Este evento ocurre
cuando se abre por primera vez un formulario, y en el momento en el que el enfoque abandona a un registro y se
mueve a otro. También ocurre cuando se realiza de nuevo una consulta al origen de datos de un formulario; por
ejemplo, cuando se hace clic en Quitar filtro u ordenar en el menú Registros o se utiliza la acción MostrarTodo-
sRegistros o la acción NuevaConsulta.
Delete
AlEliminar (OnDelete) (formularios) Cuando se elimina un registro, pero antes de confirmar la eliminaci-
ón y de que sea realizada realmente.
NotInList
AlNoEnLaLista (OnNotInList) (controles) Cuando se introduce un valor en un cuadro combinado que no está
en la lista del cuadro combinado.
Updated
AlActualizar (OnUpdated) (controles) Cuando ha sido modificado el dato de un objeto OLE.
EVENTOS DE ENFOQUE
Los eventos de enfoque ocurren cuando un formulario o control pierde o recibe el enfoque, o un formulario o
informe se convierte en activo o inactivo.
Evento Propiedad del evento Ocurrrencia
Activate
AlActivar (OnActivate) (formularios, informes) Cuando un formulario o informe se convierte en la ventana
activa.
Deactivate
AlDesactivar (OnDeactivate) (formularios, informes) Cuando una ventana diferente de Access se convi-
erte en la ventana activa, pero antes de que lo haga. El evento Deactivate no ocurre cuando el enfoque se mueve
a la ventana de otra aplicación, a un cuadro de diálogo o un formulario emergente.
Enter
AlEntrar (OnEnter) (controles) Antes de que un control reciba el enfoque, bien desde un control en el mismo
formulario o cuando se abre el formulario. Este evento ocurre antes que el evento GotFocus.
Exit
AlSalir (OnExit) (controles) Justamente antes de que un control pierda el enfoque hacia otro control en el
mismo formulario. Este evento ocurre antes del evento LostFocus.
GotFocus
AlRecibirEnfoque (OnGotFocus) (formularios, controles) Cuando un control o un formulario con controles
no activos recibe el enfoque. Un formulario sólo puede recibir el enfoque si todos los controles visibles de un
formulario están desactivados o no hay controles en el formulario.

GUIA ACCESS
LostFocus
AlPerderEnfoque (OnLostFocus) (formularios, controles) Cuando un formulario o control pierde el enfoque.
Un formulario sólo puede tener el enfoque si todos los controles visibles en un formulario están desactivados o
no hay controles en el formulario.
EVENTOS DE ERROR Y DE SINCRONIZACIÓN
Los siguientes eventos se utilizan para el tratamiento de los errores y la sincronización de los datos en los for-
ularios o informes.
Evento Propiedad del evento Ocurrencia
Error
AlOcurrirError (OnError) (formularios, informes) Cuando se produce un error en tiempo de ejecución en
Access mientras se esté en el formulario o informe. Esto incluye a los errores del motor de base de datos Jet,
aunque no los errores en tiempo de ejecución de Visual Basic. (Puesto que las macros no pueden determinar qué
error ha ocurrido, con este evento se utilizan normalmente procedimientos de evento de Visual Basic.)
Timer
AlCronómetro (OnTimer) (formularios) Cuando pasa un intervalo especificado de tiempo, según se especifi-
que en la propiedad IntervaloDeCronómetro (TimerInterval) del formulario. Se puede utilizar el evento Timer
para mantener los datos sincronizados en un entorno multiusuario haciendo una nueva consulta o actualizando
los datos a intervalos especificados.
EVENTOS DE FILTRO
Los eventos de filtro ocurren cuando se aplica o se crea un filtro en un formulario.
Evento Propiedad del evento Ocurrencia
ApplyFilter
AlAplicarFiltro (OnApplyFilter) (formularios) Cuando se hace clic en Aplicar filtro u ordenar en el menú
Registros o se hace clic en el botón Aplicar filtro en la barra de herramientas. Esto se aplica al filtro que se haya
creado más recientemente (creado usando la característica Filtro por formulario o la ventana Filtro u orden ava-
zado).Cuando se hace clic en Filtro por selección después de haber apuntado a Filtro en el menú Registros o
haciendo clic en el botón Filtro por selección en la barra de comandos. Esto se aplica al filtro basado en la selec-
ción actual del formulario.Cuando se hace clic en Quitar filtro u ordenar en el menú Registros o se hace clic en el
botón Quitar filtro en la barra de comando. Esto elimina cualquier filtro (u ordenación) que se esté aplicando en
la actualidad al formulario.Cuando se cierra la ventana Filtro u orden avanzado o la ventana Filtro por formulari-
o.
Filter
AlFiltrar (OnFilter) (formularios) Cuando se hace clic en Filtro por formulario después de apuntar a Filtro en el
menú Registros o se hace clic en el botón Filtro por formulario en la barra de comando. Esto abre la ventana
Filtro por Formulario, donde se puede crear rápidamente un filtro basado en los campos del formulario.Cuando
se hace clic en Filtro u orden avanzado después de apuntar a Filtro en el menú Registros. Esto abre la ventana
Filtro u orden avanzado, donde se pueden crear filtros complejos para el formulario.
EVENTOS DE IMPRESIÓN
Los eventos de impresión ocurren cuando se imprime un informe o se le da formato para que se imprima.
Evento Propiedad del evento Ocurrencia
Format
AlDarFormato (OnFormat) (informes) Cuando Access determina qué datos van en la sección de un infor-
me, pero antes de que Access dé formato a la sección para vista preliminar o impresión. Su macro o procedimi-
ento de evento puede utilizar los datos del registro activo para hacerle cambios al diseño de la página..
NoData
AlNoDatos (OnNoData) (informes) Después de que Access dé formato a un informe que no tiene datos
para que se imprima (el informe es dependiente de un recordset en blanco), pero antes de que se imprima el info-
rme. Este evento se puede utilizar para cancelar la impresión de un informe en blanco.
Page
AlPaginar (OnPage) (informes) Después de que Access dé formato a una página para que se imprima, pero
antes de que se imprima.
Print
AlImprimir (OnPrint) (informes) Después de que Access dé formato a los datos de una sección del informe,
pero antes de que se imprima la sección.
Retreat
AlRetirarse (OnRetreat) (informes) Cuando Access debe "retroceder" a un punto pasado una o más secciones del
informe para realizar múltiples pases para dar formato. Esto ocurre después del evento Format de la sección,
aunque antes del evento Print. El evento Retreat de cada sección ocurre mientras que Access retrocede pasada la
sección. Esto le permite deshacer cualquier cambio que haya hecho durante el evento Format para la sección.
EVENTOS DEL RATÓN
Los eventos del ratón ocurren cuando ocurre una acción del ratón, como por ejemplo presionar o hacer clic en un
botón del ratón.

GUIA ACCESS
Evento Propiedad del evento Ocurrencia
Click
AlHacerClic (OnClick) (formularios, controles) Para un control, este evento ocurre cuando se presiona y
luego se suelta (se hace clic) en el el botón primario del ratón sobre un control.Para un formulario, este evento
ocurre cuando se hace clic en un selector de registro o en un área fuera de una sección o control.
DblClick
AlHacerDobleClic (OnDblClick) (formularios, controles) Cuando se presiona y suelta (se hace clic) dos
veces con el botón primario del ratón en un control o su etiqueta.Para un formulario, este evento ocurre cuando
se hace doble clic en un área en blanco o selector de registro en el formulario.
MouseDown
AlBajarRatón (OnMouseDown) (formularios, controles) Cuando se presiona un botón del ratón mientras
que el puntero está en un un formulario o control.La cancelación del evento RatónDown usando la acción Can-
elarEvento en un macro evita que se muestre el menú contextual cuando se presione el botón secundario del
ratón.
MouseMove
AlMoverRatón (OnMouseMove) (formularios, controles) Cuando se libera un botón presionado del mous7e
mientras el puntero está en un formulario, sección de formulario, o control.
MouseUp
AlSubirRatón (OnMouseUp) (formularios, controles) Cuando se mueve el puntero del ratón sobre un
formulario o control.
EVENTOS DE TECLADO
Los eventos de teclado ocurren cuando se escribe en un teclado o cuando se envían pulsaciones usando la acción
EnviarTeclas o la instrucción SendKeys.
Evento Propiedad del evento Ocurre
KeyDown
AlBajarTecla (OnKeyDown) (formularios, controles) Cuando se presiona cualquier tecla en el teclado
mientras un control o formulario tiene el enfoque. Un formulario sólo puede tener el enfoque si están desactiva-
dos todos los controles visibles en el formulario o no hay controles en el formulario.El evento KeyDown ocurre
también si se envía una pulsación a un formulario o control usando la acción EnviarTeclas en una macro o la
instrucción SendKeys en Visual Basic.Un formulario recibe también todos los eventos KeyDown (incluso los de
los controles) antes de que ocurran para los controles si se establece la propiedad TeclaDePresentaciónPreliminar
(KeyPreview) del formulario a Sí.Si se mantiene presionada una tecla, el evento KeyDown ocurrirá repetidame-
nte.
KeyPress
AlPresionarTecla (OnKeyPress) (formularios, controles) Cuando se presiona o suelta una tecla o combina-
ción de teclas que produce un carácter ANSI estándar mientras un control o formulario tiene el enfoque. Un
formulario sólo puede tener el enfoque si todos los controles visibles en el formulario están desactivados o no
hay controles en el formulario.Por ejemplo, el evento KeyPress se puede utilizar para responder a pulsaciones de
teclas introducidas en un cuadro de texto o cuadro combinado. Para las pulsaciones no reconocidas por KeyPres-
s, como las teclas de función o de desplazamiento, utilice los eventos KeyDown y KeyUp.El evento KeyPress
también ocurre si se envía una pulsación que produzca un carácter ANSI estándar en un formulario o control
usando la acción EnviarTeclas en una macro o la instrucción SendKeys en Visual Basic.Un formulario recibe
también todos los eventos KeyPress (incluso los de los controles) antes de que ocurran para los controles si se
establece la propiedad TeclaDePresentaciónPreliminar (KeyPreview) del formulario a Sí.Si se mantiene presion-
ada una tecla, el evento KeyPress ocurrirá repetidamente.
KeyUp
AlSubirTecla (OnKeyUp) (formularios, controles) Cuando suelta una tecla presionada mientras un control o
formulario tiene el enfoque. El objeto con el enfoque recibe todas las pulsaciones. Un formulario sólo puede
tener el enfoque si todos los controles visibles en el formulario están desactivados o no hay controles en el form-
ulario.El evento KeyUp también ocurre si se envía una pulsación a un formulario o control usando la acción
EnviarTeclas en una macro o la instrucción SendKeys en Visual Basic.Un formulario recibe también todos los
eventos KeyUp (incluso los de los controles) antes de que ocurran para los controles si se establece la propiedad
TeclaDePresentaciónPreliminar (KeyPreview) del formulario a Sí.Si se mantiene presionada una tecla, el evento
KeyUp ocurre después de que hayan ocurrido todos los eventos KeyDown y KeyPress.
EVENTOS DE VENTANA
Los eventos de ventana ocurren cuando se abre, se ajusta el tamaño o cierra un formulario o informe.
Evento Propiedad del evento Ocurrencia
Close
AlCerrar (OnClose) (formularios, informes) Cuando se cierra un formulario o informe y se elimina de la pantalla.
Load
AlCargar (OnLoad) (formularios) Cuando se abre un formulario y se muestran sus registros. Este evento ocurre
antes del evento Current, aunque después que el evento Open.

GUIA ACCESS
Open
AlAbrir (OnOpen) (formularios, informes) Cuando se abre un formulario pero antes de que se muestre el primer
registro.Cuando se abre un informe pero antes de que se imprima.
Resize
AlCambiarTamaño (OnResize) (formularios) Cuando cambia el tamaño de un formulario. Este evento
también ocurre cuando se muestra un formulario por primera vez.
Unload
AlDescargar (OnUnload) (formularios) Cuando se cierra un formulario y sus registros son transferidos, pero
antes de que sea eliminado de la pantalla. Este evento ocurre antes que el evento Close.
Propiedades de evento
Las propiedades de evento hacen que una macro o el procedimiento de evento asociado de Visual Basic se eje-
uten cuando tiene lugar un evento determinado. Por ejemplo, si escribe el nombre de una macro en la propiedad
AlHacerClic (OnClick) de un botón de comando, esa macro se ejecuta cuando se hace clic en el botón de com-
ando.
Valores
Para ejecutar una macro, escriba el nombre de la macro. Puede seleccionar una macro existente en la lista. Si la
macro se encuentra en un grupo de macros, aparecerá en la lista bajo el nombre del grupo de macros, como no-
mbreGrupoMacro.nombreMacro.
Para ejecutar el procedimiento de evento asociado al evento, seleccione [Procedimiento de evento] en la lista.
Nota: Aunque el uso de un procedimiento de evento es el método recomendado para ejecutar código de Visual
Basic en respuesta a un evento, también es posible ejecutar una función definida por el usuario cuando tiene
lugar un evento. Para ejecutar una función definida por el usuario, incluya un signo igual (=) antes del nombre de
la función y paréntesis después de ella, como por ejemplo =nombreFunción( ).
Puede establecer las propiedades de evento en la hoja de propiedades de un objeto, en una macro, o utilizando
Visual Basic. Observe que no puede establecer ninguna propiedad de evento mientras da formato o imprime un
formulario o un informe.
Ejemplos
Para ejecutar Use la sintaxis Ejemplo:
Macro "nombreMacro" Button1.OnClick = "miMacro"
Procedimiento de evento "[Procedimiento de evento]" Button1.OnClick = "[Procedimiento de evento]"
Función definida por el usuario "=nombreFunción( )" Button1.OnClick = "=miFunción ()"
Generadores
Puede usar generadores para ayudarle a establecer una propiedad de evento. Para utilizarlos, haga clic en el bot-
ón Generar situado a la derecha del cuadro de propiedades o haga clic con el botón secundario del ratón sobre el
cuadro de propiedades y a continuación haga clic en Generar del menú contextual. En el cuadro de diálogo Ele-
gir generador, seleccione:
· El Generador de macros para crear y especificar una macro para esta propiedad de evento. También
puede usar el Generador de macros para editar una macro ya especificada por la propiedad.
· El Generador de código para crear y especificar un procedimiento de evento para esta propiedad de
evento. También puede usar el Generador de código para editar un procedimiento de evento ya especificado por
la propiedad.
· El Generador de expresiones para seleccionar y especificar una función definida por el usuario para
esta propiedad de evento.
En Visual Basic, establezca la propiedad a una expresión de cadena.
EJEMPLOS DE MACROS.
Ver Ejemplo, Pág. 61.
Abrir un Formulario con un botón desde otro Formulario
Arrastrar el Formulario a abrir (subformulario) a ventana acción de Macro. Guardar macro. Arrastrar Macro
desde ventana Base de datos a Formulario en diseño desde la que se quiere abrir el subformulario. Crea botón.
Al abrir formulario ir al registro que se quiera
Utilizar 'Where condition' en los argumentos de OpenForm: Ej.: [Supplier ID]=Forms![Suppliers]![Supplier ID]
(va al mismo Supplier ID de Formulario principal).
Para mantener los reg. correspondientes en Subformulario al mover reg. de Formulario:
En OnCurrent (prop. de Formulario principal) nombre de macro que tendrá:
Condición Acción
IsLoaded("Product List") OpenForm (con'Where')
'Where' es el del ejemplo de arriba. IsLoaded es el subformulario sólo si ya esta abierto. Ver ej. de form: Suppli-
ers. Review Products. Para función IsLoaded() Ver Pág 103.
Otro Ej.: Ejecute una acción AbrirFormulario en una macro que se ejecuta en respuesta al evento OnCurrent del
formulario Proveedor. Puede hacer que el formulario Lista de productos muestre los registros cuyo valor en el
campo IdProveedor en la tabla base coincida con el valor del campo IdProveedor del formulario. Establezca el
argumento de la Condición WHERE de la acción como se indica: [IdProveedor-

GUIA ACCESS
]=Forms![Proveedores]![IdProveedor]. Después de crear la macro, establezca la propiedad AlActivarRegistro
(OnCurrent) del formulario Proveedores al nombre de la macro.
Utilizar acción EstablecerValor (SetValue) para dar valor a campo
Ej.: Poner Supplier ID a Subformulario con valor ID de formulario principal al crear producto. Macro Attached
to Add Products button of Suppliers Form. Actions: Echo, OpenForm, SetValue. Properties of SetValue: Item:
Forms![Add Products]![Supplier ID]. Expression: [Supplier ID]
Acciones de navegación
GoToControl (enter only the control name), GoToPage (move to page and to its first control) ,GoToRecord (to a
record or a new one, to the same control as in the previous record). Ej.: Enfocar en un Control para comenzar
edición.
Para imprimir reg. actual
Para cualquier tabla: macro asociada a botón de formulario con:
Acción: DoMenuItem. Arguments: Menu Bar: Form. Menu Name: Edit. Command: Select Record (current).
Siguiente acción: Print.
En Access 97, la acción EjecutarComando reemplaza a la acción EjecutarElementoMenú (DoMenuItem).

Para filtrar:
Adjuntar macro a OnPush de botón para buscar país con ApplyFilter action. Argumento Filter Name para apl ic-
ar un filtro guardado como consulta o condición Where para, por ej.: [Ship Country]=”France”.
Ej. para Teléfonos: Crear botones para cada letra, y en OnPush de cada uno nombre de macro según letra (Gru-
poTeléfono.A). Crear Grupo Macros (GrupoTeléfono) con cada Nombre Macro igual a letra: A . Acción: Apply
filter. En 'Where cond.': [Company Name] Like "A*" (asociado a botón 'A')
Buscar reg. desde Cuadro Combinado:
Ej: Cuadro comb. Buscar Otro Proveedor. Macro: Poner nombre macro en AfterUpdate prop. del control Cuadro
comb.: Acción: GoToControl. Arg. Control Name: [Company Name] (Nombre con el Campo a buscar del Fo-
rmulario). Acción: FindRecord. Arg. FindWhat: =['Nombre de Control Comb.'], que ya tendrá el Proveedor a
buscar por acción anterior. Arg. Seach In: Current Field , que es [Company Name] que quedó enfocado en
GoToControl.
Validar:
Macro en BeforeUpdate de Propiedades del Formulario:
Para condiciones en mismo campo:
Condition Action
[Country] In ("France","Italy","Spain") and Len([Postal Code])<> 5 MsgBox (deben ser 5 caracteres)
... CancelEvent (no guarda)
[Country]In ("Australia", "Singapore") and Len([Postal Code])<>4 MsgBox
... CancelEvent
(siempre realizar esta acción) GoToControl (vuelve)
Requerir entrada:
Macro en BeforeUpdate de Formulario:
Para diferentes campos:
[First Name] Is Null MsgBox
... CancelEvent
... GoToControl
... StopMacro (ya no sigue)
[Last Name]Is Null MsgBox
... CancelEvent
... GoToControl
Imprimir informe mediante botón:
Crear macro arrastrando Report (Invoice, un registro) a Macro. Action: OpenReport. En Prop: 'Where cond.':
[Order ID]=Forms![Order Review]![Order ID]. Prop. View: Print Preview (ó Print: inmediato). Adjuntar a
OnPush de botón para imprimir.
Imprimir sólo uno (país, etc) o todos mediante Control Cuadro Lista:
Crear control cuadro lista (Select Country) con RowSource a Consulta Country List (países por orden alfabét ic-
o) y AfterUpdate a macro con acción OpenReport y en prop. Where Cond.: =IIf(Forms![Print Reports Dia-
log]![Select Country] IsNull, "","[Country Name]=Forms![Print Reports Dialog]![Select Country]" (si nada,
imprime todos, las dos comillas juntas)
Para seleccionar con parámetros registros a imprimir
(Start Date y End Date): en 'Where': [Order Date] Between Forms![Print Reports Dialog]![Start Date] And
Forms![Print Reports Dialog]![End Date] o en Filter Name poner el nombre de consulta con parámetros.
Escoger Informe a imprimir mediante cuadro de diálogo
Por medio de grupo de opciones control [Report to Print] dentro de Formulario diálogo modal (Pop-Up) Print
Reports Dialog.: (Modal: se puede mover, pero no cambiar tamaño. Queda al frente de cualquier otra ventana y
no se puede acceder a otra mientras esté abierto. Se utiliza para pedir información)
GUIA ACCESS
Report to Print: (Grupo) (Botones)

Sales by Date Print Preview

Sales by Category

Customer Mailing Labels Print

Category to print:

Beverages
Condiments

Dos macros iguales a adjuntar cada una a cada OnPush de cada botón. (la primera con Print Preview en argum-
ento de OpenReport y la 2da con el argumento Print.):
Condition Action
SetValue (para esconder el Pop-Up Form)
[Report to Print]=1 OpenReport (basado en parámetros –Fecha)
[Report to Print]=2 OpenReport (basado en Lista de Categorias)
[Report to Print]=3 OpenReport (pide criterios- Mailing labels)
Close (el Pop-Up Form)
Después de escoger el grupo de opciones, se escoge entre botones.
En OpenReport de 1 se basa en Consulta de Parámetros. Pregunta automáticamente los parámetros de la consulta
al ejecutarse OpenReport basado en la consulta.
En OpenReport de 2 se basa en el valor de una Lista. Ver “Imprimir sólo uno o todos” arriba. El cuadro de
Category to Print se hace visible por macro adjunta a OnOpen y AfterUpdate del grupo si está seleccionada la
opción 2, y oculta si no (propiedad Visible a si/no).
En OpenReport de 3 abre otro Form. Emergente preguntando qué país a imprimir y después la acción ApplyFilt-
er. Estas accionaes se ejecutan antes por macro adjunta a OnOpen del Informe. Ver más adelante “Seleccionar
registros al abrir Informe”.
Ocultar sección de informe.
Una sección se puede ocultar con macro adjunta a su OnFormat con Set Value a la propiedad PrintSection.
Hacer visible o no un control.
Ej.: Exceeded Goal! (Control texto):
[Total for Salesperson]>5000 SetValue Prop. Item: [Exceeded Goal].Visible. Prop. Expression: Yes
Not [Total for Salesperson]>5000 SetValue " No
Poner macro en propiedad OnFormat de su sección.
Comenzar un grupo de informe (país) por pág. 1:
Crear Text Control en Page Footer con ControlSource: =[Country]&" - "& Page.
Crear macro con SetValue, Item: Page, Expr.: 1. En sección grupo Country Footer, prop. Force New Page:
After Section. En sección grupo Country Header, prop. OnFormat: nombre macro.
Para cortar una página (Sólo las 10 primeras líneas en la primera).
Text Box "Counter"(Prop.: Visible: No, Control Source: =1, Running Sum : Over All (suma 1 cada vez).) en
Detail Section. Colocar un Break Control al fin de Detail. Hacer 2 macros en un grupo de macro. 1ra. (hide):
SetValue of Page Break Visible: No and attached to OnFormat prop. of Page Header section. 2da. (show): Con-
dition to check value of hidden control: [Counter]=10 Action Set Value: Item: [Hidden Page Break].Visible.
Expression: Yes). Attach to OnFormat prop of Detail Section. Mejor en condición: [Counter]=10 And FormatC-
ount=1. Con FormatCount=1 evita vuelva a repetir nueva pagina si quedó un espacio después del Page Break.
Para que rompa nueva página en todas después de cada 10 líneas: [Counter]Mod 10 = 0 en condición.
Totalizar por página:
[Page Total] de una columna [Sale Amount]. 2 macros en una macro grupo. 1ra: SetValue. Item: [Page Total],
Expr.: [Page Total]+[Sale Amount]. Attached to OnPrint prop. (mejor para totales que OnFormat) of Detail
section. 2da.: SetValue. Item: [Page Total], Expr.: =0. Attached to OnPrint (mejor que OnFormat) prop of Page
Header. El [Page Total] estaría en Page Footer section.
Seleccionar registros con cuadro de diálogo al abrir Informe
Para abrir formulario de diálogo modal para requerir criterios utilizar prop. OnOpen (AlAbrir) del Informe. Para
definir formulario como modal poner arg. Window Mode a Dialog de acción OpenForm . Queda al frente de

GUIA ACCESS
cualquier otra ventana y no se puede acceder a otra mientras esté abierto. Se puede esconder (Visible No) pero
no cerrar para tener acceso a sus datos. Si no se utiliza Modal, la macro no se suspende.

Print labels for:

All countries

Specific country

[Enter Canada, UK or USA]

OK Cancel

Macro grupo (Country Filter) en OnOpen de Report. Nombre primera macro: Open, Acción: OpenForm,
Prop.:View: Form, Data Mode: Edit, Window mode: Dialog. Suspende la ejecución.
Siguiente línea: Condición (Not IsLoaded(“Country Filter Dialog”). (Para función IsLoaded() Ver Pág 103).
Acción: CancelEvent (se seleccionó Botón Cancel).
Siguiente línea: Condición: : ... Acción: Stop Macro. Siguiente línea: Condición: IsLoaded(“Country Filter
Dialog”) and Forms![Country Filter Dialog]![Print Labels]=2. Acción: Select Object. (OK, seleccionar Informe
por país).
Siguiente línea: Condición: ... Acción: Apply Filter, Prop. Where: [Country]=Forms![Country Filter Dia-
log]![Country].
Siguiente línea: Nombre macro: OK (attached to OnPush of OK button en formulario). Acción: SetValue. (Visi
ble no)Oculta formulario y devuelve ejecución a macro Open.
Siguiente línea: Nombre macro: Cancel (attached to OnPush of Cancel button en formulario). Acción: Close.
Cierra formulario y devuelve ejecución a macro Open.
Siguiente línea. Nombre macro: Close. Acción: Close (Formulario).
Propiedad OnClose del Informe a macro Close.
Pedir fecha de día (diálogo emergente modal) para mostrar cantidad e importe de sus pedidos.
A Pop-up form is a moveable form, fixed in size, that you can use to display or collect information.
Can be Modeless: With access to other objects while open. Modal: no access.
Ej.: Daily Order Totals abre el Order Date Dialog Form (Pop-up). Tiene un control unbound [Order Date], un
botón : View Totals, y otro botón: Cancel. Prop: Pop Up (Emergente): Yes, Modal: Yes.
Macro: Order Date Dialog (Attached to the View Totals and Cancel buttons):
Name Action Com.
View Totals. SetValue Hide the Form (Item: Visible, Expression: No)
OpenForm Open Daily Order Total Form
Close Close pop-up form
Cancel Close " "
Arg. de OpenForm: Name: Daily Order Totals (con fecha, Cantidad e Importe), View: Form, Where: [Order
Date]=Forms![Order Date Dialog]![Order Date], Data Mode: Read Only, Window Mode: Normal.

Si quisiera ver siempre los de ayer: en Where: [Order Date]=Date()-1. No se necesitaría el Diálogo, sólo un bot-
ón en Formulario Principal con OnPush a Open Form.

MODULOS (Visual Basic)


Un módulo es una colección de declaraciones, instrucciones y procedimientos almacenados juntos como una
unidad con nombre. Access tiene dos tipos de módulos: módulos estándar y módulos de clase. Los módulos de
formulario y de informe son módulos de clases que contienen código que es local para el formulario o informe.
A menos que se declare explícitamente privado para el módulo en el que aparecen, los procedimientos de los
módulos estándar se reconocen y pueden ser llamados por procedimientos de otros módulos de la misma base de
datos o en bases de datos de referencia. Cada procedimiento en un módulo puede ser un procedimiento Function
o un procedimiento Sub.
Cuándo utilizar Módulos de Visual Basic
Utilice Visual Basic en lugar de macros cuando desee:
· Facilitar el mantenimiento de la base de datos. Puesto que las macros son objetos independientes de los
formularios y los informes que las utilizan, puede resultar difícil mantener una base de datos que contenga muc-

GUIA ACCESS
has macros que responden a eventos de formularios e informes. Por contraste, los procedimientos de evento de
Visual Basic se incorporan a la definición del formulario o el informe. Si mueve un formulario o un informe de
una base de datos a otra, se moverán con él procedimientos de evento incorporados en el formulario o el informe.
· Cree sus propias funciones. Access incluye muchas funciones incorporadas, como la función Interés
(IPmt), la cual calcula el pago de intereses. Puede utilizar estas funciones para realizar cálculos sin necesidad de
crear expresiones complicadas. Mediante Visual Basic, puede crear sus propias funciones para realizar cálculos
que superen la capacidad de una expresión o reemplacen expresiones complejas. Además, puede utilizar las
funciones que cree en expresiones para aplicar una operación común a más de un objeto.
· Enmascarar mensajes de error. Cuando ocurre algo inesperado mientras trabaja el usuario con la base de
datos y Access muestra un mensaje de error, el mensaje puede resultar bastante desconcertante para el usuario,
especialmente si no conoce Access. Con Visual Basic, puede detectar el error cuando se produce y mostrar su
propio mensaje o realizar alguna acción.
· Crear o manipular objetos. En la mayoría de los casos, observará que es más fácil crear y modificar un
objeto en la vista Diseño de ese objeto. Sin embargo, en algunas situaciones, es posible que desee manipular la
definición de un objeto en código. Utilizando Visual Basic, puede manipular todos los objetos de una base de
datos, así como la base de datos propiamente dicha.
· Realizar acciones a nivel de sistema. Puede ejecutar la acción EjecutarAplicación en una macro para
ejecutar otra aplicación basada en Windows o en MS-DOS desde su aplicación, en cambio una macro no sirve
para hacer mucho más fuera de Access. Con Visual Basic, puede comprobar si hay un archivo en el sistema,
emplear Automatización o intercambio dinámico de datos (DDE) para comunicar con otras aplicaciones basadas
en Windows como Excel, y llamar a funciones de bibliotecas de vínculos dinámicos (DLL) de Windows.
· Manipular registros uno a uno. Puede emplear Visual Basic para explorar una serie de registros uno a
uno y realizar una operación en cada registro. Por contraste, las macros trabajan con conjuntos de registros com-
pletos.
· Pasar argumentos a los procedimientos de Visual Basic. Puede establecer argumentos para acciones de
macro en la parte inferior de la ventana Macro cuando crea la macro, pero no puede cambiarlos cuando se eje-
uta la macro. Sin embargo, con Visual Basic puede pasar argumentos a su código en el momento que se ejecuta o
utilizar variables para argumentos, algo que no puede hacer en macros y que proporciona una gran flexibilidad
en la forma de ejecutar los procedimientos de Visual Basic.
MENUS - MODULOS.
MENU EDICION
Buscar (CTRL+B): Busca una cadena de caracteres; por ejemplo, el apellido de un empleado en una hoja de
datos o formulario, o una palabra clave de Visual Basic en la ventana Módulo.
Buscar siguiente (F3): Busca la siguiente aparición de una cadena introducida en el cuadro de diálogo Buscar.
Reemplazar (CTRL+L): Busca una cadena de caracteres, como por ejemplo, el apellido de un empleado en una
hoja de datos o formulario, o una palabra clave de Visual Basic en la ventana Módulo, y la reemplaza por otra
cadena.
Aplicar (TAB)/Anular (RETROCESO o MAY+TAB) sangría: Desplaza el código seleccionado o la línea en
que está el punto de inserción cuatro espacios a la derecha, de forma predeterminada. Se utiliza para dar formato
y alinear bloques de código. Para cambiar este desplazamiento predeterminado, cambie la opción Ancho de tab-
lación en la ficha Módulo del cuadro de diálogo Opciones.
Lista de propiedades y métodos: (CTRL+J): Muestra todas las propiedades y métodos de la instrucción que
contiene el punto de inserción. Utilice esta opción si prefiere crear instrucciones explícitamente (en lugar de
automáticamente) o bien para editar instrucciones existentes.
Lista de constantes: (CTRL+MAY+J): Muestra todas las constantes de la instrucción que contiene el punto de
inserción. Utilice esta opción si prefiere crear instrucciones explícitamente (en lugar de automáticamente) o bien
para editar instrucciones existentes.
Información rápida: (CTRL+I): Muestra información acerca de la sintaxis de la variable, constante o proce-
dimiento situado en el punto de inserción. Utilice esta opción si prefiere crear instrucciones explícitamente (en
lugar de automáticamente) o bien para editar instrucciones existentes.
Información de parámetros: (CTRL+MAY+I): Muestra todos los parámetros para la instrucción que contiene
el punto de inserción. Utilice esta opción si prefiere crear instrucciones explícitamente (en lugar de automática-
mente) o bien para editar instrucciones existentes.
Palabra completa: (CTRL+BARRA): Completa la escritura de un fragmento de palabra de una propiedad, un
método o una constante. Muestra todas las opciones posibles si el fragmento de palabra no es exclusivo.
Marcador: Alterna entre agregar o eliminar un marcador (mostrado como un rectángulo azul en la barra indic-
adora de margen) en la línea de texto actual de la ventana Módulo. Utilice los marcadores para designar líneas de
código importantes en módulos largos y para desplazarse entre ellos.
MENU VER
Definición (MAY+F2): Presenta el código de procedimiento del nombre de procedimiento que se indica en el
punto de inserción activo de la ventana Módulo. SI el procedimiento está definido en un biblioteca de vínculos
dinámicos (..dll), Access muestra la instrucción Declare utilizada para definir el punto de entrada .dll.

GUIA ACCESS
Última posición (CTRL+MAY+F2): Vuelve a la última línea del procedimiento anterior que estuvo viendo en
la ventana Módulo.
Examinador de objetos (F2): Presenta todos los métodos y propiedades de la base de datos activa, de otras
bases de datos disponibles, y de las aplicaciones disponibles que soportan Visual Basic. Se utiliza para ver e
insertar la sintaxis de un método o una propiedad seleccionados. Ver Pág 105.
Ventana de depuración (CTRL+S): Presenta la ventana Depuración para permitir la prueba y depuración del
código. Ver Utilización, Pag 105.
Pila de llamadas (CTRL+H): Presenta una lista de las llamadas a procedimientos activas, comenzando por el
llamado más recientemente, de forma que pueda seguir la secuencia de llamadas. Access sólo habilita este botón
y comando cuando la ventana Módulo o la ventana Depurar están abiertas y la ejecución del código está suspe-
ndida. Ver Pág 108.
MENU INSERTAR
Procedimiento: Inserta una instrucción de declaración de procedimiento después del punto de inserción en el
módulo activo, o al final de un procedimiento si el punto de inserción está dentro de un procedimiento.
Módulo: Inserta un nuevo módulo en la base de datos activa y presenta su sección Declaraciones en la ventana
Módulo.
Módulo de clase: Inserta un módulo de clase que no está asociado con un formulario o informe en la base de
datos activa y muestra su sección Declaraciones en la ventana Módulo.
Archivo: Inserta código de un archivo de texto en el módulo activo antes de la línea que contiene el punto de
inserción.
MENU DEPURAR
Compilar los módulos cargados: Compila todos los procedimientos de los módulos abiertos. Se utiliza para
tratar errores de tiempo de compilación y errores de sintaxis.
Compilar todos los módulos: Compila todos los procedimientos de todos los módulos de la base de datos activ-
a, tanto si están cargados como si no lo están.
Compilar y guardar todos los módulos: Compila y guarda todos los módulos en la base de datos. Si cambia el
nombre del proyecto, su base de datos no estará ya compilada. Debe cerrar y volver a abrir la base de datos antes
de volver a ejecutar el comando Compilar y guardar todos los módulos.
Paso a paso por instrucciones: (F8): Ejecuta una instrucción cada vez, incluyendo las instrucciones dentro de
los procedimientos a los que se ha llamado.
Paso a paso por procedimientos: (MAY+F8): Ejecuta una instrucción cada vez, tratando a cada procedimiento
llamado como un solo paso.
Paso a paso para salir: (CTRL+MAY+F8): Ejecuta todas las líneas de código y los procedimientos anidados
en el modo de interrupción comenzando por la instrucción ejecutable actual y, a continuación, devuelve la ejecu-
ción a la siguiente instrucción ejecutable en el procedimiento anterior del árbol de llamadas. Utilice esta opción
para evitar ir paso a paso por cada línea de código en procedimientos llamados.
Ejecutar hasta el cursor: (CTRL+F8): Ejecuta el procedimiento desde la instrucción ejecutable activa hasta la
línea seleccionada o el punto de inserción (que debe estar dentro del mismo procedimiento) y vuelve a colocarse
en modo interrupción. Se utiliza para evitar los pasos que no son necesarios a través de cada línea de código.
Agregar inspección: Crea una expresión de inspección en la expresión seleccionada (por ejemplo, una variable,
una propiedad o una llamada a una función) en la ventana Módulo, de forma que se pueda examinar sus valores
en el panel Inspección de la ventana Depuración. Ver Pág 107.
Modificar inspección: Modifica o elimina una expresión de inspección en la expresión seleccionada (por eje-
mplo, una variable, una propiedad o una llamada a una función).
Inspección rápida (MAY+F9): Presenta el valor de una expresión seleccionada (por ejemplo una variable,
propiedad, o una llamada a una función). Opcionalmente, se puede agregar la expresión al panel de Inspección
de la ventana Depurar para continuar examinando su valor.
Alternar punto de interrupción (F9): Alterna entre establecer y quitar un punto de interrupción. Access sus-
pende la ejecución del código y entra en modo de interrupción cuando alcanza una línea de código que contiene
un punto de interrupción. El establecimiento de un punto de interrupción pone la línea en negrita y resaltada.
Borrar todos los puntos de interrupción (CTRL+MAY+F9): Elimina todos los puntos de interrupción en
todos los procedimientos, de todos los módulos de la base de datos activa.
Establecer la instrucción siguiente (CTRL+F9): Cambia la secuencia de ejecución del código, de forma que la
instrucción en la que está el punto de inserción es la siguiente a ejecutar. La instrucción a ejecutar debe estar
dentro del procedimiento actualmente en ejecución. Se utiliza durante la depuración, para volver a ejecutar una
instrucción o para saltar las instrucciones que no se desea ejecutar.
Mostrar la instrucción siguiente: Muestra la siguiente instrucción ejecutable. Se utiliza cuando se examinan
otras instrucciones durante la depuración, para volver a la posición original.
MENU EJECUTAR
Iniciar o continuar (F5): Continua la ejecución del código después de que haya sido suspendida, a menos que la
suspensión impida que el código continúe ejecutándose (como, por ejemplo, en el caso de un error de división
por cero). También ejecuta un procedimiento seleccionado que no tiene argumentos.

GUIA ACCESS
Terminar: Termina la ejecución de los procedimientos Visual Basic y borra todas las variables privadas, aunque
conserva todas las variables públicas. Se utiliza para reinicializar los procedimientos de un módulo que se ha
modificado antes de volver a ejecutarlo.
Restablecer: Termina la ejecución de los procedimientos de Visual Basic y borra todas las variables públicas y
privadas. Se utiliza para reinicializar todo el código de un módulo que haya cambiado antes de volverlo a ejecu-
tar.
MENU HERRAMIENTAS
Referencias: Muestra una lista de las referencias disponibles de bibliotecas de objetos y bases de datos. Se utili-
za para hacer que los procedimientos de otras bases de datos se puedan llamar desde la base de datos activa, o
para cambiar el orden en el que Microsoft Access busca en las bibliotecas de objetos y en las bases de datos para
resolver las referencias.
Controles ActiveX: Registra o elimina controles ActiveX en la base de datos de registro de Windows (que se
utiliza para registrar información acerca de las aplicaciones, por ejemplo el nombre de archivo y la ruta de acc-
eso). El registro determina si los controles ActiveX están disponibles o no para ser utilizados.

Ventana Módulo
Se componde del Cuadro objeto y del Cuadro Procedimiento, sección Declaraciones y sección Procedimientos,
botones Ver Procedimiento y Ver módulo completo (al lado barra desplazamientio horizontal.).
Por ej. , para ver o agregar un procedimiento de formulario, elija uno de los objetos del formulario del Cuadro
objeto y luego elija un evento del Cuadro Procedimiento. Los nombres de los eventos que ya tienen procedimie-
ntos están en negrita.
Para agregar un procedimiento personalizado a un módulo estándar, debajo de la seccion Declaraciones escriba
Sub o Function y el nombre del procedimiento y sus argumentos, y después presione INTRO. Después escriba el
código que desse para el procedimiento.
Módulos de clases
Los módulos de formularios y los módulos de informes son módulos de clases que están asociados con un form-
ulario o informe determinado. Los módulos de formularios y de informes contienen a menudo procedimientos de
evento que se ejecutan en respuesta a un evento en un formulario o informe. Puede usar los procedimientos de
evento para controlar el comportamiento de los formularios e informes, y sus respuestas a las acciones de los
usuarios, tal como hacer clic con el ratón en un botón de comando.
Cuando se crea el primer procedimiento de evento para un formulario o informe, Access crea automáticamente
un módulo de formulario o un módulo de informe. Para ver el módulo para un formulario o informe, haga clic en
Código en la barra de herramientas en la vista Diseño de informe o de formulario.
Los procedimientos en los módulos de formularios y de informes pueden llamar a procedimientos que haya agr-
egado a los módulos estándar.
En Access 95, los módulos de clase sólo existen en asociación con un formulario o informe. En Access 97, los
módulos de clase pueden existir también con independencia de un formulario o informe, y este tipo de módulo
de clase se enumera en la ficha Módulos de la ventana Base de datos. Puede usar un módulo de clase en la ficha
Módulos para crear una definición para un objeto personalizado.
Módulos estándar
Los módulos estándar contienen procedimientos generales que no están asociados con ningún otro objeto y pro-
cedimientos usados con frecuencia que pueden ser ejecutados desde cualquier parte de la base de datos.
La lista de módulos estándar de la base de datos se puede ver haciendo clic en la ficha Módulos de la ventana
Base de datos. Los formularios, informes y módulos estándar se enumeran también en el Examinador de objetos.
Procedimientos
Un procedimiento es una unidad de código de Visual Basic para aplicaciones. Un procedimiento contiene una
serie de instrucciones y métodos que realizan una operación o calculan un valor. Por ejemplo, el siguiente proce-
dimiento de evento usa el método OpenForm para abrir el formulario Pedidos:
Private Sub AbrirPedidos_Click()
DoCmd.OpenForm "Pedidos"
End Sub
Hay dos tipos de procedimientos: Procedimientos Sub y Procedimientos Function.
Creación de procedimiento personalizado
Al extender la base de datos para que incluya los procedimientos de Visual Basic para aplicaciones, puede per-
sonalizar la forma en la que las tablas, formularios, informes y consultas de la base de datos trabajan juntos. Hay
varios tipos de procedimientos. Puede crear un procedimiento de evento agregando código a las plantillas prede-
finidas de un módulo de formulario o un módulo de informe. También puede crear sus propios procedimientos
Function o procedimientos Sub en módulos estándar o en módulos de clase (que incluyen los módulos de for-
ularios e informes).
Puede llamar a procedimientos en un módulo estándar o en módulo de clase desde expresiones, desde otros pro-
cedimientos, procedimientos de evento, procedimientos de otros módulos y macros. Los procedimientos de eve-

GUIA ACCESS
nto se ejecutan automáticamente en respuesta a eventos, como por ejemplo clics del ratón, que se producen en
un formulario, informe o control.
Para procedimiento de evento, ver a continuación.
Para procedimiento Sub personalizado, Ver Pág 94.
Para procedimiento Function personalizado, Ver Pág 95.
Crear un procedimiento de evento
Access hace que sea fácil ejecutar código en respuesta a una acción desarrollada por el usuario. Cuando se est-
blece una propiedad del evento para un formulario, informe o control a [Procedimiento de evento], Access crea
la plantilla del procedimiento de evento. Todo lo que tiene que hacer es agregar el código que desee ejecutar en
respuesta a un evento determinado en el formulario, informe o control. Por ejemplo, puede hacer que se ejecute
código cuando un usuario hace clic en un botón de comando o cambia los datos.
1 Abra un formulario o informe en la vista Diseño de informe o en la vista Diseño del formulario.
2 Muestra la hoja de propiedades del formulario, informe o una sección o control del formulario o infor-
me.
3 Elija la ficha Eventos.
4 Haga clic en la propiedad de evento del evento que desea que active el procedimiento. Por ejemplo, para
mostrar el procedimiento de evento para el evento Change, haga clic en la propiedad Al cambiar.
5 Haga clic en Generar próximo al cuadro de la propiedad para mostrar el cuadro de diálogo Elegir gen-
rador.
6 Haga doble clic en Generador de código para mostrar las instrucciones Sub y End Sub del procedimie-
nto de evento en el módulo de formulario o módulo de informe. Estas instrucciones definen o declaran, el proce-
dimiento de evento.
Access declara procedimientos de evento de forma automática para cada objeto de un módulo de formulario o
informe, usando la palabra clave Private para indicar que al procedimiento sólo pueden tener acceso otros proce-
dimientos de ese módulo.
7 Agregue el código al procedimiento de evento que desee ejecutar cuando se produzca el evento. Por
ejemplo, para producir un sonido a través del altavoz de la máquina cuando cambien los datos del cuadro de
texto NombreCompañía, agregue una instrucción Beep al procedimiento de evento NombreCompañía_Change,
como sigue:
Private Sub NombreCompañía_Change()
Beep
End Sub
El procedimiento de evento se ejecuta cada vez que se produce el evento Change para el objeto.
Ver Pág 79, Ejecutar Macro o Procedimiento de Evento. Ver Pág 83, Eventos.
Procedimientos Sub
Realizan una operación o una serie de operaciones pero no devuelven un valor. Puede crear sus propios proce-
dimientos Sub o usar las plantillas de procedimientos de evento que Access crea por usted.
Cada formulario o informe de la base de datos tiene un módulo de formulario o un módulo de informe incorpor-
ado que contiene plantillas de procedimientos de evento. Puede agregar código que se ejecute en respuesta a los
eventos que se produzcan en el formulario, en el informe o en los controles del formulario o informe. Cuando
Access reconoce que se ha producido un evento en un formulario, informe o control, ejecuta de forma automáti-
ca el procedimiento de evento nombrado para el objeto o evento. Por ejemplo, puede escribir un procedimiento
de evento que establece el enfoque a un cuadro de texto Nombre esposo cuando el usuario selecciona la casilla
de verificación Casado.
Sugerencia: Muchos de los asistentes (por ejemplo, el Asistente para botones de comando) que crean objetos
crean también procedimientos de evento para el objeto. Puede mirar estos procedimientos de evento para ver
ejemplos de cómo funcionan estos procedimientos.
Escribir un procedimiento Sub
Un procedimiento Sub es una serie de instrucciones Visual Basic, encerradas entre un par de instrucciones Sub y
End Sub, que realizan acciones específicas pero no devuelven ningún valor. Un procedimiento Sub puede acept-
ar argumentos, como constantes, variables o expresiones que le pasa el procedimiento que ha efectuado la llama-
da. Si un procedimiento Sub no tiene argumentos, la instrucción Sub debe incluir un par de paréntesis vacío.
El siguiente procedimiento Sub dispone de comentarios explicativos en cada línea.
' Declara un procedimiento llamado ObtenInformacion
' Este procedimiento Sub no acepta argumentos
Sub ObtenInformacion()
' Declara una variable de cadena llamada respuesta
Dim respuesta As String
' Asigna el valor que devuelve la funcion InputBox a la variab-
le respuesta
respuesta = InputBox(Prompt:="¿Cómo se llama?")
If respuesta = Empty Then
GUIA ACCESS
' Llama a la función MsgBox
MsgBox Prompt:="No ha escrito su nombre."
Else
' Función MsgBox concatenada con la variable respuesta
MsgBox Prompt:="Su nombre es " & respuesta
End If
' Fin del procedimiento Sub
End Sub
Crear un procedimiento Sub personalizado
1 Abra un nuevo módulo.
· Para abrir un nuevo módulo estándar, haga clic en la ficha Módulos de la ventana Base de datos y haga
clic en Nuevo. Para abrir un módulo estándar existente, haga clic en la ficha Módulos, seleccione el módulo que
desea abrir y haga clic en Diseño.
· Para abrir un módulo de formulario o un módulo de informe, abra el formulario o informe en la vista
Diseño y haga clic en Código en la barra de herramientas.
· Para abrir un nuevo módulo de clase que no está asociado con un formulario o informe, en la ventana
Base de datos haga clic en Módulo de clase en el menú Insertar
. Para abrir un módulo de clase existente, haga clic en la ficha Módulos en la ventana Base de datos, seleccione
el módulo que desea abrir y haga clic en Diseño.
2 Declare el procedimiento escribiendo la instrucción Sub.
3 Escriba un nombre de procedimiento, seguido inmediatamente de los argumentos entre paréntesis. Por
ejemplo, la siguiente declaración del procedimiento Sub MostrarEvento especifica (EventName As String) como
un argumento:
Sub MostrarEvento(EventName As String)
4 Agregue el código Visual Basic para aplicaciones que realice la operación que desea que realice el pro-
cedimiento.
En este ejemplo se utiliza la instrucción Sub para declarar el nombre, argumentos y código que forman el cuerpo
del procedimiento Sub.
' Definición del procedimiento Sub.
' Sub con dos argumentos.
Sub SubAreaPC(Largo, Ancho)
Dim Area As Double ' Declara la variable local.
If Largo = 0 Or Ancho = 0 Then
' Si cualquier argumento = 0.
Exit Sub ' Salir inmediatamente de Sub.
End If
Area = Largo * Ancho ' Calcula el área del rectángulo.
Debug.Print Area ' Imprime Area en la ventana de depuración.
End Sub
Procedimientos Function
Llamados a menudo simplemente funciones. Devuelven un valor, tal como el resultado de un cálculo. Visual
Basic incluye muchas funciones incorporadas; por ejemplo, la función Now devuelve la fecha y hora actual.
Además de estas funciones incorporadas, puede crear sus propias funciones personalizadas.
Puesto que las funciones devuelven valores, puede usarlas en expresiones. Puede usar funciones en expresiones
en muchos lugares de Access, incluyendo en una instrucción o método de Visual Basic, en muchos valores de
propiedades o en una expresión de criterios en un filtro o consulta.
Éste es un ejemplo de un procedimiento Function, PrimerDíaDelMesSiguiente, que devuelve la fecha del primer
día del mes siguiente a la fecha actual:
Function PrimerDíaDelMesSiguiente()
PrimerDíaDelMesSiguiente = _
DateSerial(Year(Now), Month(Now) + 1, 1)
End Function
Esta función personalizada consiste en una única instrucción de asignación que asigna el resultado de una expre-
sión (en el lado derecho del signo igual [=]) al nombre de la función, PrimerDíaDelMesSiguiente (en el lado
izquierdo del signo igual). La función calcula el resultado usando las funciones incorporadas de Visual Basic
DateSerial, Year, Now y Month.
Una vez haya creado esta función, puede usarla en una expresión prácticamente en cualquier parte de Access.
Por ejemplo, podría especificar que un cuadro de texto muestre el primer día del mes que sigue a la fecha actual
como el valor predeterminado estableciendo la propiedad ValorPredeterminado (DefaultValue) del control del
cuadro de texto a la siguiente expresión en la hoja de propiedades:
=PrimerDíaDelMesSiguiente()

GUIA ACCESS
Nota: Para usar una función como valor de una propiedad, la función debe estar en el módulo del formulario o
del informe, o en un módulo estándar. No se puede usar una función en un módulo de clase que no esté asociada
con un formulario o informe como valor de propiedad de formulario o informe.
Los procedimientos Function y Sub pueden aceptar argumentos.
Escribir un procedimiento Function
Un procedimiento Function es una serie de instrucciones de Visual Basic encerradas entre dos instrucciones
Function y End Function. Un procedimiento Function es similar a un procedimiento Sub, aunque una función
puede devolver además un valor. Un procedimiento Function acepta argumentos, como pueden ser constantes,
variables o expresiones que le pasa el procedimiento que efectúa la llamada. Si un procedimiento Function no
tiene argumentos, la instrucción Function debe incluir un par de paréntesis vacíos. Una función devuelve un
valor asignándolo a su nombre en una o más instrucciones del procedimiento.
En el siguiente ejemplo, la función Celsius calcula grados centígrados a partir de grados Fahrenheit. Cuando se
llama a la función desde el procedimiento Principal, se le pasa una variable que contiene el valor del argumento.
El resultado de los cálculos se devuelve al procedimiento que efectúo la llamada y se presenta en un cuadro de
mensaje.
Sub Principal()
temp = Application.InputBox(Texto:= _
"Por favor, introduzca la temperatura en grados F.", Tipo:=1)
MsgBox "La temperatura es " & Celsius(temp) & " grados C."
End Sub

Function Celsius(GradosF)
Celsius = (GradosF - 32) * 5 / 9
End Function
Crear una función personalizada
1 Abra un nuevo módulo.
· Para abrir un nuevo módulo estándar, haga clic en la ficha Módulos en la ventana Base de datos y haga
clic en Nuevo. Para abrir un módulo estándar existente, haga clic en la ficha Módulos, seleccione el módulo que
desea abrir y haga clic en Diseño.
· Para abrir un módulo de formulario o un módulo de informe, abra el formulario o informe en la vista
Diseño y haga clic en Código en la barra de herramientas.
· Para abrir un nuevo módulo de clase que no esté asociado con un formulario o informe, en la ventana
Base de datos haga clic en Módulo de clase en el menú Insertar
. Para abrir un módulo de clase existente, haga clic en la ficha Módulos en la ventana Base de datos, seleccione
el módulo que desee abrir y haga clic en Diseño.
2 Declare la función escribiendo la instrucción Function.
3 Escriba un nombre de función, seguido inmediatamente por los argumentos de la función entre parénte-
sis. Por ejemplo, la siguiente declaración de la función EstáCargado especifica cadNombreFormulario como
argumento:
Function EstáCargado(cadNombreFormulario As String) As Boolean
4 Agregue el código Visual Basic para aplicaciones que realice la operación o cálculo que desea que rea-
ice la función.
En este ejemplo se utiliza la instrucción Function para declarar el nombre, los argumentos y el código que for-
man el cuerpo de un procedimiento Function. El último ejemplo utiliza tipos forzados, argumentos Optional
inicializados.
' La siguiente función definida por el usuario devuelve
' la raíz cuadrada del argumento que se le pasa.
Function CalculaRaizCuadrada(ArgNumerico As Double) As Double
If ArgNumerico < 0 Then ' Se evalúa el argumento.
Exit Function ' Salida hacia el procedimiento que llamó a la
función.
Else
CalculaRaizCuadrada = Sqr(ArgNumerico) ' Devuelve la raíz
cuadrada.
End If
End Function
El uso de la palabra clave ParamArray permite que una función acepte un número variable de argumentos. En la
siguiente definición, PrimerArg se transfiere por valor.
Function CalcSum(ByVal PrimerArg As Integer, ParamArray OtrosArgs())
Dim ValorDevuelto
' Si se invoca la función como:

GUIA ACCESS
ValorDevuelto = CalcSum(4, 3 ,2 ,1)
' Las variables locales obtienen los valores
' siguientes: PrimerArg = 4,
' OtrosArgs(1) = 3, OtrosArgs(2) = 2, y así
' sucesivamente, asumiendo que el límite inferior
' predeterminado para matrices es igual a 1.
'Los argumentos Optional ahora pueden tener valores predeterminados
y tipos distintos de Variant.
' Si los argumentos de una función se definen como:
Function MiFunc(MiCad As String, Optional MiArg1 As _ Integer = 5,
Optional MiArg2_ = "Pepa")
Dim RetVal
' La función puede ser invocada de las formas
' siguientes:
RetVal = MiFunc("Hola", 2, "Mundo") ' Se proveen los 3 argumentos.
RetVal = MiFunc("Prueba", , 5) ' Se omite el segundo argumento.
' Los argumentos uno y tres utilizan argumentos con nombre.
RetVal = MiFunc(MiCad:="Hola ", MiArg1:=7)
Objetos, propiedades, métodos y eventos
Método
Es toda acción que puede realizar un objeto. Por ejemplo, Add es un método del objeto ComboBox ya que
sirve para añadir un nuevo elemento a un cuadro combinado.
El siguiente procedimiento utiliza el método Add para añadir un nuevo elemento a un ComboBox.
Sub AñadeElemen(nuevoElemento as String)
Combo1.Add nuevoElemento
End Sub
Propiedad
Es un atributo de un objeto que define una de las características del objeto, tal como su tamaño, color o local-
ización en la pantalla, o un aspecto de su comportamiento, por ejemplo si está visible o activado. Para cambiar
las características de un objeto, se cambia el valor de sus propiedades
Para dar valor a una propiedad, hay que colocar un punto detrás de la referencia a un objeto, después el nombre
de la propiedad y finalmente el signo igual (=) y el nuevo valor de la propiedad. Por ejemplo, el siguiente proce-
dimiento cambia el título de un formulario de Visual Basic dando un valor a la propiedad Caption.
Sub CambiaNombre(nuevoTitulo)
miForm.Caption = nuevoTitulo
End Sub
Hay propiedades a las que no se puede dar valor. El tema de ayuda de cada propiedad indica si es posible leer y
dar valores a la propiedad (lectura/escritura), leer sólo el valor de la propiedad (sólo lectura) o sólo dar valor a la
propiedad (sólo escritura).
Se puede obtener información sobre un objeto devolviendo el valor de una de sus propiedades. El siguiente pro-
cedimiento utiliza un cuadro de diálogo para presentar el título que aparece en la parte superior del formulario
activo en ese momento.
Sub NombreFormEs()
formNonmbre = Screen.ActiveForm.Caption
MsgBox formNombre
End Sub
Objeto
Representa un elemento de una aplicación, como una hoja de cálculo, una celda, un diagrama, un formulario o
un informe. En código de Visual Basic, un objeto debe identificarse antes de se pueda aplicar uno de los métodos
del objeto o cambiar el valor de una de sus propiedades.
Una colección es un objeto que contiene varios objetos que normalmente, pero no siempre, son del mismo
tipo. En Excel, por ejemplo, el objeto Workbooks contiene todos los objetos Workbook abiertos. En Visual
Basic, la colección Forms contiene todos los objetos Form existentes en una aplicación.
Los elementos de una colección se pueden identificar mediante su número o su nombre. Por ejemplo, en el sigui-
ente procedimiento, Libro(1) identifica al primer objeto Workbook abierto.
Sub CierraPrimero()
Libro(1).Close
End Sub
El siguiente procedimiento utiliza un nombre especificado como cadena para identificar un objeto Form.
Sub CierraForm()
Forms("MiForm.frm").Close
GUIA ACCESS
End Sub
También es posible operar al mismo tiempo sobre toda una colección de objetos siempre que los objetos compa-
rtan métodos comunes. Por ejemplo, el siguiente procedimiento cierra todos los formularios abiertos.
Sub CierraTodos()
Forms.Close
End Sub
Evento
es toda acción que puede ser reconocida por un objeto, como puede ser el clic del ratón o la pulsación de una
tecla y para la que es posible escribir código como respuesta. Los eventos pueden ocurrir como resultado de una
acción del usuario o del código de l programa, también pueden ser originados por el sistema.
Ver Pág 83, Eventos.
Ejecución de código
El código Visual Basic para aplicaciones se ejecuta en Access ejecutando un procedimiento Sub o un procedi-
miento Function. Los procedimientos contienen una serie de instrucciones y de métodos que realizan una opera-
ción o calculan un valor. Los procedimientos se almacenan en unidades llamadas módulos. Sin embargo, un
módulo no se ejecuta; en su lugar, se llama a los procedimientos desde expresiones, otros procedimientos o mac-
ros. Los procedimientos de evento de los módulos de formularios o informes se ejecutan también en respuesta a
las acciones de los usuarios.
Estas son las formas de ejecutar código Visual Basic en Microsoft Access:
· Cree un procedimiento de evento. Cuando el usuario realice una acción que provoque ese evento, se
ejecuta el procedimiento de evento. Por ejemplo, puede agregar código al procedimiento de evento Click de un
botón de comando para que abra un formulario cuando el usuario haga clic en el botón.
· Use una función en una expresión o en el panel Inmediato de la ventana Depuración. Por ejemplo,
puede usar una función en una expresión que defina un campo calculado en un formulario, informe o consulta.
Las expresiones se pueden usar como valores de las propiedades en las consultas y filtros, en macros y acciones,
en instrucciones y métodos de Visual Basic o en las instrucciones SQL.
· Llame a un procedimiento Sub en otro procedimiento o en el panel Inmediato de la ventana Dep-
uración. Si ejecuta cierto código con frecuencia, puede ponerlo en un procedimiento Sub. En lugar de repetir en
cada procedimiento el código Visual Basic que realiza la operación, lo escribe una vez en el procedimiento com-
ún y luego llama al procedimiento común cada vez que desee realizar la operación.
· Haga clic en el comando Iniciar o continuar en el menú Ejecutar de la ventana Módulo para ejec-
utar un procedimiento que no requiere argumentos. En la ventana Módulo, sitúe el cursor en el procedimie-
nto que desee ejecutar. Luego haga clic en Iniciar o continuar en el menú Ejecutar.
· Lleve a cabo la acción EjecutarCódigo en una macro. Puede usar la acción EjecutarCódigo para
ejecutar una función incorporada de Visual Basic o una función que haya creado. Para ejecutar un procedimiento
Sub o un procedimiento de evento, cree una función que llame al procedimiento Sub o procedimiento de evento
y luego use la acción EjecutarCódigo para ejecutar la función.
Definiciones varias
Instrucción
Una unidad sintácticamente completa que expresa un tipo de acción, declaración o definición. Normalmente una
instrucción tiene una sola línea aunque es posible utilizar dos puntos (:) para poner más de una instrucción en
una línea. También se puede utilizar un carácter de continuación de línea (_) para continuar una sola línea lógica
en una segunda línea física.
Variable
Un lugar de almacenamiento con nombre que puede contener cierto tipo de datos que puede ser modificado dur-
ante la ejecución del programa. Cada variable tiene un nombre único que la identifica dentro de su nivel de ámb-
ito. Puede especificar un tipo de datos o no.
Nombres de variable deben comenzar con un carácter alfabético, deben ser únicos dentro del mismo ámbito, no
deben contener más de 255 caracteres y no pueden contener un punto o carácter de declaración de tipo.
Variable a nivel de módulo: Una variable que se declara en la sección de declaraciones de un módulo utilizan-
do la palabra clave Private. Estas variables están disponibles para todos los procedimientos del módulo.
Constante
Un elemento con nombre que mantiene un valor constante a través de la ejecución de un programa. Las const-
antes pueden ser cadenas o literales numéricos, otras constantes o cualquier combinación que incluya operadores
aritméticos o lógicos exceptuando Is y la exponenciación. Cada aplicación principal puede definir su propio
conjunto de constantes. El usuario puede definir constantes adicionales con la instrucción Const. Puede utilizar
constantes en cualquier lugar del código en lugar de valores reales.
Constante intrínseca: Una constante suministrada por Microsoft Access, Visual Basic para aplicaciones, o
Microsoft DAO. Estas constantes están disponibles en el Examinador de objetos haciendo clic en <globales> en
cada una de estas bibliotecas.

GUIA ACCESS
Palabra clave Me
Se comporta como una variable declarada de forma implícita. Está disponible automáticamente para todos los
procedimientos en un módulo de clase. Cuando una clase puede tener más de una instancia, Me proporciona una
forma de referirse a una instancia específica de la clase donde se está ejecutando el código. El uso de Me es
especialmente útil cuando se desea pasar información sobre la instancia que se está ejecutando actualmente a un
procedimiento de otro módulo. Por ejemplo, suponga que tiene el procedimiento siguiente en un módulo:
Sub CambiaColorFormulario (NombreFormulario As Form)
NombreFormulario.BackColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
End Sub
Puede llamar a este procedimiento y pasar la instancia actual de la clase Form como un argumento utilizando la
siguiente instrucción:
CambiaColorFormulario Me
DAO (Data Access Objects) Objetos de acceso a datos
Los objetos que representan la estructura de la base de datos y los datos que contiene. Desde Visual Basic puede
utilizar objetos DAO para crear o cambiar tablas y consultas, la seguridad de la base de datos, o el acceso a los
datos desde orígenes de datos externos. También puede utilizar objetos DAO para trabajar con los datos almac-
enados en la base de datos desde código.
Instancia
Un objeto creado desde la clase que contiene su definición. Por ejemplo, varias instancias de una clase de for-
ulario comparten el mismo código y se cargan con los mismos controles con los que fue diseñada la clase de
formulario. Una clase es como una plantilla y una instancia individual de una clase como el objeto creado desde
esa plantilla.
Argumentos
Un argumento ofrece información adicional a un procedimiento, instrucción o método. Cuando se crea un
procedimiento Function o procedimiento Sub, se declaran argumentos si desea poder suministrar información al
procedimiento cuando se le llama.
Cuando se llama a un procedimiento que tenga argumentos, se especifican los argumentos que se desea pasarle.
También se pueden especificar argumentos para muchas instrucciones y métodos.
Comprender los argumentos con nombre y opcionales
Cuando se hace una llamada a un procedimiento Sub o Function, se pueden incluir argumentos de forma posic-
ional, es decir, en el orden en que aparecen en la definición del procedimiento, o se pueden incluir los argument-
os con su nombre sin respetar ningún orden.
Por ejemplo, el siguiente procedimiento Sub acepta tres argumentos:
Sub PasaArgs(strNombre As String, intEdad As Integer, dteNacimiento
As Date)
Debug.Print strNombre, intEdad, dteNacimiento
End Sub
Al llamar este procedimiento se pueden incluir sus argumentos en la posición correcta, todos separados por com-
as, tal y como muestra el siguiente ejemplo:
PasaArgs "María", 26, #21-2-69#
También se puede hacer una llamada a este procedimiento e incluir argumentos con nombre, separados por com-
as.
PasaArgs intEdad:=26, dteNacimiento:=#21/2/69#, strNombre:="Maria"
Un argumento nominativo está formado por el nombre del argumento seguido por dos puntos y un signo igual
(:=), todo ello seguido por el valor del argumento.
Los argumentos con nombre son muy útiles cuando se llama a procedimientos con argumentos opcionales. Si se
usan argumentos con nombre no será necesario incluir sucesivas comas para sustituir argumentos posicionales
ausentes. Al usar argumentos con nombre es más fácil controlar qué argumentos se pasan y cuáles se omiten.
Los argumentos opcionales van precedidos por la palabra clave Optional en la definición del procedimiento. En
la definición del procedimiento se puede especificar también un valor predefinido para el argumento opcional.
Por ejemplo:
Sub ArgsOpcionales(strProvincia As String, Optional strPais As Stri-
ng = "MÉXICO")
. . .
End Sub
Cuando se hace una llamada a un procedimiento con un argumento opcional, se puede optar por especificar o no
el argumento opcional. Si no se especifica, se usará el valor predefinido si existe. Si no se ha especificado tam-
oco un valor predefinido, el argumento tendrá el valor de inicialización que le corresponda a una variable del
mismo tipo.
El siguiente procedimiento incluye un argumento opcional, la variable varPais. La función IsMissing determina
si se ha pasado o no un argumento opcional al procedimiento.

GUIA ACCESS
Sub ArgsOpcionales(strProvincia As String, Optional intRegion As In-
teger, _
Optional strPais As String = "MÉXICO")
If IsMissing(intRegion) AND IsMissing(strPais) Then
Debug.Print strProvincia
ElseIf IsMissing(strPais) Then
Debug.Print strProvincia, intRegion
ElseIf IsMissing(intRegion) Then
Debug.Print strProvincia, strPais
Else
Debug.Print strProvincia, intRegion, strPais
End If
End Sub
Este procedimiento se puede llamar empleando argumentos con nombre tal y como muestran los siguientes eje-
mplos.
ArgsOpcionales strPais:="MÉXICO", strProvincia:="SE"
ArgsOpcionales strProvincia:= "SE", intRegion:=5
Especificar argumentos cuando use un procedimiento, instrucción o método en código Visual Basic
Especifique los argumentos inmediatamente después del nombre del procedimiento, instrucción o método. Para
un procedimiento Function o un método que devuelva un valor, encierre los argumentos entre paréntesis. Si
especifica más de un argumento, sepárelos con una coma.
Por ejemplo, el siguiente método Close del objeto DoCmd cierra el formulario Agregar productos. Acepta dos
argumentos, acForm y "Agregar productos":
DoCmd.Close acForm, "Agregar productos"
Puesto que el método Close no devuelve un valor, los argumentos no se incluyen entre paréntesis.
Sugerencia: Puede usar el Examinador de objetos para pegar sintaxis de métodos o propiedades, incluyendo
argumentos, en el código de Visual Basic para aplicaciones. El Examinador de objetos pega los argumentos con
nombre que puede especificar en cualquier orden. Puede usar estos argumentos con nombre o substituirlos con
argumentos estándar.
Estructuras de decisión y control
Mediante el uso de instrucciones condicionales y instrucciones de bucle (también conocidas como estructuras de
control) es posible escribir código de Visual Basic que tome decisiones y repita determinadas acciones. Otra
estructura de control útil, la instrucción With, permite ejecutar una serie de instrucciones sin necesidad de recal-
ificar un objeto.
Utilizar instrucciones condicionales para tomar decisiones
· If...Then...Else: Salto a una instrucción cuando una condición es True o False
· Select Case: Selección de la instrucción a ejecutar en función de un conjunto de condiciones
Utilizar bucles para repetir código
· Do...Loop: Seguir en el bucle mientras o hasta una condición sea True
· For...Next: Utilizar un contador para ejecutar las instrucciones un número determinado de veces.
· For Each...Next: Repetición del grupo de instrucciones para cada uno de los objetos de una colección
Ejecutar varias instrucciones sobre el mismo objeto
· With: Ejecutar una serie de instrucciones sobre el mismo objeto
If...Then...Else (Instrucción)
Ejecuta condicionalmente un grupo de instrucciones, dependiendo del valor de una expresión.
If condición Then [instrucciones]-[Else instrucciones_else]
Puede utilizar la siguiente sintaxis en formato de bloque:
If condición Then
[instrucciones]
[ElseIf condición-n Then
[instrucciones_elseif] .. (Opcional. Una o más instrucciones ejecutadas si la condición-n asociada es True.)
[Else
[instrucciones_else]] (Opcional. Una o más instrucciones ejecutadas si ninguna de las expresiones anterior-
es condición o condición-n es True.)
End If
Una instrucción con formato de bloque If debe ser la primera de la línea. Las partes Else, ElseIf y End If, de la
instrucción, solamente pueden ir precedidas de un número de línea o por una etiqueta de línea. El bloque If debe
terminar con una instrucción End If.
Las cláusulas Else y ElseIf son opcionales. Puede tener en un bloque ElseIf, tantas cláusulas If como desee, pero
ninguna puede aparecer después de una cláusula Else. Las instrucciones de bloque If se pueden anidar; es decir,
unas pueden contener a otras.

GUIA ACCESS
Cuando se ejecuta un bloque If (Sintaxis 2), se prueba condición. Si condición es True, se ejecutan las instrucci-
ones que están a continuación de Then. Si condición es False, se evalúan una a una las condiciones ElseIf (si
existen). Cuando se encuentra una condición True se ejecutan las instrucciones que siguen inmediatamente a la
instrucción Then asociada. Si ninguna de las condiciones ElseIf es True (o si no hay cláusulas ElseIf), se ejecu-
tan las instrucciones que siguen a Else. Después de la ejecución de las instrucciones que siguen a Then o Else, la
ejecución continúa con la instrucción que sigue a End If.
Select Case puede ser más útil cuando se evalúa una única expresión que tiene varias acciones posibles. Sin
embargo, la cláusula TypeOf nombre_objeto Is tipo_objeto no se puede utilizar en una instrucción Select Case.

If A > 10 Then A = A + 1 : B = B + A : C = C + B

Dim Número, Dígitos, MiCadena


Número = 53 ' Inicializa variable.
If Número < 10 Then
Dígitos = 1
ElseIf Número < 100 Then
' La condición es True, por lo que se ejecuta la siguiente instrucc-
ión.
Dígitos = 2
Else
Dígitos = 3
End If

' Asigna un valor con la sintaxis de una línea.


If Dígitos = 1 Then MiCadena = "Una" Else MiCadena = "Más de una"

If Anydate < Now Then Anyate=Now 'sólo una línea de código

If Anydate < Now Then Anydate=Now : Notify=True

Ej. DueDate(AnyDate) para devolver sólo día hábil:


Function DueDate(AnyDate)
Dim Result
If Not IsNull(AnyDate) Then
result=DateSerial(Year(Anydate),Month(Anydate)+1,1
If Weekday(Result)=1 Then 'Domingo americano
DueDate=Result+1
ElseIf Weekday(Result)=7 Then 'Sábado americano
DueDate=Result+2
Else DueDate=Result
End If
Else
Result=Null
End If
End Function

Puede utilizar If TypeOf para determinar si el control que se pasa a un procedimiento es un cuadro de texto.

Sub ControlProcessor(MiControl As Control)


If TypeOf MiControl Is CommandButton Then
Debug.Print "Ha pasado un " & TypeName(MiControl)
ElseIf TypeOf MiControl Is CheckBox Then
Debug.Print "Ha pasado un " & TypeName(MiControl)
ElseIf TypeOf MiControl Is TextBox Then
Debug.Print "Ha pasado un " & TypeName(MiControl)
End If
End Sub
Select Case (Instrucción)
Ejecuta uno de varios grupos de instrucciones, dependiendo del valor de una expresión.
Select Case expresión_prueba

GUIA ACCESS
[Case lista_expresion-n
[instrucciones-n]] ...
[Case Else
[instrucciones_else]]
End Select

Se pueden utilizar expresiones múltiples o intervalos en cada cláusula Case. Por ejemplo, la línea siguiente es
válida:
Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
También puede especificar intervalos y expresiones múltiples para cadenas de caracteres. En el siguiente eje-
mplo, Case coincide con las cadenas que son exactamente iguales a todo, cadenas que están entre nueces y sopa
en orden alfabético y el valor actual de ElemPrueba:
Case "iguales a todo", "nueces" To "sopa", ElemPrueba
Las instrucciones Select Case se pueden anidar. Cada instrucción Select Case debe tener su correspondiente
instrucción End Select.
Dim Número
Número = 8 ' Inicializa variable.
Select Case Número ' Evalúa Número.
Case 1 To 5 ' Número entre 1 y 5.
Debug.Print "Entre 1 y 5"
'Es la única cláusula Case cuyo valor es True.
Case 6, 7, 8 ' Número entre 6 y 8.
Debug.Print "Entre 6 y 8"
Case Is > 8 And Número < 11 ' Número es 9 ó 10.
Debug.Print "Mayor que 8"
Case Else ' Otros valores.
Debug.Print "No está entre 1 y 10"
End Select

Ej. Anterior de If, pero pasar a Jueves si es Viernes (numeración americana):


function duedate(anydate)
dim result
If not is null(anydate) then
result=dateserial(year(anydate),month(anydate)+1,1
select case weekday(result)
case 1: duedate=result+1
case 7: duedate=result+2
case 6: duedate=result-1
case else
duedate=result
end select
else
result=null
end if
end function
Do...Loop (Instrucción)
Repite un bloque de instrucciones cuando una condición es True o hasta que una condición se convierta en True.
Do [{While | Until} condición]
[instrucciones]
[Exit Do]
[instrucciones]
Loop
O bien, puede utilizar esta sintaxis:
Do
[instrucciones]
[Exit Do]
[instrucciones]
Loop [{While | Until} condición]

Cuando se utiliza con instrucciones anidadas Do…Loop, la instrucción Exit Do transfiere control al bucle que
está anidado un nivel por encima del bucle donde ocurre.

GUIA ACCESS
Dim Comprobar, Contador
Comprobar = True: Contador = 0 ' Inicializa variables.
Do ' Bucle externo.
Do While Contador < 20 ' Bucle interno.
Contador = Contador + 1 ' Incrementa el contador.
If Contador = 10 Then ' Si la condición es verdadera.
Comprobar = False ' Establece el valor a False.
Exit Do ' Sale del bucle interno.
End If
Loop
Loop Until Comprobar = False ' Sale inmediatamente del bucle ext-
erno.
Opciones:
do do while condición do
instrucciones instrucciones instrucciones
do until condición- loop loop while condición

Do while not es igual a Do until


For...Next (Instrucción)
Utilizar un contador para ejecutar las instrucciones un número determinado de veces.
For contador = principio To fin [Step incremento]
[instrucciones]
[Exit For]
[instrucciones]
Next [contador]
Contador. Requerido. Variable numérica que se utiliza como contador de bucle. La variable no puede ser
de tipo Boolean, ni ningún elemento de matriz.
Principio Requerido. Valor inicial del contador.
Fin Requerido. Valor final del contador.
Incremento Opcional. Cantidad en la que cambia el contador cada vez que se ejecuta el bucle. Si no se
especifica, el valor predeterminado de incremento es uno.
Instrucciones Opcional. Una o más instrucciones entre For y Next que se ejecutan un número especificado de
veces.
El argumento incremento puede ser positivo o negativo. El valor del argumento incremento determina la manera
en que se procesa el bucle, como se muestra a continuación:
Valor El bucle se ejecuta si
Positivo ó 0 contador <= fin
Negativo contador >= fin
Una vez que se inicia el bucle y se han ejecutado todas las instrucciones en el bucle, incremento se suma a con-
tador
Una cambio en el valor de contador mientras está dentro de un bucle hace difícil su lectura y depuración.
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
...
Next K
Next J
Next I
Si omite un contador en una instrucción Next, la ejecución continúa como si se hubiera incluido. Se produce un
error si se encuentra una instrucción Next antes de su instrucción For correspondiente.
Dim Palabras, Caracteres, MiCadena
For Palabras = 10 To 1 Step -1 ' Establece 10 repeticiones.
For Caracteres = 0 To 9 ' Establece 10 repeticiones.
MiCadena = MiCadena & Caracteres ' Agrega un número a la cadena.
Next Caracteres ' Incrementa el contador
MiCadena = MiCadena & " " ' Agrega un espacio.
Next Palabras

function isloaded(myformname)
dim i
GUIA ACCESS
isloaded=false
for i=0 to forms.count - 1
'la propiedad "count" va de 0 a n-1 (-1 no 'es incremento, que
es 1)
if forms(i).formname=myformname then
isloaded=true
exit for 'también se podría: exit function
end if
next
end function

Para salir cuando se quiera de una proc Sub o Function: Exit Sub o Exit Function.
For Each...Next (Instrucción)
Repite un grupo de instrucciones para cada elemento de una matriz o de una colección.
For Each elemento In grupo
[instrucciones]
[Exit For]
[instrucciones]
Next [elemento]
Elemento Requerido. Variable que se utiliza para iterar por los elementos del conjunto o matriz. Para
conjuntos, elemento solamente puede ser una variable Variant, una variable de objeto genérica o cualquier varia-
ble de objeto específica. Para matrices, elemento solamente puede ser una variable tipo Variant.
Grupo Requerido. Nombre de un conjunto de objetos o de una matriz (excepto una matriz de tipos definidos
por el usuario).
La entrada al bloque For Each se produce si hay al menos un elemento en grupo. Una vez que se ha entrado en el
bucle, todas las instrucciones en el bucle se ejecutan para el primer elemento en grupo. Después, mientras haya
más elementos en grupo, las instrucciones en el bucle continúan ejecutándose para cada elemento. Cuando no
hay más elementos en el grupo, se sale del bucle y la ejecución continúa con la instrucción que sigue a la instr-
ucción Next.
No se puede utilizar la instrucción For Each...Next con una matriz de tipos definidos por el usuario porque un
tipo Variant no puede contener un tipo definido por el usuario.
En este ejemplo se utiliza la instrucción For Each...Next para buscar la cadena "Hola" en la propiedad Text de
todos los elementos de una colección. En el ejemplo, MiObjeto es un objeto relacionado con texto y es un ele-
mento de la colección MiColección. Ambos son nombres genéricos utilizados sólo a modo de ilustración.
Dim Found, MiObjeto, MiColección
Found = False ' Inicializa variable.
For Each MiObjeto In MiColección ' Itera por cada elemento.
If MiObjeto.Text = "Hola" Then ' Si Texto es igual "Hola".
Found = True ' Establece como Verdadero.
Exit For ' Sale del bucle.
End If
Next
With (Instrucción)
Ejecuta una serie de instrucciones sobre un único objeto o sobre un tipo definido por el usuario.
With objeto
[instrucciones]
End With
La instrucción With permite realizar una serie de instrucciones sobre un objeto especificado sin volver a calificar
el nombre del objeto.
With MyLabel
.Height = 2000
.Width = 2000
.Caption = "Esta es mi etiqueta"
End With
Una vez que se ha entrado en un bloque With no es posible cambiar el objeto. Por tanto, no puede utilizar una
única instrucción With para varios objetos.
Importante: No salte hacia dentro o hacia fuera de bloques With. Puede tener errores y comportamientos inesp-
erados si se ejecutan instrucciones en bloques With, sin que se ejecuten las instrucciones With o End With.
With MiObjeto
.Height = 100 ' Idéntico a MiObjeto.Height = 100.
.Caption = "Hola" 'Idéntico a MiObjeto.Caption = "Hola".
GUIA ACCESS
With .Font
.Color = Red ' Idéntico a MiObjeto.Font.Color = Red.
.Bold = True ' Idéntico a MiObjeto.Font.Bold = True.
End With
End With
Examinador de objetos
Un cuadro de diálogo que muestra información acerca de objetos, propiedades, métodos y constantes del proye-
cto actual y de las bibliotecas de objetos a las que se ha hecho referencia. Puede usar el Examinador de objetos
para buscar un elemento específico, ver su definición, obtener ayuda sobre el mismo, o pegarlo en un módulo.
Puede usar el Examinador de objetos para ver y explorar entre los objetos disponibles en Access y demás aplic-
aciones que sean compatibles con Visual Basic para aplicaciones, así como los métodos y propiedades de cada
objeto. Cuando localice un método o propiedad en el Examinador de objetos, puede pegarlo en el módulo activo.
Localizar un método o propiedad en el Examinador de objetos
1 Abra cualquier módulo.
2 Haga clic en Examinador de objetos en la barra de herramientas.
3 En el cuadro Proyecto/Biblioteca (el cuadro superior izquierdo), haga clic en Access o en otra bibliotec-
a.
4 En el cuadro Clases, haga clic en el objeto en el que esté interesado.
5 En el cuadro Miembros de, haga clic en el método o propiedad que desee.
Nota
· Para obtener Ayuda sobre la clase, método o propiedad que seleccione, haga clic en Ayuda en el Exa-
minador de objetos.
· Para ver objetos proporcionados por la Librería de objetos de Access 8.0, tales como objetos barra de
comandos, debe establecer una referencia a esta biblioteca. En la ventana Módulo, haga clic en Referencias en el
menú Herramientas y seleccione la casilla de verificación Office 8.0 Object library.
Use el Examinador de objetos para pegar una sintaxis de método o propiedad en un módulo
1 Seleccione el método o propiedad en el Examinador de objetos.
2 En la sección inferior del Examinador de objetos, seleccione la sintaxis que desee pegar.
3 Haga clic en Copiar a portapapeles en el Examinador de objetos.
4 Haga clic en el módulo en el que desee pegar el nombre.
5 Haga clic en Pegar en la barra de herramientas.
Access pega la sintaxis del método o propiedad en el módulo.
Nota Después de pegar la sintaxis para procedimientos Sub, es necesario eliminar los paréntesis que rodean los
marcadores de posición en la sintaxis.
Depuración de código
Ventana Depuración
Ventana para depurar el código de Visual Basic. Tiene dos fichas: una para el panel Inspección para hacer un
seguimiento de los valores de una o más expresiones seleccionadas y la otra para el panel Locales para hacer un
seguimiento de las variables locales y sus valores. En la parte inferior de ambas fichas aparece un panel Ejecutar
para ejecutar líneas individuales de código.
La ventana Depuración en Microsoft Access 97 consiste en tres paneles: un panel Inmediato que funciona de
forma muy parecida a la ventana Inmediata de las versiones anteriores de Microsoft Access, un panel Locales
que muestra todas las variables en el marco de la pila actual junto con sus valores, y un panel Inspección. Puede
cambiar entre los paneles de Locales y de Inspección haciendo clic en la ficha Locales o en la ficha Inspección
de la ventana Depuración. El panel Inmediato permanece visible independientemente de la ficha que se elija.
Para ver la ventana Depuración, abra un módulo y haga clic en la ventana Depuración en la barra de herramient-
as. También puede abrir la ventana Depuración haciendo clic en la ventana Depuración en el menú Ver o presi-
onando CTRL+S cuando trabaje en cualquier parte de Microsoft Access.
Otras características de la ventana Depuración: La nueva ventana Depuración proporciona información de
forma automática acerca del estado del código. Cuando no haya código en ejecución, la barra de estado de la
parte superior de la ventana Depuración muestra "<Preparado>". Una vez comienza la ejecución del código, la
barra de estado muestra el nombre de la base de datos actual, el módulo en el que reside el procedimiento que se
está ejecutando, y el nombre del propio procedimiento. Puede ver la ventana Llamadas desde la ventana Depura-
ción haciendo clic en el botón Generar .
Panel Locales
El panel Locales muestra una lista de variables en tres columnas: Expresión, Valor y Tipo. Algunas variables,
como los tipos, matrices y objetos definidos por el usuario, pueden contener información jerárquica. Estas varia-
bles tienen un botón expandir/contraer a la izquierda de los nombres de la variable para controlar la presentación
de la información jerárquica. Cuando el panel Locales está visible, se actualiza automáticamente cuando el modo
de ejecución cambia desde el modo de ejecución al modo de interrupción. Esto ocurre cuando la ejecución alc-
nza un punto de interrupción o cuando empieza a ir paso a paso a través del código.

GUIA ACCESS
La primera variable en la lista es una variables de modulo especial. Para un módulo de clase, esta es la variable
definida por el sistema Me. Esto es una referencia de objeto a la instancia actual de la clase definida por el mód-
ulo actual. Puesto que esta variable es una referencia de objeto, puede ser expandida para mostrar todas las pro-
iedades y datos de los miembros de la instancia de clase actual. Para los módulos estándar, la primera variable es
el nombre del módulo actual y también puede ser expandida para mostrar todas las variables a nivel del módulo
del módulo actual. Puede cambiar el valor de una variable en el panel Locales, pero no puede cambiar sus valor-
es Expresión o Tipo. Ver Pág 108
Panel Inspección
El panel Inspección permite ver el valor de una expresión o de una variable mientras se ejecuta el código. Para
establecer una expresión de inspección, haga clic en Agregar inspección en el menú Depurar. El panel Inspecci-
ón ha sido mejorado para proporcionar las siguientes funcionalidades:
· Expandir/contraer la información jerárquica.
· Cambiar el tamaño de los encabezados de columna.
· Modificar los valores en el momento.
Panel Inmediato
Puede ejecutar cualquier procedimiento Sub o Function, incluyendo los procedimientos de evento, en el panel
Inmediato.
Para ejecutar un procedimiento definido dentro de un módulo de clase desde el panel Inmediato, debe cualificar
el procedimiento con el nombre del módulo de clase, a menos que se encuentre en el modo de interrupción den-
tro de ese módulo. Si se encuentra en el modo de interrupción, no es necesario que cualifique el procedimiento,
porque ese módulo se encuentra actualmente dentro del alcance.
El siguiente ejemplo, cuando se escribe en el panel Inmediato de la ventana Depuración, ejecuta un procedimie-
nto ListaNombres que ha sido definido en el módulo de clase asociado con un formulario Empleados:
Form_Empleados.ListaNombres
El siguiente ejemplo ejecuta el procedimiento de evento Clic para un botón de comando llamado PersonalInfo de
un formulario Empleados:
Form_Empleados.PersonalInfo_Clic
Ver Pág 107, Usar el panel Inmediato.
Solución de errores en código
La depuración es un proceso que se utiliza para buscar y resolver errores o bugs, en el código de Visual Basic
para aplicaciones. Hay tres tipos de errores que puede encontrar mientras se ejecuta el código:
· Los errores en tiempo de compilación se producen como resultado de un código construido incorrect-
amente. Puede que se haya olvidado de igualar los pares de instrucciones (como por ejemplo If y End If o For y
Next) o puede tener un error de programación que viole las reglas de Visual Basic (tal como una palabra mal
escrita, la falta de un separador o un error de no coincidencia de tipos).
Los errores en tiempo de compilación incluyen también los errores de sintaxis, que son errores gramaticales o de
puntuación. Estos incluyen paréntesis que no coinciden o un número incorrecto de argumentos pasados a una
función.
· Los errores en tiempo de ejecución se producen después de que la aplicación inicie su ejecución. Ent-
re los ejemplos de errores en tiempo de ejecución se incluyen las operaciones ilegales, tal como dividir por cero
o escribir a un archivo que no existe.
· Los errores lógicos se producen cuando la aplicación no realiza lo que se pretendía y produce resultad-
os incorrectos.
Para ayudarle a aislar los tres tipos de errores y para controlar cómo se ejecuta el código, Visual Basic proporci-
ona herramientas de depuración que permiten ir paso a paso por el código de línea en línea, examinar o controlar
los valores de las expresiones y variables y hacer el seguimiento de las llamadas de los procedimientos.
Nota Para utilizar la mayoría de las herramientas de depuración de Microsoft Access, es necesario suspender la
ejecución del código.
Usar un punto de interrupción para suspender la ejecución de código
Cuando se suspende la ejecución de código de Visual Basic para aplicaciones, el código sigue ejecutándose,
aunque está detenido entre instrucciones en ejecución. Mientras está suspendida la ejecución del código puede
realizar tareas de depuración tal como comprobar los valores actuales d las variables y ejecutar cada línea de
código de línea en línea. Para hacer que Visual Basic detenga la ejecución del código, se pueden establecer punt-
os de interrupción.
1 En la ventana Módulo, mueva el punto de inserción a la línea de código que todavía no es un punto de
interrupción o declaración.
2 Haga clic en Alternar punto de interrupción en la barra de herramientas.
Para borrar un punto de interrupción, mueva el punto de inserción a la línea de código en la que se ha establecido
el punto de interrupción y luego haga clic en Alternar punto de interrupción en la barra de herramientas. Para
reiniciar la ejecución del código, haga clic en Iniciar o continuar en el menú Ejecutar.
Nota También puede suspender la ejecución del código agregando una instrucción Stop a un procedimiento o
presionando CTRL+INTERRUMPIR mientras el código está en ejecución.

GUIA ACCESS
Modo de interrupción
Suspensión temporal de la ejecución de un programa mientras se encuentra en el entorno de desarrollo. En el
modo de interrupción, se puede examinar, depurar, restablecer, ir paso a paso o continuar con la ejecución del
programa. Al modo de interrupción se tiene acceso: mediante la búsqueda de un punto de interrupción durante la
ejecución del programa; presionando CTRL+INTER durante la ejecución del programa; encontrando una instr-
ucción Stop o un error en tiempo de ejecución no detectable durante la ejecución del programa; agregando una
expresión de inspección Modo de interrupción cuando sea verdadero (la ejecución se detiene cuando el valor de
la expresión de inspección cambia y da como resultado True); agregando una expresión de inspección Modo de
interrupción cuando haya cambiado (la ejecución se detiene cuando cambie el valor de la expresión de inspecci-
ón).
Ir paso a paso por el código
Al ir paso a paso por el código de Visual Basic para aplicaciones puede ayudar a identificar donde se está produ-
ciendo un error. Puede ver si cada línea de código produce los resultados esperados.
1 Suspenda la ejecución del código.
Access muestra la línea de código en la que se suspende la ejecución.
2 Haga unas de las siguientes cosas:
· Para ir paso a paso por cada línea del código y dentro del código a un procedimiento llamado por otro
procedimiento, haga clic en Paso a paso por instrucciones en la barra de herramientas.
· Para ir paso a paso por cada línea de código pero ejecutar como una unidad cada procedimiento al que
se llame, haga clic en Paso a paso por procedimientos en la barra de herramientas.
· Para ejecutar el código que precede a la línea actual de código y luego detenerse para poder ir paso a
paso por cada línea del código, haga clic en Ejecutar hasta el cursor en el menú Depurar.
· Para ejecutar el resto del procedimiento actual y luego a la siguiente línea de código del procedimiento
anterior del árbol de llamadas, haga clic en Paso a paso para salir en la barra de herramientas.
Nota: Puede usar Paso a paso por instrucciones sin suspender la ejecución del código. En la ventana Módulo,
sitúe el cursor en el procedimiento por el que desea ir paso a paso y haga clic en Paso a paso por instrucciones
en la barra de herramientas.
Se puede alternar entre estos tipos de ejecuciones paso a paso. El tipo de ejecución paso a paso que lleve a cabo
depende de las partes del código que desee analizar.
Arbol de llamada
Todos los módulos que pueden ser llamados por el procedimiento en el módulo en el cual el código se está eje-
utando actualmente.
Usar el panel Inmediato
Use el panel Inmediato en la ventana Depurar para comprobar los resultados de una línea de código de Visual
Basic para aplicaciones. Puede usar el panel Inmediato para comprobar el valor de un control, campo o propied-
ad; para mostrar el resultado de una expresión; o para asignar un nuevo valor a una variable, campo o propiedad.
El panel Inmediato es una especie de ventana de borrador en la que se evalúan inmediatamente las instrucciones,
métodos y procedimientos Sub.
1 Si desea usar el panel Inmediato en un cierto punto durante la ejecución del código, suspenda la ejecu-
ción del código en ese punto.
2 Haga clic en Ventana de depuración en la barra de herramientas.
3 Escriba en la ventana una instrucción, método, llamada de procedimiento Function o Sub y luego presi-
one ENTRAR.
Sugerencias:
· Puede ver los resultados de una expresión en el panel Inmediato introduciendo el método Print
del objeto Debug, seguido por la expresión. Puede usar un signo de interrogación (?) como abreviación del mét-
odo Print. Por ejemplo, Visual Basic muestra el valor devuelto por la función personalizada PrimerDíaDelMes-
Siguiente si introduce algunas de las dos líneas siguientes en el panel Inmediato:
Debug.Print PrimerDíaDelMesSiguiente()
? PrimerDíaDelMesSiguiente()
También puede agregar el método Print del objeto Debug al código de Visual Basic para mostrar los valores o
los resultados de las expresiones del panel Inmediato mientras se ejecuta el código. Cuando el código haya fin-
lizado la ejecución, puede mirar los resultados.
· En Microsoft Access puede mostrar el panel Inmediato en cualquier momento presionando CTRL+G.
Establecimiento de una expresión de inspección en el código
Cuando se suspende la ejecución de código de Visual Basic para aplicaciones, puede observar los valores de las
expresiones de inspección en el panel Inspección de la ventana Depuración. También puede realizar una inspe-
cción rápida para ver el valor de una expresión que no haya sido especificada como una expresión de inspección.
Agregar una expresión de inspección al panel Inspección
1 Abra un procedimiento en la ventana Módulo.
2 En el menú Depurar, haga clic en Agregar inspección.

GUIA ACCESS
3 Si ya seleccionó una expresión en la ventana Módulo, se mostrará de forma automática en el cuadro de
diálogo. Si no se muestra ninguna expresión, escriba la expresión que desee evaluar. La expresión puede ser una
variable, una propiedad, una llamada de función o cualquier otra expresión válida.
En lugar de escribir la expresión, puede seleccionar una expresión en la ventana Módulo y arrastrarla al panel
Inspección.
4 Para seleccionar el intervalo en el que se evaluará la expresión, seleccione un contexto de módulo y de
procedimiento bajo Contexto.
Nota Seleccione el alcance mínimo que se ajuste a sus necesidades. Si se seleccionan todos los procedimientos
o todos los módulos podría ralentizar la ejecución del código.
5 Para definir la forma en la que el sistema debe responder a la expresión de inspección, seleccione una
opción bajo Tipo de inspección.
· Para mostrar el valor de la expresión de inspección, haga clic en Expresión de inspección.
· Para detener la ejecución si la expresión se evalúa a True, haga clic en Modo de interrupción cuando el
valor sea Verdadero.
· Para detener la ejecución si cambia el valor de la expresión, haga clic en Modo de interrupción cuando
el valor cambie.
Cuando ejecuta el código, el panel Inspección muestra el valor de la expresión que se hubiera establecido. Para
modificar una expresión de inspección, seleccione la expresión en el panel Inspección y luego haga clic en Mo-
dificar inspección en el menú Herramientas. Para eliminar la expresión de inspección, haga clic en Eliminar en el
cuadro de diálogo Modificar inspección.
Realizar una inspección rápida mientras se depura código
1 Suspenda la ejecución del código Visual Basic para aplicaciones.
2 Seleccione la expresión cuyo valor desea ver.
3 Haga clic en Inspección rápida en la barra de herramientas.
Access muestra el cuadro de diálogo Inspección rápida, en el que puede ver la expresión y el valor actual de la
expresión. Haga clic en Agregar en el cuadro de diálogo para agregar la expresión a la lista de expresiones de
inspección del panel Inspección de la ventana Depurar.
Seguimiento de llamadas de procedimientos mientras se depura código
Cuando se suspende la ejecución de código de Visual Basic para aplicaciones mientras se depura el código, pue-
de usar el cuadro de diálogo Llamadas para ver una lista de los procedimientos que hayan sido iniciados pero no
completados.
1 Suspenda la ejecución del código de Visual Basic.
2 Haga clic en Pila de llamadas en la barra de herramientas.
Access muestra el último procedimiento llamado en la parte superior de la lista, seguido del procedimiento lla-
mado anteriormente y así sucesivamente. Para mostrar la instrucción que llama al siguiente procedimiento de la
lista, haga clic en Mostrar.
Presentación del valor de las variables en el panel Locales
1 Suspenda la ejecución del código de Visual Basic para aplicaciones.
2 Haga clic en la Ventana de depuración en la barra de herramientas.
En la parte superior de la ventana Depurar, en la ficha Locales, Microsoft Access muestra de forma automática el
nombre, valor actual y tipo de todas las variables y objetos del procedimiento activo. Los valores del panel Loc-
les se actualizan cada vez que suspende la ejecución del código. Puede cambiar el valor de una variable en el
panel Locales seleccionando el valor existente e introduciendo el nuevo valor.
Mostrar el valor de una variable o expresión en la ventana Módulo cuando el código está
suspendido
1 En el menú Herramientas, haga clic en Opciones.
2 Haga clic la ficha Módulo.
3 Bajo Opciones del código, asegúrese que está seleccionada la casilla de verificación Sugerencias de
datos automáticas.
Cuando la casilla de verificación Sugerencias de datos automáticas está seleccionada, puede comprobar el valor
de una variable o una expresión mientras el código está suspendido. Sitúe el puntero del mouse sobre una varia-
ble o expresión para que se muestre su valor actual.
Referencia de funciones
En la siguiente referencia se enumeran todas las funciones en orden alfabético. Un doble asterisco (**) indica
que la función se agregó para Access 97.
A–C
Abs (VBA) Comando (Command)
AgregFecha (DateAdd) (VBA) CompCadena (StrComp) (VBA)
Ahora (Now) (VBA) Conmutador (Switch) (VBA)
Amortiz (DDB) (VBA) ConvCadena (StrConv) (VBA)
Año (Year) (VBA) Cos (VBA)

GUIA ACCESS
ArcTg (Atn) (VBA) CreateControl
Array (VBA) CreateForm
Cad (Str) (VBA) CreateGroupLevel
Cadena (String) (VBA) CreateObject (VBA)
Car (Chr) (VBA) CreateReport
CBool (VBA) CreateReportControl
CByte (VBA) Cronómetro (Timer) (VBA)
CCadena (CStr) (VBA) CSimple (CSng) (VBA)
CDec (VBA) CuadroEntr (InputBox) (VBA)
CDoble (CDbl) (VBA) CuadroMsj (MsgBox) (VBA)
CEntero (Cint) (VBA) Cuenta (Count) (DAO)
CFecha (Cdate) (VBA) CurrentDb
CLargo (CLng) (VBA) CVariante (Cvar) (VBA)
CMoneda (Ccur) (VBA) CVErr (VBA)
CodeDb CVFecha (CVDate) (VBA)
CódiogoCar (Asc) (VBA)
D–H
DBúsq (Dlookup) Elegir (Choose) (VBA)
DCont (Dcount) EnCad (InStr) (VBA)
DDE Ent (Int) (VBA)
DDEEnviar (DDESend) Entorno (Environ) (VBA)
DDEIniciar (DDEInitiate) Entrada (Input) (VBA)
DDEPedido (DDERequest) EOF (VBA)
DDesvEst (DStDev) Error (VBA)
DDesvEstP (DStDevP) EsFecha (IsDate) (VBA)
Der (Right) (VBA) EsNulo (IsNull) (VBA)
DesvEst (StDev) (DAO) EsNum (IsNumeric) (VBA)
DesvEstP (StDevP) (DAO) Espacio (Space) (VBA)
Día (Day) (VBA) EsVacío (IsEmpty) (VBA)
DíaSemana (Weekday) (VBA) Eval
DifFecha (DateDiff) (VBA) Exp (VBA)
Dir (VBA) Fecha (Date) (VBA)
DirAct (CurDir) (VBA) FileAttr (VBA)
DMáx (Dmax) Formato (Format) (VBA)
DMín (Dmin) FreeFile (VBA)
DoEvents (VBA) GetObject (VBA)
DPrim (DFirst) GUIDFromString**
DProm (DAvg) Hex (VBA)
DSuma (DSum) Hora (Hour) (VBA)
DÚltimo (DLast) HoraActual (Time) (VBA)
DVar HoraFechaArch (FileDateTime) (VBA)
DVarP HyperlinkPart
I–R
IMEStatus (VBA) MIRR (VBA)
Interés (IPmt) (VBA) NPer (VBA)
IRR (VBA) NPV (VBA)
IsArray (VBA) NúmAleat (Rnd) (VBA)
IsError (VBA) Nz
IsMissing (VBA) ObtenerAtributo (GetAttr) (VBA)
IsObject (VBA) ObtenerValor (GetSetting) (VBA)
Izq (Left) (VBA) ObtenerValores (GetAllSettings) (VBA)
LBound (VBA) Oct (VBA)
Ln (Log) (VBA) Pago (Pmt) (VBA)
LoadPicture ParcFecha (DatePart) (VBA)
Loc (VBA) Partición (Partition) (VBA)
LOF (VBA) Ppago (PPmt) (VBA)
LongArch (FileLen) (VBA) Primero (First) (DAO)
Longitud (Len) (VBA) Promedio (Avg) (DAO)
Máx (Max) (DAO) QBColor (VBA)
Mayús (Ucase) (VBA) Raíz2 (Sqr) (VBA)
Medio (Mid) (VBA) Recortar (Trim) (VBA)
Mes (Month) (VBA) RecortarDer (Rtrim) (VBA)

GUIA ACCESS
Mín (Min) (DAO) RecortarIzq (Ltrim) (VBA)
Minús (Lcase) (VBA) RGB (VBA)
Minuto (Minute) (VBA)
S–Z
Seek (VBA) Tab (VBA)
Segundo (Second) (VBA) Tasa (Rate) (VBA)
Sen (Sin) (VBA) Tg (Tan) (VBA)
SerieFecha (DateSerial) (VBA) TypeName (VBA)
SerieHora (TimeSerial) (VBA) Ubound (VBA)
Shell (VBA) Último (Last) (DAO)
Signo (Sgn) (VBA) UsuarioActual (CurrentUser)
Silnm (IIf) (VBA) VA (PV) (VBA)
SinDec (Fix) (VBA) Val (VBA)
SLN (VBA) ValorFecha (DateValue) (VBA)
Spc (VBA) ValorHora (TimeValue) (VBA)
StringFromGUID** Var (DAO)
Suma (Sum) (DAO) VarP (DAO)
SYD (VBA) VarType (VBA)
SysCmd VF (FV) (VBA)

Referencia de instrucciones
(Excepto las instrucciones SQL).
A–M N–Z
AppActivate (VBA) DeleteControl Name (VBA) Resume (VBA)
Beep (VBA) DeleteReportControl On Error (VBA) Return (VBA)
Call (VBA) DeleteSetting (VBA) On...GoSub (VBA) RmDir (VBA)
ChDir (VBA) Dim (VBA) On...GoTo (VBA) RSet (VBA)
ChDrive (VBA) Do...Loop (VBA) Open (VBA) SaveSetting (VBA)
Close (VBA) End (VBA) Option Base (VBA) Seek (VBA)
Const (VBA) Erase (VBA) Option Compare (VBA) SelectCase (VBA)
Date (VBA) Error (VBA) Option Explicit (VBA) SendKeys (VBA)
DDE Exit (VBA) Option Private (VBA) Set (VBA)
DDEExecute FileCopy (VBA) Print # (VBA) SetAttr (VBA)
DDEPoke For Each...Next (VBA) Private (VBA) Static (VBA)
DDETerminate For...Next (VBA) Property Get (VBA) Stop (VBA)
DDETerminateAll Function (VBA) Property Let (VBA) Sub (VBA)
Declare (VBA) Get (VBA) Property Set (VBA) Time (VBA)
DefBool (VBA) GoSub...Return (VBA) Public (VBA) Type (VBA)
DefByte (VBA) GoTo (VBA) Put (VBA) Unlock (VBA)
DefCur (VBA) If...Then...Else (VBA) Randomize (VBA) While...Wend (VBA)
DefDate (VBA) Input # (VBA) ReDim (VBA) Width # (VBA)
DefDbl (VBA) Kill (VBA) Rem (VBA) With (VBA)
DefInt (VBA) Let (VBA) Reset (VBA) Write # (VBA)
DefLng (VBA) Line Input # (VBA)
DefObj (VBA) Lock (VBA)
DefSng (VBA) Lset (VBA)
DefStr (VBA) Mid (VBA)
DefType (VBA) MidB (VBA)
DefVar (VBA) MkDir (VBA)

Funciones e Instrucciones por tarea de programación.


Task type Description Function/Statement
Arrays Declare and initialize array variables Dim, Global, ReDim, Static
Create Array (Function)
Reinitialize array variables Erase, ReDim
Find the limits of an array LBound, UBound
Change the defaault lower limit for array Option Base
Control of Pro- Create loops Do...Loop, Exit Do, Exit For, For...Next,
gram flow While...Wend
Handle errors On Error, Resume

GUIA ACCESS
Make decisions Choose, If...Then...Else, IIf, Select Case,
Switch
Exit or pause the program DoEvents, End, Stop
Conversion ANSI value to string Chr
String to ANSI value Asc
Number to string Format, Str
String to number Val
One numeric data type to another CCur, CDbl, CInt, CLng, CSng, Fix, Int
Decimal number to other radix string Hex, Oct
Date to serial number DateSerial, DateValue
Serial number to date Day, Month, Now, Weekday, Year
Time to serial number TimeSerial, TimeValue
Serial number to time Hour, Minute, Now, Second
Date/Time Get the current date or time Date, Now, Time
Set the date or time Date, Time
Time a process Timer
SQL dates DateAdd, DateDiff, DatePart
Domain Perform domain aggregate financial opera- DAvg, DCount, DFirst, DLast, DMax,
tions DMin, DStDev, DStDevP, DSum, DVar,
DVarP
Dynamic data Use Access Basic as a DDE client DDEExecute, DDEInitiate
exchange (DDE)
Use Access Basic to send data to a DDE DDEPoke, DDESend
server
Use Access Basic to request data from a DDE, DDERequest
DDE server
Terminate a DDE conversation DDETerminate, DDETerminateAll
Error handling Trap errors while a program is running On Error, Resume
Get error-status data Err, Erl
Get error messages Error
Simulate run-time errors Error
Inspecion of vari- Determine if a variable is a Date IsDate
ables
Determine if a variable is a Empty IsEmpty
Determine is a variable is Null IsNull
Determine if a variable is numeric IsNumeric
Determine the underlying data type of a VarType
Variant
File input/ouput Access or create a file Open
Close a file Close, Reset
Write to a file Print #, Put, Write #
Control output appearance Spc, Tab, Width #
Read from a file Get, Input, Input #, Line Input #
Get information about a file EOF, FileAttr, FreeFile, Loc, LOF, Seek
Set or determine the read/write position in a Seek
file
Manage disk drives or directories ChDrive,ChDir, CurDir, MkDir, RmDir
Manage files Dir, Kill, Lock...Unlock, Name
Financial Perform financial operations DDB, FV, IPmt, IRR, MIRR, NPer, NPV,
Pmt, PPmt, PV, Rate, SLN, SYD
Graphics o n Work with colors QBColor, RGB
printed reports
Draw a shape Circle, Line, PSet

Find the size of text TexHeight, TextWidth


Change the coordinate system Scale
Print trext Print
Object manipula- Display a dialog box InputBox, MsgBox
tion
Math Perform general calculations Exp, Log, Sqr
Trigonometric functions Atn, Cos, Sin, Tan
Convert a number Fix, Int

GUIA ACCESS
Get the absolute value of a number Abs
Get the sign of an expression Sgn
Generate random numbers Randomize, Rnd
Operators Arithmetic *, +, -, \, /, ^, Mod
Comparison <, <=, >, >=, =, <>
Concatenation &
Logical And, Eqv, Imp, Not, Or, Xor
Pattern matching Like
SQL Is, In, Between...And
Procedures Define a procedure Function, Sub
Call a procedure Call
Exit a procedure Exit Function, Exit Sub
Daclare a reference to an external procedure Declare
(DLL)
Recorsets Ver Métodos por tarea de programación.
SQL Perform an SQL aggregate financial opera- Avg, Count, First, Last, Min, Max, StDev,
tion StDevP, Sum, Var, VarP
Strings Format a string Format
Create a string of repeating characters Space, String
Work with ANSI values Asc, Chr
Manupulate a string InStr, Left, LTrim, Mid, Right, RTrim
Convert to lowercase or uppercase letters LCase, UCase
Left or right align a string LSet, RSet
Find the length of a string Len
Compare two strings StrComp
Variables and Declare a variable or constant Const, Dim, Global, Static
constants
Set de default data type Deftype
Creat a user-defined type Type
Assign a variable to a recordset object Set
Miscellaneous Run another program AppActivate, Shell
Handle events DoEvents
Generate keystrokes SendKeys
Get command-line arguments Command
Find environment Environ
Sound a beep Beep
Evaluate an expression Eval
Determine a number’s position in a range Partition

Referencia de métodos
A–C N–Q
AccessError** Clone (DAO) NewCurrentDatabase OpenReport
Add (VBA) Close (DAO) NewPassword (DAO) OpenTable
Add (colección Pages)** Close NextRecordSet (DAO) OutputTo
AddFromFile (objeto Module)** OpenConnection (DAO) PopulatePartial (DAO)
CloseCurrentDatabase OpenCurrentDatabase Print (VBA)
AddFromFile (colección References)** OpenDatabase (DAO) Print
CommitTrans (DAO) OpenForm PrintOut
AddFromGUID** CompactDatabase (DAO) OpenModule Pset
AddFromString** CopyObject OpenQuery Quit (objeto DoCmd)
AddNew (DAO) CopyQueryDef (DAO) OpenRecordset (DAO) Quit (objeto Application)
AddToFavorites** CreateDatabase (DAO) R
Append (DAO) CreateEventProc** Raise (VBA) RepaintObject
AppendChunk (DAO) CreateField (DAO) Recalc RepairDatabase (DAO)
ApplyFilter CreateGroup (DAO) Refresh (DAO) ReplaceLine**
Beep CreateIndex (DAO) Refresh Requery (DAO)
BeginTrans (DAO) CreateProperty (DAO) RefreshDatabaseWindow** Requery (objeto DoCmd)
BuildCriteria CreateQueryDef (DAO) RefreshLink (DAO) Requery (objeto Control o Form)
Cancel (DAO) CreateRelation (DAO) RefreshTitleBar Restore
CancelEvent CreateTableDef (DAO) RegisterDatabase (DAO) Rollback (DAO)
CancelUpdate (DAO) CreateUser (DAO) Remove (VBA) Run
Circle CreateWorkspace (DAO) Remove (colección Pages)** RunCommand**
GUIA ACCESS
Clear (VBA) Remove (colección References)** RunMacro
D–F Rename RunSQL
DefaultControl FillCache (DAO) Repaint
DefaultWorkspaceClone Find** S–Z
Delete (DAO) FindFirst (DAO) Save ShowToolbar
DeleteLines** FindLast (DAO) Scale SizeToFit
DeleteObject FindNext (DAO) Seek (DAO) Synchronize (DAO)
DoMenuItem FindNext SelectObject TextHeight
Dropdown FindPrevious (DAO) SendObject TextWidth
Echo (objeto DoCmd) FindRecord SetFocus TransferDatabase
Echo (objeto Application) Follow** SetMenuItem TransferSpreadsheet
Edit (DAO) FollowHyperlink** SetOption (DAO) TransferText
Execute (DAO) SetOption Undo
G–M SetWarnings Update (DAO)
GetChunk (DAO) Item (VBA) ShowAllRecords
GetOption Line
GetRows (DAO) MakeReplica (DAO)
GoToControl Maximize
GoToPage (objeto DoCmd) Minimize
GoToPage (objeto Form) Move (DAO)
GoToRecord MoveFirst (DAO)
Hourglass MoveLast (DAO)
Idle (DAO) MoveNext (DAO)
InsertLines** MovePrevious (DAO)
InsertText** MoveSize

Métodos por tarea de programación (Recorsets).


Task Type Description Method
OLE objects Manipulate OLE objects AppendChunk, Get Chunk
Record manipulation Add or delete a record AddNew, Delete
Make changes Edit
Save changes Update
Record positioning Move to a specific record FindFirst, FindLast, FindNext, Find-
Previous, Seek
Move to a relative record MoveFirst, MoveLast, MoveNext,
MovePrevious
Recordset manipulation Creat a recordset Clone
Close a recordset Close
Return information about a recordset ListFields, ListIndexes, ListParameters,
ListTables.

GENERALIDADES Y EJEMPLOS DE VISUAL BASIC.


Procedures: Function: Return a value that can be used in a expression.
" Sub: Can't be used in an expression.
A module has a Declaration Section (default: Option Compare Database) and 1 or more Procedures in a logical
group.
Cada Módulo tiene ventana diferente y la ventana se puede dividir para ver varios de sus Procedures.
CTRL+↑ a previous procedure. CTRL+Ø next procedure. New upper line: CTRL+N. Cortar línea para pegar:
CTRL+Y.
Punto de inserción en palabra reservada: su Help con F1. También puntero de Ayuda con MAY+F1 para
ayuda local.
F2 lista de Módulos y sus procedures. MAY+F2 va al procedure seleccionado.
Para sangría insertar/quitar: TAB o MAY-TAB.

Función Primer dia del mes siguiente actual:


Function DueDate()
DueDate=DateSerial(Year(Now),Month(Now)+1,1)
End Function
Utilización: Default value de campo (Vencimiento) =DueDate()
Control Source en Formulario: =DueDate()

GUIA ACCESS
Criterio de Consulta: <=DueDate()
Función para incluir un argumento (por ej.: especificar una fecha):
Function DueDate(anydate)
DueDate=DateSerial(Year(anydate),Month(anydate)+1,1)
End Function
Ahora dentro del paréntesis se puede especificar una fecha: =DueDate([Order Date])
Más de un argumento, separar con comas, y no son opcionales.
Comenzar comentarios en cualquier línea con apóstrofe: '

Ejecutar Acciones y Macros: DoCmd nombre acción/macro [arg]


Para realizar acciones de macros desde código en Access 97, use el objeto DoCmd y sus métodos.
DoCmd Echo False, "Screen Updating Off" (Echo tiene dos argument-
os)
DoCmd Close 2, "Add Products" (dos argumentos, Formulario , Add
Products)
Los arg. se separan con comas (2 significa tipo objeto Formulario según orden de acción Close en una macro,
siendo 0 Tabla, 1 Consulta, 2 Formulario, 3 Informe, 4 Macro y 5 Módulo).
Pueden ser opcionales, pero poniendo comas: DoCmd MoveSize ,,5000,3000
docmd openform "customers"
docmd openreport "catalog"
docmd close a_form, "customers"
docmd close a_report, "catalog"
Ver Pág 120.
Acciones de macro que no tienen métodos DoCmd equivalentes:
AgregarMenú No tiene equivalente
CuadroMsj Función MsgBox
EjecutarAplicación Función Shell
EjecutarCódigo Llamada a procedimiento (instrucción Call)
EnviarTeclas Instrucción SendKeys
EstablecerValor Instrucción de asignación (instrucción Let)
DetenerTodasMacros Instrucciones Stop o End
DetenerMacro Instrucciones Exit Sub o Exit Function

Sub Procedures: Se crean igual que Function.


No lleva variables ni retorna valor.
Sub SizeIt(DocWidth,DocHeight)
DoCmd MoveSize ,,DocWidth,DocHeight
End Sub
Utilizar: SizeIt 5000,3000 (No necesario primeras comas)
Al llamar a una Sub los argmentos NO se ponen entre paréntisis.
Private. Anteponer a Sub o Function para utilizar sólo en el mismo módulo.

Salir de Sub proc. y Function: Exit Sub o Exit Function

Depuración:
Utilizar Option Explicit en la Sección Declaraciones de cada módulo, para declarar las variables y evitar errores
de definición.
Parar: poner un 'Stop' (instrucción) donde se quiera o poniendo un Punto interrupción (botón 'mano' –F9 toggle-,
se elimina al cerrar) en la línea en que se esté, que quedará encuadrada y donde se parará. En negrita indica Pu-
nto de interrupción, encuadrado significa instrucción actual o próxima a realizar.
En una misma línea se pueden poner más de una instrucción, separando con dos puntos (:), pero el Punto interru-
pción sólo en la primera.
Borrar todos los puntos de interrupción: CTRL+MAY+F9.
Para iniciar ejecución o seguir, F5.
Paso a paso: F8.
Paso a paso por procedimiento: los saltos a procedimientos como si fueran una instrucción, a mismo nivel es
Paso a Paso.
Ejecutar hasta cursor (hacia delante o atrás) CTRL+F8
Para recomenzar donde se quiera después de parada (atrás o delante): ir a donde se quiera continuar y F5.
Panel inmediato: (Ventana de Depuración) CTRL+S para saber inmediatamente resultado de expresiones y val-
res de campos, controles, propiedades. Sólo evalúa una línea de código (usar los : (dos puntos)). Hay que poner
antes 'Print' (-o ?). Anteponer también Debug si se está fuera del Panel inmediato.
GUIA ACCESS
Debug.Print DueDate(Now) Respuesta: 23-3-98 (Desde la venta módulo)
El signo de interrogación es idéntico a 'Print' siempre.
Desde Panel inmediato: ?weekday(duedate(now)) Respuesta: 6 (viernes, siempre america-
no).
Si son proc. Sub no lleva Print ó ? porque no devuelve valor: sizeit 5000,3000
Para probar el For... Next completo: for I=1 to 20 : 2*I : next I
? forms! [sales reps].recordsource
Mostrar valores: Debug.? [items] [;]
function duedate(anydate)
'this function calculates and returns the date of the first day
of the month 'following the supplied date.
debug.? "Year "; year(anydate); ", Month "; month(anydate)
duedate=dateserial(year(anydate), month(anydate)+1,1)
end function
En ventana de depuración: ? duedate(now)
Respuesta: Year 1997, Month 11
1/12/97
No es necesario para ejecución, pero la ventana Panel inmediato debe estar abierta para ver respuesta.
Las instrucciones con punto de interrupción muestran valor de su argumento en la ventana Panel inmediato.
Línea Duedate de arriba mostraría, con ?Anydate Respuesta: 1/12/97
Sólo muestra variables de la proc. vigente (o que sea Global).
También se usa para dar valores de prueba:
forms![sales reps]!title="Sales Executive" (control)
forms![sales reps]!title.visible=false (propiedad)
maxrows=50 (variable)
INTRO en la línea de instrucción la vuelve a ejecutar (después de editarla). Moverse con las flechas. Con IN-
TRO (ejecutar) borra las 2da y 3ra líneas. Poner ; (punto y coma) al final de línea de INTRO para no borrar 3ra.

Variables
Se crean autom. con un nuevo nombre, pero mejor Dim YearVar, MonthVar.
Con Dim o sólo con nombre: válido sólo para proc. mientras en ejecución.
Declaración variables:
Function DueDate(AnyDate) 'obligatorio especificar alguna fecha.
Ej. de 'arriba seria fecha actual
Dim YearVar, MonthVar 'esta línea es opcional. En dos formas
'variables sólo para este proc.
YearVar=Year(AnyDate)
MonthVar=Month(AnyDate)+1
DueDate=DateSerial(YearVar,MonthVar,1)
End Function
ó
Function DueDate(AnyDate)
DueDate=DateSerial(Year(AnyDate),Month(Anydate)+1,1)
End Function

Por Default, todas las Variables son Variant (Num/fecha/texto). Si se sabe que sólo será de un tipo, mejor
declarar el tipo. (Dim A as integer)
Variables y Tipos de Datos:
Option Explicit en Declarations of a Module no permite crear variables sin Dim o Global.
Dim en procedimiento: local al procedimiento. (Se puede repetir nombre en otros y serán independientes)
Dim en Declar. de Module: sólo en ese módulo.
Global en Declar. de Module: global, todos los módulos y procedimientos. Conveniente declarar en un solo
módulo.
Con mismo nombre, tienen preferencias las variables más locales.
Nombres de Procedimiento siempre son Globales, a menos que se declaren Private, que sólo estarán disponible
a su módulo.
Al salir de una proc. con var. locales, éstas quedan a 0. Para no borrarlas así, declararla Static en vez de Dim.
Function RunningTotal(num)
Static Accumulate
Accumulate=Accumulate+num : RunningTotal=Accumulate
End Function
GUIA ACCESS
Para declarar todas las variables Static en procedimiento, no importa si declaradas después Dim:
Static Function RunningTotal(num)
Variable type by Default: Variant (num/texto/fecha):
X="17" : X=X-15 : X="U" & X Valor de X: "U2"
Con isnumeric() y isdate() se sabe si son sólo num. o fecha para operaciones.:
if isnumeric(x) and isnumeric(y) then
z=x*y : else : z = null : end if

function century() 'fecha actual


t=now : if t>=#1-1-2001# then : century=21
else : century=20 : end if
end function

function century(anydate)
if isdate(anydate) then century ((year(anydate)-1)\100)+1
else : century=null : end if
end function

Para saber si Variant no tiene valor (ni null, ni 0, ni "", antes de asignarle algo, es IsEmpty()):
if isempty(x) then z=0
Sólo tipo Variant puede ser Null (Z=Null) (If IsNull(Z)). Variant numérico es tipo Double.
Integer: entero -32000 hasta +32000
Long: entero -2147 mill a +2147 mill.
Single: decimales grande: 4 bytes
Double: decimales muy grande: 8 bytes
Currency, String
dim a as integer, amt as double
dim yourname as string, fechacobro 'sin especificar en Variant-
,aquífecha.
dim test, b as single, amount
Más rápido y menos memoria utilizando tipo apropiado.
Convertir a Integer o Long siempre redondea.
String: S="database" S=left(s,4) 'dá "data"
dim empname as string*50 'dá 50 caracteres fijos, no
'importa largo nombre
Option Compare (binary, database, text) en el módulo determina resultado de comparaciones entre tipos.
Binary es default.
Tipo campo Compatible Acces Basic
Autonumérico Long
Fecha/hora Double
Yes/no Integer
Etc.

function reverse (S as string, n as integer)


‘reverses the frst n characters in S.
dim temp as string, i as integer
if n > len(s) then n=len(s)
for i=n to 1 step -1
temp=temp+mid(s,i,1)
next
reverse=temp+right(s,len(s)-n)
end function
(Ver también Objetos como argumentos)
Los argumentos de procedures admiten definir el tipo, pero si se definen siempre serán de ese tipo y ni admitiría
cambio a Variant. Un arreglo es anteponer ByVal en definiciones que no sean Variant.
function reverse (s as string, byval n as integer) 'n podría intro-
ducirse
'tipo Variant.
Sin no tuviera ByVal arriba, lo siguiente daría error: n="4" : debug.? reverse(v,n) 'er-
ror

GUIA ACCESS
Otro arreglo, convertir en expresión poniendo entre paréntesis: debug.? reverse(v,(n)). Se evalu-
ará la expresión y pasará el tipo requerido. Con () es la forma más sencilla de convertir variable en expresión.
Las funciones devuelven por default el tipo Variant. Si no tiene valor (Ni Null, 0, “”) da Empty Variant. Para
definir la devolución de otro tipo (para rapidez de Access):
Function reverse (S as string, byval n as integer) as string 'sin
valor, sería ""
Matrices (Arrays)
Conjunto de elementos que tienen el mismo tipo de datos y que están ordenados secuencialmente. Cada elemento
de una matriz posee un número de índice único que lo identifica. Los cambios efectuados a un elemento de una
matriz no afectan a los demás elementos.
Se crean igual que Variables. (Ver Función Array)
Declaration Section de Module: dim counters (1 to 15) as integer
dim sums (100 to 120) as string
Para Global, cambiar Dim por Global. Cambiar a Static para dentro de una procedure.
Todos los elementos poner a 5 (los 15):
static counters (1 to 15) as integer
dim I as integer
for I=1 to 15 : counters(I)=5 : next
De varias dimensiones (ej. valorar cada uno según su localización):
dim I as integer, j as integer
static matrixa (1 to 10, 1 to 15) as double '150 elementos
for i=1 to 10
for j=1 to 15
matrixa(i,j)=i*10+j
next j
next i
Para Dynamic Arrays (tamaño autom. según utilización) ver ReDim en Ayuda..
Constantes.
A diferencia de Variables, son datos fijos.
const pi=3.1416, max_planets=9
const word_pop =6E+=9, pi2=pi*2
En uso: static solarsystem(1 to max_planets) 'array
if numpeople > word_pop then exit sub
const release_date = #30-11-97#
Declarar para toda la aplicación: Global const en Declaraciones de módulo.
Variables de objeto
dim femploy as form, cbirth as control
set femploy=forms!employees
set cbirth=femploy![birth date]
Tipos: database, form, report, control, querydef, table, dynaset, snapshot.
Dynaset es tabla o resultado de consulta, actualizable. Snapshot igual, pero no actualizable.
Table, Dynaset y Snapshot son Recordset variables.
Tipos especiales: Screen (formulario, informe o control actual) y Debug (imprimir Panel inmediato).
Los objetos deben estar abiertos. Con Set se hace referencia al objeto real.
dim x as control, y as control
set x=forms!employees!age
set y=x : x=x*2 'variable de control y también queda *2

dim anyform as form, anycontrol as control


set anyform=forms![customers]
set anycontrol=anyform![Cust ID]

dim visvar, salcontrol as control


set salcontrol=forms!Employees!salary
visvar=salcontrol.visible 'asigna el valor de la propiedad Visible.
Después:
visvar=false 'o true, no ver o ver.
Sería lo mismo que:
Forms!employees!salary.visible=false

Variable con el nombre del objeto (poner entre ()):


GUIA ACCESS
dim someform, formvar as form
someform=inputbox("What form?")
set formvar=forms(someform)

Lo siguiente es equivalente:
set formvar=forms("employees") 'entre comillas es nombre
literal.
set formvar=forms!employees

The Count property (Forms and Reports) returns the number of each control (0 to n-1).
Listar Controles de un formalario:
dim formvar as form, somecontrol
set formvar=forms!employees
for somecontrol=0 to formvar.count –1
'la propiedad Count va de 0 a n-1 (-1 no es incremento,
que es 1)
debug.? formvar(somecontrol)
next somecontrol
Listar Formularios. Ver si está cargado un formulario.
function isloaded(myformname) 'para ver si está cargado un formular-
io
dim i
isloaded=false
for i=0 to forms.count -1
if forms(i)!formname=myforname then isloaded=true : exit func-
tion
next
end function
Objetos predefinidos
Forms and Reports are predifined objects that contains all the open forms and reports in a database. Each form
and report also has a predefined object called Dynaset, which contains all the fields in the dynaset underly-
ing the form or report.
debug.? forms![my form].Dynaset![Field 1]
Con dynaset se utiliza el punto porque es objeto definido por Access. El ! se utilizado sólo con objetos creados.
Subformulario (objeto Form): Poner Visible a SubForm en control Container de Form TopForm:
debug.? forms!topform!container.form!subform.visible Ver Pág 122.
Métodos de Objetos.
Method is a special statement or function that operates on a specific object. Objects have members, properties
and methods.
Sintaxis: object.method[(arglist)]
Las propiedades y los métodos utilizan el punto. Los métodos se distinguen porque usualmente tienen argument-
os.
Ej métodos: createdynaset y movenext
dim mydb as database, results as dynaset
set mydb=currentdb()
set results = mydb.createdynaset("Final Query")
do until results.eof : results.movenext : loop
' No arguments in movenext method, don't return value.
Print en realidad en un método de Debug, al igual que lo puede ser de Reports.
Objectos como argumentos en Procedimientos.
Una función solo devuelve tipos básicos como Variant o Integer, pero un procedemiento tanto function como sub
puede aceptar objetos como argumento. Para pasar un control como argumento, definirlo:
sub flipvisitibility (c as control)
c.visible=not c.visible
end sub

También Variant admite Controles como argumento:


function reverse(s as variant, byval n as integer) 'reverses the
first n
'characters in S.
dim temp as string, i as integer
GUIA ACCESS
if n > len(s) then n = len(s)
for i = n to 1 step - 1
temp= temp + mid(s, i, 1)
next
reverse= temp + right(s, len(s) - n)
end function
Llamar:
debug.? reverse(forms!customers![company name],6)

Control de Errores durante ejecución.


True: -1, False: 0
function fileexists(filename)
dim msg
on error goto checkerror
fileexists=(dir(filename) <> "") 'use Dir to see if file exists
exit function
checkerror:
const mb_esclaim=48, mb_stop=16, mb_ok_cancel=1, button_ok=1
' constantes de tipos de mensajes.
if err=71 then 'disk not ready
msg="Put a floppy disk in the drive and close the drive door."
'display message box with an exclamation mark icon and with OK
and
'Cancel buttons.
if msgbox(msg, mb-exclaim + mb-ok-cancel)=button-ok then
resume 'vuelve misma instrucción de error
else
resume next 'siguiente al error
end if
elseif err= 68 then 'device unavailable
msg="This drive or path does not exist: "+ filename
msgbox msg, mb-exclaim
resume next
else
msg="Unanticipated error number"+str(err)+ " occurred: "+ error
'display message box with stop sign icon and OK button
msgbox msg, mb_stop
stop
end if
resume 'vuelve a la línea del error.
end function

On Error sigue activo hasta Exit Sub/Function o End Sub/Function (o On Error Goto 0).
Resume va a la línea del error, con Resume Next, a la siguiente.
Resume line vuelve a número de línea o a etiqueta de línea.

function divide (number, denom)


const mb-exclaim=48
const err-div0=11, err-overflow=6, err-illfunc=5
on error goto mathhandler
divide=numer/denom
exit function
mathhandler:
if err=err_div0 or err=err_overflow or err=err_illfunc then
divide=null
else
msgbox "Unanticipated error "& err & ": " & error, mb-exclaim
end if
resume next
end function
GUIA ACCESS
function verifyfile()
dim nl, prompt, msg, filespec
nl=chr(13) & chr(10) 'carriage return-linefeed combination (new
line)
prompt="Enter file specification to check:"
starthere:
filespect="*.*" 'start with default
msg=msg & nl & prompt 'let the user modify the default
filespect=inputbox(msg, "file Search", filespec,100,100)
if filespec="" then exit function 'user enters nothing
on error goto handler
verifyfile= dir(filespec)
exit function
handler:
select case err
case 64, 52 'invalid, bad filename
msg="Your file spec was invalid. Try another."
case 71 'drive door open
msg="Close the disk drive door and try again."
case 68
msg="The drive you spec was not found. Try again."
case else
error err 'statament (error err) para errores no contemplad-
os. También se 'puede utilizar un procedimiento propio de
último recurso, o un Stop.
end select
resume starthere
end function
Para inhabilitar la captura de errores en cualquier momento: On Error goto 0
Códigos con Formularios e Informes
En propiedad OnPush =RemoveIt(0) (sin = sería macro, no función)
La propiedad de evento sólo admite llamada a funciones, ignorando valor devuelto. Nunca a Sub.
En diseño se puede cambiar cualquier propiedad. En otra vista sólo:
Enabled: si un control puede estar enfocado en vista formulario.
Locked: si permite cambios en los datos en vista formulario.
Visible: muestra o esconde un control o sección.
Updating Forms:
DoCmd para ejecutar casi cualquier acción.
Para realizar acciones de macros desde código en Access 97, use el objeto DoCmd y sus métodos.
docmd repaintobject a_form,"myform" 'para forzar actualización
inmediata de propiedad. También se utiliza para mensaje inmediato,
como "Processing" o"Please wait" en un Cuadro de Texto.
Mostrar inmediatamente cambios (Requery, display most current data):
docmd requery "mycontrol"
Records refreshed in a multiuser environment:
docmd domenuitem a_formbar, a_recordsmenu, a_refresh
En Access 97, la acción EjecutarComando reemplaza a la acción EjecutarElementoMenú (DoMenuItem).
Crear listas para Cuadro de Lista/Combinado:
Function functioname(fld as control,id,row,col,code)
Argument Description
fld A control var that refers to the list box or combo box being filled.
id A unique value that identifies the control being filled; useful when you want to use the
same list function for more than one list box of combo box and distinguish between them.
row The row being filled in the list box (0-based).
col The column being filled in the list box (0-based).
code (código) A value that specifies the kind of info being requested.
Se utilizan llamadas repetidas a la función con diferentes code, según necesario.
Puesto que Access llama a una función definida por el usuario varias veces para insertar elementos en una lista, a
menudo es necesario preservar la información de una llamada a otra. La mejor forma de hacer esto es utilizar
variables Static.
GUIA ACCESS
Access llama repetidamente a la función definida por el usuario utilizando valores diferentes en el argumento
código para especificar la información que necesita. El argumento código puede utilizar las siguientes constantes
intrínsecas (propias objetos Access)..
Constante Significado Valor devuelto por la función
acLBInitialize Inicializar No-cero si la función puede rellenar la lista; False (0) o Null en caso
contrario.
AcLBOpen Abrir Valor de Id. no-cero si la función puede rellenar la lista; False o Null
en caso contrario.
acLBGetRowCount Número de filas Número de filas en la lista (puede ser cero); -1 si desconocido.
AcLBGetColumnCount Número de columnas Número de columnas en la lista (no puede ser cero); debe
coincidir con la configuración de la hoja de propiedades.
acLBGetColumnWidth Ancho de la columna Ancho (en twips) de la columna especificada por el
argumento col; -1 para utilizar el ancho predeterminado.
AcLBGetValue Entrada de lista Entrada de la lista para ser mostrada en la fila y columna especificda
por los argumentos fila y col.
acLBGetFormat Cadena de formato Cadena de formato para ser utilizada para dar formato a la
entrada de la lista mostrada en la fila y columna especificada por los argumentos fila y
col; o -1 para utilizar el formato predeterminado.
acLBEnd Fin (la última llamada a una función definida por el usuario siempre utiliza este valor)
Nada.

La siguiente función definida por el usuario devuelve una lista de los siguientes cuatro Lunes que siguen a la
fecha de hoy. Para llamar a esta función desde un control cuadro de lista, introduzca ListarLunes como el
valor de la propiedad TipoDeOrigenDeLaFila (RowSourceType), sin paréntesis ni argumentos ni el signo
=, y deje en blanco el valor de la propiedad OrigenDeLaFila (RowSource).
Function ListarLunes(fld As Control,id As Variant,fila As Vari-
ant,col As Variant,código As Variant) As Variant
Dim intOffset As Integer
Select Case código
Case acLBInitialize ' Inicializar.
ListarLunes = True
Case acLBOpen ' Abrir.
ListarLunes = Timer ' Generar Id única para
control.
Case acLBGetRowCount ' Obtener número de filas.
ListarLunes = 4
Case acLBGetColumnCount ' Obtener número de colu-
mnas.
ListarLunes = 1
Case acLBGetColumnWidth ' Obtener ancho de colum-
na.
ListarLunes = -1 ' -1 fuerza el uso de ancho predete-
rminada.
Case acLBGetValue ' Obtener los datos.
intOffset = Abs((9 - Weekday(Now))Mod 7)
ListarLunes = Format(Now() + intOffset + 7 *
fila,"mmmm d")
End Select
End Function

El siguiente ejemplo utiliza una matriz estática para almacenar los nombres de las bases de datos en el directorio
actual. Para llamar a esta función, introduzca ListMDBs como el valor de la propiedad TipoDeOrigenDeLaFila
(RowSourceType) y deje en blanco el valor de la propiedad OrigenDeLaFila (RowSource).
Function ListarMDBs(fld As Control, id As Variant, fila As Variant,
col As Variant, código As Variant) As Variant
Static dbs(127)As String, Entradas As Integer
Dim ValorDevuelto As Variant
Dim ValorDevuelto
ValorDevuelto = Null
Select Case código
Case acLBInitialize ' Inicializar.
GUIA ACCESS
Entradas = 0
dbs(Entradas ) = Dir("*.MDB")
Do Until dbs(Entradas) = "" Or Entradas >= 127
Entradas = Entradas+1
dbs(Entradas) = Dir
Loop
ValorDevuelto = Entradas
Case acLBOpen ' Abrir.
ValorDevuelto = Timer ' Generar Id única para contr-
ol.
Case acLBGetRowCount ' Obtener número de filas.
ValorDevuelto = Entradas
Case acLBGetColumnCount ' Obtener número de colu-
mnas.
ValorDevuelto = 1
Case acLBGetColumnWidth ' Ancho de columna.
ValorDevuelto = -1 ' -1 fuerza el uso de anchopre-
determinada.
Case acLBGetValue ' Obtener datos.
ValorDevuelto = dbs(fila)
Case acLBEnd ' Fin.
Erase dbs
End Select
ListarMDBs = ValorDevuelto
End Function
Variables de Formularios e Informes
Ver si visible o no:
dim f as form
set f=forms![products and suppliers]
if f.visible then : msgbox f.formname & " is visible."
Else : msgbox f.formname & " is not visible."
end if
También: f.visible=false 'para establecer.
El formulario o informe debe estar abierto para referirse a él con una variable. Para ver si está abierto: Pág 118.
Ver todos los reports abiertos:
for i=0 to reports.count-1
debug.? reports(i).reportname
next i
Para abrir:
docmd openform "customers"
docmd openreport "catalog"
Para cerrar:
docmd close a_form, "customers"
docmd close a_report, "catalog"
Objetos predefinidos.
Además de objetos Forms y Reports (Ver Pág 118), el objeto Screen:
Screen property Object referred to
Screen.ActiveControl Control on the active form that has the focus (if any)
Screen.ActiveForm Form that is active (is any)
Screen.ActiveReport Report currently printing or being previewed (if any)
El nombre del control activo:
function currentctrl()
currentctrlname=screen.activecontrol.controlname
' si fuera formulario: currentformnam-
e=screen.activeform.formaname
debug.? currentctrlname
end function
No se puede depurar o probar código de objetos Screen ya que debe estar enfocado el formulario, informe o
control Se puede ejecutar con el nombre de función precedido del signo = en una propiedad de evento, como
OnPush o OnPrint.

GUIA ACCESS
Este ejemplo utiliza el objeto Pantalla (Screen) para mostrar el nombre del formulario de la ventana activa y del
control activo en ese formulario:
Sub ObjetosActivos()
Dim frm As Form, ctl As Control
' Retorna un objeto Form que representa al formulario ac-
tivo.
Set frm = Screen.ActiveForm
MsgBox frm.Name & " es el formulario activo."
' Devuelve un objeto Control que representa al control a-
ctivo.
Set ctl = Screen.ActiveControl
MsgBox ctl.Name & " es el control activo " _
& "de este formulario."
End Sub
Otros Objectos
Property Use
Parent For subforms and subreports, provides the form object of
the main form.
Form On forms, provides the active form object.
Report On reports, provides the active report object.
Dynaset On forms, provides the recordset containing the records for
the form.
Bookmark In Visual Basic, provides a randomly created string that
uniquely indentifies each record in a recordset.

Referirse a un control del formulario principal activo.


Command button en Subform con OnPush =displaypercent(form)
function displaypercent (f as form)
dim discountpercent, discountamount
discountpercent=f.parent![discount percent]
discountamount=discountpercent*f.[subtotal]
...
end function
Las propiedades Form y Report (diferente a objetos Forms y Reports) se puede utilizar como parámetro de una
función. Utilizar para referirse a objeto que no sea el activo. También se pueden utilizar en lugar de Scree-
n.activeform o Screen.activereport para referir a un subform o subreport.
Marcador (Bookmark)
Marcar un registro para volver (sincronizar datos de Access Basic con el del formulario/informe):
Propiedad del objeto Recordset o de un formulario que contiene una cadena generada por el sistema que identifi-
ca el registro activo. Si asigna el valor de Bookmark a una variable y después se mueve a otro registro, puede
volver a convertir el registro anterior en el registro activo, configurando la propiedad Bookmark con esa variable
de cadena.
dim mydyna as dynaset
set mydyna = forms!categories.dynaset
mydyna.bookmark=forms!categories.bookmark
Para volver:
forms!categories.bookmark=mydyna.bookmark (Recordar: el primero se valora al segun-
do).
Ver Pág 129.
Variables de Control
Dar valor o propiedad.
dim f as form
set f=forms!customers
f!city="Madrid"
f!city.locked=true
Recorrer los controles:
function listcontrols(r as report)
dim r as report, i
for i=0 to r.count - 1
debug.? r(i).controlname
next i
GUIA ACCESS
end function
Asociar variable a un control:
dim c as control
set c=forms!customers!city
c="Madrid"
c.locked=true
Controles como argumentos:
function togglevisible(c as as control)
c.visible=not c.visible
end function
Pasar valores apropiados:
function inittext (ctext as control)
'pasarle: inittext (forms!customers![contact name])
ctext="Unknown" 'Sólo a controles que acepten texto (Texto o Etiq-
ueta)
end function
Tipo de Control
Statement: If TypeOf control is controltype then
controltype: boundobjectframe, checkbox, combobox, commandbutton, graph, label, line, listbox, object-
frame, optionbutton, optiongroup, pagebreak, rectangle, subform, subreport, textbox, togglebutton.
control declared as control:
if x =3 then x=5
elseif typeof thiscontrol is label then thiscontrol.visible=false
end if
Ponerle "Unknown" a todos los Cuadros de Texto
function initcontrols(f as form)
dim c as control, i
for i=0 to f.count - 1
set c=f(i)
if typeof c is texbox then c="Unknown"
elseif typeof c is label then c.visible=false
endif
next
end function

Como TypeOf no puede llevar Not:


if typeof thiscontrol is textbox then 'en blanco
else
this control.visible=false
end if

Métodos Gráficos
Methods:
Circle Draws empty or filled arcs, circles, and ellipses.
Line Draws lines and empty or filled boxes
Print Draws text
PSet Draws points
Scale Changes the scale units used by the other graphics methods
TextHeight Returns the vertical height of the specified text in the current scale units.
TextWidth Returns the horizontal width of the specified text in the current scale units.
Categorias y sus Propiedades:
Current drawing location CurrentX, CurrentY
Drawing techniques DrawMode, DrawStyle, DrawWidth
Filling techniques FillColor, FillStyle
Scaling techniques ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight, ScaleMode

Ver cada método en Ayuda.

Para Impresión en Color, ver Ayuda para "RGB" o "QBColor"

GUIA ACCESS
Tratamiento de Datos
Objecto como base de datos actual
dim db as database
set db=currentdb()
Abrir otra base de datos
set db=opendatabase("nwind.mdb")
Sólo se pueden utilizar sus Tablas y Consultas.
db.close para cerrar. También se cierra automáticamente al cerrar su ámbito, pero mejor explícito.
Variables de objetos
Variables Tabla: most up-to-date. Refleja todos los cambios. No permite Sort o Filter, pero sí reordenar con
Index ya creados.
Variables Dynaset: Más flexible, pero no refleja cambios inmediatos. Permite datos sobre tablas y consultas;
también Sorts y Filtros. Cambios se ven al abrir de nuevo. Muchos Dynaset se pueden referir a los mis-
mos datos (tabla, consulta, otra dynaset)
Variables Snapshot: Copia fija de Tabla, Dynaset, Query u otro Snapshot.
Variables Tabla
dim db as database, tablevar as table
set db=opendatabase("nwind.mdb")
set tablevar=db.opentable("customers")
Vista real actualizada de la tabla. No se puede filtrar ni reordenar. Ver Reordering.
No se puede crear nueva tabla (excepto con make-table query).
Crear variables Dynaset
De Tabla o Consulta.
dim dsdyna as dynaset
set dsdyna=db.createdynaset("customers") 'Customers es tabla, y pod-
ría ser
'Consulta existente.
Para Dynaset nueva, utilizar SQL string (se puede copiar de una Consulta).
sql="select * from Employees where employees![city]="London";"
set dssomedata=db.createdynaset(sql) 'sólo hasta primer registr-
o,
Ver Pág 133, Variables QuerDef .
Asignar Dynaset del formulario:
dim f as form, ds as dynaset
set f=forms("employees")
set ds=f.dynaset
Asignar Dynaset de Formulario corriente (actual) a variable:
dim dscurrentform as dynaset
set dscurrentform=screen.activeform.dynaset
Crear Dynaset con otra:
dim db database, dssomedata as dynaset, dsotherdata as dynaset
set db=currentdb()
set dssomedate=db.createdynaset("sales for 1991")
set dsotherdata=dssomedata.createdynaset()'permite reordenar y re-
stringir
'registros antes con las propiedades Sort y Filter.
Crear variables Snapshot
Crear Snapshots es similar a Dynasets.
dim db as database, dssomedata as dynaset
dim snap1 as snapshot, snap2 as snapshot
set db=currentdb()
st dssomedata=db.createdynaset("Sales for 1991")
set snap1=dbsomedata.createsnapshot()
set snap2=snap1.createsnapshot()
Cerrar variables recordset
Igual que con Database variables.
Cerrar: tablevar.close dssomedata.close snapdata.close
Cerrar una dynaset que se refiere a un dynaset de formulario no tiene efecto en ésta.
Utilizar variables Recordset (Tables, Dynasets and Snapshots)
Acceder a datos:
Set dssomedata=db.createdynaset("employees")

GUIA ACCESS
debug.? dssomedata![last name], dssomedata![city]
Equivalentes, pero la primera es la más rápida:
Curbirthday=dssomedate![birthdate]
curbirthday=dssomedate("birhdate") 'referencia al nombre del con-
trol.
fieldname="birthdate" : curbirthday=dssomedata(fieldname)
Sólo las Variant permiten Null, por tanto es la mejor para guardar un campo.
Así sólo se pueden leer y mostrar los valores de estos campos. Para cambiar valores utilizar los Edit y Update
methods.
Ir a registros:
MoveFirst, MoveLast, MoveNext, MovePrevious.
En el último registro, MoveNext pone EOF=True y registros actual indefinido. Otro MoveNext daría error.
Igual con MovePrevious y el primer registro. Si no existen registros, BOF y EOF are True.
Registro a registro (sólo como ilustración, ver abajo):
sub moveforward()
dim db as database, ds as dynaset
set db=currentdb()
set ds=db.createdynaset("Employees") 'los Dynaset siempre se crean
do until ds.eof
debug.? ds![last name], ds![title]
ds.movenext
loop
ds.close
end sub

En vez de ir de uno en uno como en ej. anterior, utilizar Action Queries con "QueryDef" variables, o los Find o
Seek Methods (ver delante).
Ordenar, clasificar registros
Con tablas sólo se pueden utilizar índices ya creados.
sub indextext()
dim db as database, t as table
set db=currentdb()
set t=db.opentable("customers")
debug.? t![company name] 'primera según primary key o random
t.index="city" 'nombre del índex ya existente (siempre).
debug.? t![company name] ' primera según índice de city.
t.close
end sub
No se puede crear índices para tablas. Para ver existentes: ListIndexes method.
Para ver en otro orden, crear Dynaset :
dim db as database, somedata as dynaset, sorteddata as dynaset
set db=currentdb()
set somedata=db.createdynaset("products")
somedata.sort="[category id], [product name]"
set sorteddata=somedata.createdynaset()

somedata.sort="[category id], [unit price] desc, [supplier id]"


set sorteddata=somedata.create dynaset()

Utilizar la misma variable para ordenar:


snapdata.sort="[product name]"
set snapdata=snapdata.createsnapshot() 'igual, pero con sort.

Puede ser más eficiente crear una Consulta (QueryDef,. Action Queries) que crear una Dynaset of Snapshot y
hacerle sort o filtro.
Filtrar, consultar
Similar a Ordenar.
Set snapdata=db.createsnapshot("sales for 1996")
snapdata.filter="[category name]='Beverages'"
set snapdata=snapdata.createsnapshot()

GUIA ACCESS
q.filter="employess![last name]>'M' and employees![country]='USA'"

q.filter="employees.[last name]=""O'Keane""" 'ver comillas

dim db as database, somedata as dynaset, sorteddata as dynaset


set db=currentdb()
set somedata=db.createdynaset("products")
somedata.filter="[quantity per unit] like '*box*'"
somedata.sort ="[category id], left([product name], 1)"
set sorteddata=somedata.createdynaset()

Los filtros no se pueden aplicar a Tablas. Crearle una Dynaset.


Es más eficiente para filtrar crear una nueva Consulta (QuerDef, Action Queries), que crear una Dynaset y filtr-
arla, a no ser que ya exista.
Modificar registros
Ej. siguiente más eficiente con Consulta de actualización. En general es más rápido y eficiente utilizar Quer-
yDef con sentencias SQL que los siguientes ejemplos de consultas de acción. También con las de selección.
Ver Pág 133.
Utilizar Edit para preparar el registro. Después cambiarlo y utilizar Update para guardar los cambios.
Cambiar en todos un valor por otro.
sub replacecountry(oldvalue, newvalue)
dim db as database, t as table
set db=currentdb()
set t=db.opentable("customers")
do until t.eof
if t!country=oldvalue then : t.edit : t![country]=newvalue :
t.update
t.movenext
loop
t.close
end sub

Cambiar sin Edit, da error. Sin Update no cambia.

Ej. de campo a utilizar como Primary Key, donde primero hay que eliminar los Nulls:
(Ver también Finding records)
sub eliminatenulls(fieldname, tablename, databasename)
dim db as database, dstable as dynaset, counter
if fieldname="" or tablename="" then exit sub
if databasename="" then set db=currentdb()
else : set db=opendatabase(databasename)
end if
set dstable=db.createdynaset(tablename)
counter=val(dmax(fieldname, tablename))+1
do until dstable.eof
if isnull(dstable(fieldname)) then
dstable.edit
dstable(fieldname)=counter
dstble.update
counter=counter+1
end if
dstable.movenext
loop
dstable.close
db.close
end sub

Dynasets se pueden abrir sobre Consultas de múltiples tablas. Los cambios en Dynaset se reflejarán en las tablas.
En relaciones de uno-a-muchos, sólo la tabla de muchos se pueden cambiar.

GUIA ACCESS
Eliminar registros
Más eficiente hacer delete Query con QueryDef:
Anular/eliminar todos los registros.
sub emptytable (tany as table)
tany.movefirst
do until tany.eof
tany.delete
tany.movenext
loop
end sub
Con Dynaset pone todos los campos a Null. Con Tabla, elimina los registros.
Añadir registros
Más eficiente con Action Query de QueryDef. Añadir registro.
dim db as database, t as table
set db=currentdb()
set t=db.opentable("shippers")
t.addnew 'creates a new blank record and makes it current
t![company name]="Global Parcel Service"
t.update 'el registro activo anterior vuelve a ser el corriente.
t.close
Con tabla se coloca según índice, con dynaset, al final.
Buscar registros en Dynaset y Snapshots
Igual que los Move., pero con Criteria: FindFirst criteria, FindLast cri, FindNext cri, FindPrevious
cri. No se pueden utilizar con variable tabla, utilizar Seek (ver adelante).
Buscar campos con un contenido.
sub jarproducts()
dim db as database, somedata as dynaset, criteria
set db=currentdb()
set somedata=db.createdynaset("products")
criteria="[product name] like '*jar*'" 'Criteria siempre debe
ser un String
somedata.findfirst criteria
do until somedata.nomatch
debug.? somedata![product name], somedata![quantity per unit]
somedata.findnext criteria 'si no encuentra, nomatch es true y
registro 'actual indefinido. Utilizar Bookmark si se qui-
ere volver al anterior.
loop
somedata.close
end sub
Buscar campos Null para añadirle 1 y utilizar como PrimaryKey. Más eficiente que en Changing records
anterior.
sub eliminatenulls(fieldname, tablename, databasename)
dim db as database, dstable as dynaset, counter, criteria
if fieldname="" or tablename="" then exit sub
if databasename="" then set db=currentdb()
else : set db=opendatabase(databasename)
end if
set dstable=db.createdynaset(tablename)
counter=val(dmax(fieldname, tablename))+1
criteria=fieldname & " = null"
dstable.findfirst criteria
do until dstable.nomatch
dstable.edit : dstable(fieldname)=counter : dstable.update
counter=counter+1 : dstable.findnext criteria
loop
dstable.close
db.close
end sub

GUIA ACCESS
No se puede utilizar los Find methods con Tablas. Utilizar Dynaset o Snapshot y Find. Sí se puede utilizar Seek
method con Tablas con sus índices.
Buscar registros en Tablas
Seek utiliza arg. El primero es siempre comparación, el 2do., data a buscar. Debe especificarse siempre antes un
Index existente de tabla.. Buscar el primero que comience con 'U':
dim db as database, cust as table
set db=currentdb()
set cust=db.opentable("customers")
cust.index="[company name]"
cust.seek ">=", "U"
if not cust.nomatch then
msgbox cust![company name] & " " & cust![postal code]
end if
cust.close
Buscar un registro con un índice múltiple (PrimarKey):
function getfirstprice(orderid, productid) 'el 2do. campo índice no sería obligato-
rio
dim db as database, cust as table
if not (isnumeric(orderid) and isnumeric(productid)) then
getfirstprice=null : exit function
end if
set db=currentdb()
set cust=db.opentable("Order details")
cust.index="PrimaryKey" 'índice con OrderID y ProductID
cust.seek "=", orderid, productid
if cust.nomatch then gerfirstprice=null
else : getfirstprice=cust![unit price]
end if
cust.close
end function
Marcadores
Para volver al mismo registro:
Currentrec=ds.bookmark 'marcar (Recordar: el primero se pone al
segundo)
ds.bookmark=currentrec 'volver

currentrec=ds.bookmark
ds.findfirst criteria
if ds.nomatch then ds.bookmark=currentrec 'volver al anterior
Botón Show Manager en Employees form con OnPush en esta función: (=showmanager())
function showmanager()
dim f as form, ds as dynaset, currentrec
set f=forms("employees")
set ds=f.dynaset 'dynaset de "employees"
ds.bookmark=f.bookmark
ds.findfirst "[employeeid] = " & ds![reports to]
if ds.nomatch then msgbox "Manager not found"
else : msgbox "Manager: " & f.[employee name]
end if
f.bookmark=ds.bookmark 'volver al empleado
end function
Cloning
Para crear una copia idéntica de Dynaset y tener 2 current records.
Crear un dynaset sobre otra no es lo mismo, ya que el orden y los reg. pueden no ser los mismos y además no
pueden compartir Boorkmarks. Los registros de dos dynaset sobre una misma tabla afectan igualmente a la tabla,
pero no entre los registros de las dynasets
Cloning permite tener dos registros actuales en el mismo Dynaset, mientras que creándole otro Dynaset serán
completamente independientes. Los registros entre un dynaset y su clónico no pueden variar.
dim db as database, ds1 as dynaset, ds2 as dynaset
set db = currentdb()

GUIA ACCESS
set ds1 = db.createdynaset("table1")
set ds2 = ds1.clone()

Este ej. de copiar un registro en un mismo Dynaset se podría hacer con Bookmarks y sin clone(), pero así es
más eficiente y código más simple: (Ver también Listing the Fields in a Recordset)
sub copycurrentrec (ds as dynaset, fields())
' fields is an array containing all field names in the dynaset
dim i, dscopy as dynaset
set dscopy = ds.clone() 'actuar sobre un clone() es igual que so-
bre dynaset
dscopy.addnew
for i = lbound(fields) to ubound(fields)
dscopy(fields(i)) = ds(fields(i))
next i
dscopy.update
dscopy.close
end sub
Manipular campos grandes
Para objetos OLE y Memo fields muy grandes.
Method Purpose
FieldSize Returns the size of the specified field.
GetChunk Returns a specified portion of the field
AppendChunk Appends the contents of a specified variable to the field
Separa los campos a pedazos (chunks), ya que máximo de Strings es de 64K.
Transacciones
Una trasacción son varias operaciones que se deben realizar completas y bien. (Ej.: completar bien el débito y el
crédito de un banco).
Statement Purpose
BeginTrans Begins a trasaction
CommitTrans Commits all changes made since the most recent BeginTrans statement.
Rollback Rolls back all changes made since the most recent BeginTrans statement.
function transferfunds(fromaccount, toaccount, customerid, amount)
'transfer amount from customerid's fromaccount to toaccount.
'returns 0 if successful, nonzero error value is unsuccessful.
dim db as database, source as dynaset, destination as dynaset
on error resume next
set db = currentdb()
set source = db.createdynaset(fromaccount)
set destination = db.cratedynaset(toaccount)
if err then 'error with a field or table
on error goto 0
transferfunds = err
exit function
end if
source. findfirst "[cust id] = " & customerid
destination.findfirst "[cust id] = " & customerid
if not (source.nomatch or destination.nomatch) then
if source!balance >= amount then
begintrans
source.edit
source![balance] = source![balance] - amount
source.update
destination.edit
destination![balance] = destination![balance] + amount
destination.update
if err then
transferfunds = -1
rollback
else
transferfunds = 0

GUIA ACCESS
committrans
end if
else
transferfunds = -2
end if
else
transferfunds = -3
end if
source.close
destination.close
end function
Ejemplo de Transacción anidada. Crear nueva Categoria solo si hay productos para ella:
(Ver Pág 133 Updating Recordsets with QuerDef Variables)
dim db as database, dscat as dynaset, dsproduct as dynaset
dim criteria, failure
on error resume next
set db = currentdb()
set dsproduct = db.createdynaset("products")
failure = false
criteria = "[english name] like '*sauce*'"
begintrans 'outer transaction
dsproduct.findfirst criteria
do until dsproduct.nomatch
begintrans 'inner transaction
dsproduct.edit
dsproduct![category id] = "SAUC"
dsproduct.update
if err then
failure = true
rollback 'inner transaction.
else
commitrans 'inner transaction.
end if
if failure then exit do
dsproduct.findnext criteria
loop
if failure then
rollback 'outer transaction.
msgbox "Failed: " & error
else
' create new sauces category.
set dscat = db.createdynaset("Categories")
dscat.addnew
dscat![category id] = "SAUC"
dscat![category name] = "Sauces"
dscat![description] = "Sauces"
dscat.update
if err then
rollback 'outer transaction.
msgbox "Failed: " & error
else
committrans 'outer trasaction.
msgbox "Succeeded"
end if
end if
Todo BeginTrans debe terminar con Commit o RollBack.
Bloquear datos
Para que ningún otro usuario cambie los datos mientras se vayan a utilizar.
Se utiliza el parámetro True:
En Databases: set db = opendatabase("nwind.mdb", true)
GUIA ACCESS
En Tablas y Dynasets: set datarecs = db.createdynaset("employees", true)
Para sólo registros, ver propiedad Lockedits.
Información de los objetos de la Base de datos
Listing the Tables and Queries in a Database
Method Returns
ListTables A Snapshot containing a record for each table or query in the database.
ListFields " field in the recordset.
ListIndexes " index in a table
ListParameters " parameter in a QueryDef.
sub display tables()
dim db as database, sstablelist as snapshot
set db=currentdb()
set sstablelist=db.listtables()
debug.? "Table Name", "Record Count", "Created",, "Updated"
do until sstablelist.eof
If sstablelist.tabletype <> db_querydef then 'skip queries
debug.? sstablelist.name, sstablelist!recordcount, ;
debug.? Sstablelist.datecreated, sstablelist.lastupdated
end if
sstablelist.movenext
loop
sstablelist.close
end sub
El ejemplo de arriba, para no incluir las tablas del sistema:
...
do until sstablelist.eof
isnotaquery=sstablelist.tabletype<>db_querydef
isnotasysobj=((sstablelist.attributes and db__systemobject)=0)
if isnotaquery and isnotasysobj then 'skip both
...
Listar campos en un Recordset.
Sub FieldInfo (tablename, databasename)
dim db as database, ssfields as snapshot, dstable as table
if databasename="" then
set db=currentdb()
else
set db=opendatabase(databasename)
end if
set dstable=db.opentable(tablename)
set ssfields=dstable.listfields()
do until ssfields.eof
debug.? ssfields.name; " ";
selec case ssfields.type
case db-boolean
debug.? "Yes/no"
case db_date
debug.? "Date/Time"
case db_text, db_memo
debug.? "Text"
case db_ole
debug.printy "OLE"
case else
debug.? "Numeric"
end select
ssfields.movenext
loop
ssfields.Close
dstable.close
if databasename <> "" then db.close
end sub

GUIA ACCESS
Copiar registro:
Sub copycurrentrec(ds as dynaset)
dim dscopy as dynaset, ssfieldlist as snapshot
'assume that the current dynaset record is the record to copy
set dscopy=ds.clone()
dscopy.addnew
set ssfieldlist=ds.listfields()
do until ssfieldlist.eof
if (ssfieldlist.attributes and db-updatablefield)=0 then
dscopy(ssfieldlist.name)=ds(ssfieldlist.name)
end if
ssfieldlist.movenext
loop
dscopy.update
ssfieldlist.close
dscopy.close
end sub
Variables QueryDef
Para crear o modificar Consultas.
Sólo con QueryDef se define la consulta, pero no se accede a sus datos.
Se puede definir una nueva o redefinir una existente.
Si es Consulta de Selección, se crea una Dynaset sobre la variable QueryDef. Si es de Acción se utiliza el mét-
odo Execute.
Cuando se abre una Tabla con una Variable Tabla, se pueden inmediatamente manipular sus datos.
Abrir Consulta existente.
dim db as database, q as querydef, datarecs as dynaset
set db = currentdb()
set q = db.openquery("Sales Totals Query") 'selección
set datarecs = q.createdynaset()
q.close
Con QuerDef Variables se permite operar con Action Queries además de Select Queries. Como Action Queries
no devuelven registros, no hay que abrir Dynaset o Snapshot, sino utilizar el Execute Method:
dim db as database, q as querydef
set db = currentdb()
st q = db.openquery("update sales") 'de acción update
q.execute
q.close
Tratar de abrir una Action Query con un Dynaset o Snapshot da error, igual que abrir con Execute method una
Select Query.
Crear consulta
dim db as database, q as querydef, daterecs as dynaset, sql as
string
set db = currentdb()
set q = db.createquerydef("new query") 'to define the
query, you assign a 'valid SL string to the SQL property of the
QueryDef variable:
q.sql = "select [first name], [last name] from employees;"
'create SQL trings in the user interface and then copy
(and modify) it (Vista SQL de Consultas)
set datarecs = q.cretedynaset()
q.close 'good practice to close the QuerDef variable.
db.deletequerydef "new query" ' si no se quiere guardar.
... 'operar con datarecs
También se puede incluir la definición con la creación:
Set q = db.createquerydef("New Query", "select subtotal from or-
ders;")

Este ejemplo crea un objeto QueryDef nuevo y lo anexa a la colección QueryDefs del objeto Database Neptuno.
Después enumera la colección QueryDefs y la colección Properties del QueryDef nuevo.
Sub QueryDefX()

GUIA ACCESS
Dim dbsNeptuno As Database, qdfNuevo As QueryDef, qdfBucle As Query-
Def
Dim prpBucle As Property
Set dbsNeptuno = OpenDatabase("Neptuno.mdb")
Set qdfNuevo = dbsNeptuno.CreateQueryDef("NewQueryDef", "SELECT *
FROM Categorías") ' Crea QueryDef nuevo. Ya que tiene un nombre, se anexa automáticame-
nte a ' la colección QueryDefs.
With dbsNeptuno
Debug.Print .QueryDefs.Count & "QueryDefs en " & .Name
For Each qdfBucle In .QueryDefs
Debug.Print " " & qdfBucle.Name 'Enumera la colección
ueryDefs.
Next qdfBucle
With qdfNuevo
Debug.Print "Propiedades de " & .Name
For Each prpBucle In .Properties
On Error Resume Next
Debug.Print " " & prpBucle.Name & " - " & _
IIf(prpBucle = "", "[vacío]", prpBucle)
' Enumera la colección Properties del objeto Query-
Def nuevo.
On Error Goto 0
Next prpBucle
End With
.QueryDefs.Delete qdfNuevo.Name
.Close ' Elimina el QueryDef nuevo porque esto es un ej-
emplo.
End With
End Sub

Este ejemplo comprueba si hay una consulta llamada ContratosRecientes en la base de datos activa y, si existe, la
elimina de la colección QueryDefs. A continuación, el procedimiento crea un objeto QueryDef nuevo y lo abre
en la vista Hoja de datos.
Sub ConsultaNueva()
Dim dbs As Database, qdf As QueryDef, strSQL As String
Set dbs = CurrentDb ' Devuelve la referencia a la base de
datos activa.
dbs.QueryDefs.Refresh ' Actualiza la colección QueryDefs.
For Each qdf in dbs.QueryDefs
If qdf.Name = "ContratosRecientes" Then
dbs.QueryDefs.Delete qdf.Name ' Si existe la consulta ContratosRecientes, la
elimina.
End If
Next qdf
' Crea SQL para seleccionar empleados contratados el 1-1-94 o
después.
strSQL = "SELECT * FROM Empleados WHERE FechaContrato >= #1-1-94#;"
Set qdf = dbs.CreateQueryDef("ContratosRecientes", strSQL) ' Crea
QueryDef nuevo.
DoCmd.OpenQuery qdf.Name ' Abre la consulta en la vista Hoja de
datos.
Set dbs = Nothing ' Nothing se utiliza para desvincular una variable objeto de un objeto real.
End Sub

Modificar consulta existente


Añadir campo "Region":
dim db as database, q as querydef, qtemp as querydef, datarecs as
dynaset
dim sql as string, i as long, qtempname as string
set db = currentdb()
GUIA ACCESS
set q = db.openquerydef("Sales Totals Query")
sql = q.sql
q.close
i = instr(1, sql, chr(13) & chr(10) & "from", 1) -1
'The From clause is always preceded by chr(13) and Chr(10);
this allows you 'to find it even if From appears in table or
field names.
sql = left(sql, i) & ", [employees].[region]" & right(sql, len(sql)
-i)
i = instr(1, sql, ";" & chr(13) & chr(10), 1) -1
'final semicolon is followed by chr(13) and chr(10).
sql = left(sql, i) & ", [employees].[region]" & right (sql, len(sql)
-i)
qtempname = "Temp" & now
set qtemp = db.createquerydef(qtempname) 'crea una nueva query
qtemp.sql = sql
set datarecs = qtemp.cratedynaset()
qtemp.close

Modificación de Recordsets con Variables QueryDef


Con QuerDef se puede hacer lo mismo que con objetos Consultas. Ejemplo siguiente igual que anterior para
crear categoría SAUC en Trasacciones:
dim db as database, q as querydef, sql
on error resume next
set db = currentdb()
sql = "Update products Set products.[category id] = 'SAUC'"
sql = sql & " Where (products![english name] like '*sauce*');"
set q = db.createquerydef("make sauces", sql)
begintrans
q.execute
if err then
rollback
msgbox "Failed: " & error
else
committrans
msgbox "Succeeded"
end if
q.close
db.deletequerydef ("make sauces")
Utilizando las sentencias SQL se puede realizar cualquier operación, inclusive que no se pueden realizar con
Consultas normales. Por ejemplo, no se puede definir una consulta con un nombre de tabla como parámetro,
como para borrar todos su registros. Con una QueryDef variable:
sub emptytable(tablename as string, dbname as string)
dim db as database, qdelete as querydef, sql as string
if dbname = "" then set db = currentdb()
else : set db = opendatabase(dbname)
end if
sql = "delete from " & tablename & ";"
set qdelete = db.createquerydef("emptytable", sql)
qdelete.execute
qdelete.close
db.deletequerydef("emptytable")
if dbname <> "" then db.close
end sub

En el ejemplo siguiente se ejecuta una consulta de acciones y se imprime el número de registros afectados:
Sub RecordsUpdated()
Dim dbs As Database, qdf As QueryDef, strSQL As String
Set dbs = CurrentDb ' Devuelve una referencia a la base de datos ac-
tiva.
GUIA ACCESS
strSQL = "UPDATE Empleados SET Cargo = " _
& "'Representante de ventas senior' " _
& "WHERE Cargo = 'Representante de ventas';"
Set qdf = dbs.CreateQueryDef("ActualizarCargos", strSQL) ' Crea obj-
eto QueryDef.
qdf.Execute ' Ejecutar QueryDef.
Debug.Print qdf.RecordsAffected 'Devuelve el número de reg. afectados por el último Exe-
ute.
Set dbs = Nothing
End Sub

Consultas de Parámetros
Se usa el operador ! para acceder a parámetros en una QueryDef variable.
Antes de ejecutar un Consulta de Parámetros, hay que suministras sus valores.
dim db as database, q as querydef, datarecs as dynaset
set db = currentdb()
set q = db.openquerydef("Products Ordered by Category")
q![category id] = "COND" 'parámetro
datarecs = q.createdynaset()

El ListParameters method obtiene los parámetros de una Query.


Devuelve un Snapshot con registros siguientes:
Field Contains Access Basic data type
Name Name of the parameter String
Type Data type of the parameter Long

El siguiente ejemplo detalla los registros de parametros en Immediate Window:


sub dumpparams(queryname, databasename)
dim db as database, qany as querydef, ssdump as snapshot
if databasename = "" then set db = currentdb()
else : set db = opendatabase(databasename)
end if
set qany = db.openquerydef(queryname)
set ssdump = qany.listparameters()
if ssdump.recordcount > 0 then
do until ssdump.eof
debug.? ssdump.name, ssdump.type
ssdump.movenext
loop
else : debug.? "'" & queryname & "' is not a parameter query"
end if
ssdump.close
qany.close
if databasename <> "" then db.close
end sub
Se pueden utilizar los datos de los parámetros en un formulario para solicitar valores al usuario.

Tabla de Contenido

A C C E S S 97 ..........................................................................................ERROR! BOOKMARK NOT DEFINED.


PARA COMANDOS GENERALES DE OFFICE 97 Y WINDOWS VER GUÍA WORDERROR! BOOKMARK NOT
DEFINED.

GUÍA ALFABÉTICA DE TABLAS, CONSULTAS, FORMULARIOS E INFORMES....................................1

BASE DE DATOS .........................................................................................................................................................1


MENUS EN VISTA GENERAL................................................................................................................................2
MENU ARCHIVO .................................................................................................................................................................2
MENU EDICION...................................................................................................................................................................2
GUIA ACCESS
MENU VER............................................................................................................................................................................ 2
MENU INSERTAR................................................................................................................................................................ 2
MENU HERRAMIENTAS.................................................................................................................................................... 3
Proteger una base de datos agregando una contraseña de base de datos ...........................................................3
Proteger una base de datos con el Asistente para seguridad a nivel de usuario. ................................................4
MENU MUESTREME. ......................................................................................................................................................... 5
TABLAS..........................................................................................................................................................................5
TABLAS - MENUS EN VISTA HOJA DE DATOS................................................................................................5
MENU EDICION................................................................................................................................................................... 5
MENU VER............................................................................................................................................................................ 5
MENÚ INSERTAR................................................................................................................................................................ 5
MENU FORMATO................................................................................................................................................................ 5
MENU REGISTROS ............................................................................................................................................................. 6
TABLAS - MENUS EN VISTA DISEÑO.................................................................................................................6
MENU EDICION................................................................................................................................................................... 6
CLAVE PRINCIPAL ........................................................................................................................................................6
¿Qué tipo de clave principal debo utilizar? ........................................................................................................................... 6
Claves principales de Autonumérico..................................................................................................................................... 6
Claves principales de Campo simple..................................................................................................................................... 6
Claves principales de Campos múltiples............................................................................................................................... 7
MENU VER............................................................................................................................................................................ 7
MENU INSERTAR................................................................................................................................................................ 7
CAMPO DE BÚSQUEDA .................................................................................................................................................7
Crear un campo que busque o enumere los valores de las tablas:........................................................................................ 7
Crear un campo que busque datos de otra tabla en la vista Diseño: .................................................................................... 7
Crear un campo de lista de valores en la vista Diseño:......................................................................................................... 8
FICHA GENERAL EN DISEÑO DE TABLA. PROPIEDADES DE LOS CAMPOS. .................................................................8
Propiedad Nombre del campo................................................................................................................................................ 8
Propiedad Tipo de datos......................................................................................................................................................... 8
Propiedad Descripción ........................................................................................................................................................... 9
Propiedad Tamaño del campo................................................................................................................................................ 9
Propiedad Formato de Campo. ........................................................................................................................................... 10
Propiedad Máscara de Entrada............................................................................................................................................. 13
Propiedad LugaresDecimales (DecimalPlaces) .................................................................................................................. 14
Propiedad Título (Caption) .................................................................................................................................................. 15
Propiedad ValorPredeterminado (DefaultValue)................................................................................................................ 15
Propiedades ReglaDeValidación (ValidationRule) y TextoDeValidación (ValidationText) ........................................... 16
Propiedad Requerido (Required) ......................................................................................................................................... 17
Propiedad Indexado.............................................................................................................................................................. 18
FICHA BÚSQUEDA EN DISEÑO DE TABLA, CON CUADRO DE LISTA O COMBINADO.................................................18
Propiedad Mostrar control.................................................................................................................................................... 18
Propiedades que puede utilizar para crear o modificar cuadros de lista y cuadros combinados, Resumen. .................... 19
RELACIONES ...............................................................................................................................................................19
Definir relaciones entre tablas ............................................................................................................................................. 20
Integridad referencial. .......................................................................................................................................................... 20
Propiedades de la combinación............................................................................................................................................ 21
CONSULTAS ...............................................................................................................................................................21
CONSULTAS - MENUS VISTA HOJA DE DATOS ............................................................................................21
CONSULTAS - MENUS VISTA DISEÑO.............................................................................................................21
MENU EDICION ......................................................................................................................................................21
MENU VER.......................................................................................................................................................................... 22
SQL. ...........................................................................................................................................................................22
Trabajar con SQL en consultas, formularios, informes, macros y módulos:..................................................................... 22
Ver o modificar la instrucción SQL que está detrás de una consulta existente:................................................................ 22
Generar instrucciones SQL que incluyan variables y controles:........................................................................................ 22
FUNCIONES AGREGADAS Y OTRAS OPCIONES DE LA FILA TOTAL EN DISEÑO DE LA CONSULTA ..............................23
Ejemplos para totalizar por grupos. ..................................................................................................................................... 23
MENU CONSULTA............................................................................................................................................................ 24
CONSULTA DE SELECCIÓN..........................................................................................................................................24
¿Qué es una consulta de selección y cuándo se usa? .......................................................................................................... 24
Crear una consulta de selección sin un asistente................................................................................................................. 24
Crear una consulta de selección sencilla mediante un asistente......................................................................................... 25
CONSULTA DE TABLA DE REFERENCIAS CRUZADAS ..................................................................................................25
Crear una consulta de tabla de referencias cruzadas sin usar un asistente......................................................................... 25
Crear una consulta de tabla de referencias cruzadas mediante un asistente ...................................................................... 26
Ordenar o limitar los encabezados de columnas presentados en una consulta de referencias cruzadas........................... 26
GUIA ACCESS
Ejemplo de Consulta de Referencias Cruzadas: Pedidos Trimestrales por Producto........................................................26
CONSULTAS DE ACCIÓN. ............................................................................................................................................27
CONSULTA DE CREACIÓN DE TABLA..........................................................................................................................28
Ejemplo:................................................................................................................................................................................28
CONSULTA DE ACTUALIZACIÓN.................................................................................................................................28
Ejemplo:................................................................................................................................................................................28
CONSULTA DE DATOS ANEXADOS..............................................................................................................................28
CONSULTA DE ELIMINACIÓN......................................................................................................................................29
Ejemplo:................................................................................................................................................................................29
CONSULTA ESPECÍFICA DE SQL. ...............................................................................................................................29
Consulta de Unión: ...............................................................................................................................................................29
Paso a través..........................................................................................................................................................................29
Definición de datos...............................................................................................................................................................29
CONSULTA DE PARÁMETROS .....................................................................................................................................29
Ejemplo:................................................................................................................................................................................30
EXPRESIONES: ............................................................................................................................................................30
Dónde introducir expresiones en consultas y filtros ...........................................................................................................30
Crear una expresión con el Generador de expresiones: ......................................................................................................31
Expresiones de texto:............................................................................................................................................................31
Expresiones de fecha:...........................................................................................................................................................31
Expresiones aritméticas:.......................................................................................................................................................32
Campo calculado ..................................................................................................................................................................32
Varias: ...................................................................................................................................................................................32
Expresiones para Validación de campos: ............................................................................................................................33
Expresiones para Condiciones de Macro: ...........................................................................................................................33
Expresiones SQL como criterio:..........................................................................................................................................33
Expresiones en formularios e informes: ..............................................................................................................................34
Ejemplos para realizar operaciones aritméticas en formularios e informes:......................................................................35
Calcular el total de un control calculado de un formulario o informe ...............................................................................35
FUNCIONES EN EXPRESIONES. ...................................................................................................................................35
Funciones de Agregado de Dominio comunes:...................................................................................................................35
Ejemplos para utilizar funciones agregadas de dominio en formularios e informes.........................................................35
Funciones de Agregado SQL Comunes...............................................................................................................................36
Ejemplos para utilizar funciones agregadas en formularios e informes.............................................................................36
Algunas Funciones Generales:.............................................................................................................................................36
PROPIEDADES DE CONSULTA .....................................................................................................................................37
Propiedad Títulos de columna (ColumnHeadings) .............................................................................................................37
Propiedad Permisos de ejecución.........................................................................................................................................38
Propiedad BloqueosDelRegistro (RecordLocks) ................................................................................................................38
Propiedad TipoRecordset (RecordsetType) ........................................................................................................................39
VALORES ÚNICOS.......................................................................................................................................................39
Impedir que se muestren los registros duplicados en los resultados de la consulta...........................................................39
CAMPOS EN BLANCO EN CONSULTAS.........................................................................................................................40
Combinar campos que contienen valores Null....................................................................................................................40
Buscar valores Null o cadenas de longitud cero .................................................................................................................40
Entender cómo los valores Null afectan a los cálculos numéricos.....................................................................................40
Convertir valores Null a cero ...............................................................................................................................................40
Combinar campos Texto que contengan valores Null ........................................................................................................41
FORMULARIOS.........................................................................................................................................................41
FORMULARIOS - MENUS DE VISTA FORMULARIO Y HOJA DATOS.......................................................41
FORMULARIOS - MENUS DE VISTA DISEÑO.................................................................................................41
MENU EDICION.................................................................................................................................................................41
MENU VER..........................................................................................................................................................................41
MENU INSERTAR..............................................................................................................................................................41
MENU FORMATO..............................................................................................................................................................42
CREAR UN FORMULARIO MEDIANTE AUTOFORMULARIO..........................................................................................42
CREAR UN FORMULARIO CON UN ASISTENTE. ...........................................................................................................42
CREAR UN FORMULARIO BASADO EN MÁS DE UNA TABLA. ......................................................................................43
PLANTILLAS DE FORMULARIOS Y DE INFORMES........................................................................................................43
SECCIONES DE FORMULARIOS....................................................................................................................................43
Agregar o quitar un encabezado o pie de formulario o un encabezado o pie de página: ..................................................44
CREAR UN FORMULARIO EMERGENTE O UN CUADRO DE DIÁLOGO PERSONALIZADO ..............................................44
ALGUNAS PROPIEDADES DE FORMULARIOS (DATOS) ..............................................................................................45
Propiedad OrigenDelRegistro (RecordSource)...................................................................................................................45
Propiedad Filtro (Filter) .......................................................................................................................................................45
Propiedad OrdenarPor (OrderBy)........................................................................................................................................46

GUIA ACCESS
Propiedad PermitirEdiciones (AllowEdits)......................................................................................................................... 46
Propiedad EntradaDeDatos (DataEntry) ............................................................................................................................. 47
Propiedad TipoRecordset (RecordsetType) ........................................................................................................................ 47
(Otras) Propiedad Emergente (PopUp)................................................................................................................................ 47
(Otras) Propiedad Modal...................................................................................................................................................... 48
Propiedad BloqueosDelRegistro (RecordLocks) ................................................................................................................ 48
CONTROLES ................................................................................................................................................................48
CUADRO DE HERRAMIENTAS DE CONTROLES ...........................................................................................................49
Botón seleccionar objetos (Flecha) ......................................................................................................................49
Botón Asistentes para Controles...........................................................................................................................49
Etiqueta..................................................................................................................................................................49
Cuadros de texto....................................................................................................................................................49
Crear un cuadro de texto dependiente ................................................................................................................................. 49
Crear un cuadro de texto independiente .............................................................................................................................. 49
Crear un control calculado ................................................................................................................................................... 50
Algunas Propiedades de Cuadro de Texto (Datos) ............................................................................................................. 50
Propiedad OrigenDelControl (ControlSource).................................................................................................................... 50
Propiedad MáscaraDeEntrada (InputMask) ........................................................................................................................ 50
Propiedades Activado (Enabled) y Bloqueado (Locked) ................................................................................................... 51
Propiedad BuscarPorFiltro (FilterLookup) ......................................................................................................................... 51
Grupo de opciones.................................................................................................................................................52
Botón de alternar...................................................................................................................................................53
Botón de opción .....................................................................................................................................................53
Casilla de verificación...........................................................................................................................................53
Cuadro combinado ................................................................................................................................................53
Crear un cuadro de lista dependiente o cuadro combinado que muestre valores fijos:..................................................... 54
Crear un cuadro de lista o cuadro comb. dependiente que muestre los valores de una tabla o consulta:......................... 54
Crear un cuadro de lista o cuadro combinado independiente que muestre valores fijos:.................................................. 54
Crear un cuadro de lista o cuadro comb. independiente que muestre los valores de una tabla o consulta: ..................... 54
Buscar un registro seleccionando un valor de una lista ...................................................................................................... 55
Algunas Propiedades de Cuadro de Lista/Combinado (Datos) ..........................................................................55
Propiedades TipoDeOrigenDeLaFila (RowSourceType) y OrigenDeLaFila (RowSource)............................................. 55
Propiedad ColumnaDependiente (BoundColumn) ............................................................................................................. 56
Cuadro de lista ......................................................................................................................................................56
Botón de comando .................................................................................................................................................56
Botón de Comando prop. Al hacer Clic: nombre de Macro o Función. ............................................................................ 57
Crear un botón de comando para abrir y sincronizar, cerrar o imprimir un formulario:................................................... 57
Imagen....................................................................................................................................................................57
Agregar una imagen u otro objeto a un formulario o informe: .......................................................................................... 58
Marco de objeto independiente.............................................................................................................................58
Insertar un objeto independiente existente .......................................................................................................................... 58
Marco de objeto dependiente................................................................................................................................58
Insertar un objeto dependiente existente ............................................................................................................................. 59
Salto de página ......................................................................................................................................................59
Crear un formulario con más de una página (pantalla)....................................................................................................... 59
Control ficha..........................................................................................................................................................59
Subformulario/Subinforme....................................................................................................................................60
Crear un formulario y un subformulario al mismo tiempo:................................................................................................ 60
Crear un subformulario y agregarlo a un formulario existente: ......................................................................................... 60
Agregar un formulario existente a otro formulario también existente para crear un formulario con un subformulario:
............................................................................................................................................................................................... 60
Vincular un formulario principal y un subformulario......................................................................................................... 60
Ejemplo (diseño) de Subformulario Pedidos Trimestrales basado en Ejemplo Consulta Pág 37. .................................. 61
Ejemplo de Formulario Pedidos Trimestrales con Subformulario Pedidos Trimestrales (arriba).Error! Bookmark
not defined.
Algunas Propiedades de Subformulario/Subinforme (Datos) ............................................................................................ 63
Propiedad ObjetoOrigen (SourceObject) ............................................................................................................................ 63
Propiedades VincularCamposSecundarios (LinkChildFields) y VincularCamposPrincipales (LinkMasterFields)........ 63
Línea: .....................................................................................................................................................................64
Rectángulo .............................................................................................................................................................64
CAMBIAR LAS PROPIEDADES PREDETERMINADAS DE UN TIPO DE CONTROL ............................................................64
Cambiar el estilo de control predeterminado de nuevos controles mediante la hoja de propiedades............................... 64
Cambiar el estilo de control predeterminado de nuevos controles mediante un control existente ................................... 64
Especificar una nueva plantilla para los formularios e informes ....................................................................................... 65
OBJETOS/CONTROLES: AJUSTES Y COMPLEMENTOS. ...............................................................................................65
INFORMES ..................................................................................................................................................................66

GUIA ACCESS
INFORMES - MENUS EN VISTA PREVIA DISEÑO Y PRELIMINAR............................................................66
INFORMES - MENUS EN VISTA DISEÑO..........................................................................................................66
MENU VER..........................................................................................................................................................................66
CREAR UN INFORME USANDO AUTOINFORME:..........................................................................................................66
CREAR UN INFORME CON UN ASISTENTE: ..................................................................................................................67
CREAR UN INFORME SIN ASISTENTE: .........................................................................................................................67
CREAR UN INFORME BASADO EN MÁS DE UNA TABLA: .............................................................................................67
CREAR UN SUBINFORME EN UN INFORME EXISTENTE: ..............................................................................................67
AGREGAR UN INFORME EXISTENTE A OTRO PARA CREAR UN SUBINFORME .............................................................67
SECCIONES DE UN INFORME.......................................................................................................................................67
Agregar o quitar un encabezado y pie de informe o un encabezado y pie de página........................................................68
CREAR ETIQUETAS POSTALES Y DE OTROS TIPOS ......................................................................................................68
INSERTAR CAMPO CALCULADO A UN REGISTRO DE UN INFORME .............................................................................68
AGRUPAR LOS REGISTROS EN UN INFORME ...............................................................................................................68
ORDENAR LOS REGISTROS EN UN INFORME...............................................................................................................69
CALCULAR UN TOTAL O PROMEDIO PARA UN GRUPO O PARA TODOS LOS REGISTROS DE UN INFORME...................69
CALCULAR UNA SUMA CONTINUA DE UN INFORME...................................................................................................69
Propiedad de Cuadro de Texto (Datos) ..............................................................................Error! Bookmark not defined.
Propiedad SumaContinua (RunningSum) ...........................................................................................................................69
CALCULAR PORCENTAJES EN UN INFORME................................................................................................................70
COMENZAR CADA GRUPO DE UN INFORME EN UNA NUEVA FILA O COLUMNA..........................................................70
RESTABLECER NÚMEROS DE PÁGINA PARA CADA GRUPO DE UN INFORME ..............................................................71
GUÍA ALFABÉTICA DE MACROS Y MÓDULOS. ............................................................................................72

MACROS......................................................................................................................................................................77
Un grupo de macros: ............................................................................................................................................................78
Acciones condicionales. .......................................................................................................................................................78
CUÁNDO UTILIZAR UNA MACRO ................................................................................................................................78
MACROS - MENUS.................................................................................................................................................78
MENU EDICION.................................................................................................................................................................78
MENU VER..........................................................................................................................................................................78
MENU INSERTAR..............................................................................................................................................................78
MENU EJECUTAR .............................................................................................................................................................78
CREAR UNA MACRO ...................................................................................................................................................78
EJECUTAR UNA MACRO ..............................................................................................................................................79
Ejecutar directamente una macro.........................................................................................................................................79
Ejecutar una macro o un procedimiento de evento para un evento en un formulario, un informe o un control ..............79
Ejecutar una macro que pertenece a un grupo de macros...................................................................................................79
Ejecutar una macro desde otra macro o desde un procedimiento Visual Basic.................................................................79
ABRIR LA VENTANA MACRO O MÓDULO DESDE UN FORMULARIO O INFORME........................................................80
CONDICIONES EN UNA MACRO...................................................................................................................................80
Ejemplos de condiciones de macro......................................................................................................................................80
AGREGAR UNA ACCIÓN A UNA MACRO......................................................................................................................80
Acciones agrupadas por tarea..............................................................................................................................81
Datos de formularios e informes..........................................................................................................................................81
Ejecución...............................................................................................................................................................................81
Importar/exportar..................................................................................................................................................................81
Manipulación de objetos ......................................................................................................................................................81
Diversos ................................................................................................................................................................................81
Establecer argumentos de acción en una macro .................................................................................................81
Introducir una expresión en el argumento de una acción de macro...................................................................82
ASIGNAR UNA ACCIÓN O UNA SERIE DE ACCIONES A UNA TECLA.............................................................................82
LLEVAR A CABO UNA ACCIÓN LA PRIMERA VEZ QUE SE ABRE LA BASE DE DATOS ..................................................82
EVENTOS ....................................................................................................................................................................83
Responder al evento Al hacer clic usando un procedimiento de evento Ver Pág 88. Ver Pág 103. ..............83
Responder al evento Al hacer clic usando una macro Ver Pág 88 .......................................................................83
Determinar cuándo ocurre un evento...................................................................................................................83
Eventos de formularios: ........................................................................................................................................83
Eventos de controles: ............................................................................................................................................83
Eventos de Informes:.............................................................................................................................................83
Eventos de Secciones de Informes:.......................................................................................................................83
EVENTOS DE DATOS..........................................................................................................................................83
AfterDelConfirm ..................................................................................................................................................................84
AfterUpdate ..........................................................................................................................................................................84

GUIA ACCESS
BeforeDelConfirm................................................................................................................................................................ 84
BeforeInsert .......................................................................................................................................................................... 84
BeforeUpdate........................................................................................................................................................................ 84
Change .................................................................................................................................................................................. 84
Current .................................................................................................................................................................................. 84
Delete .................................................................................................................................................................................... 84
NotInList............................................................................................................................................................................... 84
Updated................................................................................................................................................................................. 84
EVENTOS DE ENFOQUE....................................................................................................................................84
Activate................................................................................................................................................................................. 84
Deactivate ............................................................................................................................................................................. 84
Enter ...................................................................................................................................................................................... 84
Exit ........................................................................................................................................................................................ 84
GotFocus............................................................................................................................................................................... 84
LostFocus.............................................................................................................................................................................. 85
EVENTOS DE ERROR Y DE SINCRONIZACIÓN..............................................................................................85
Error ...................................................................................................................................................................................... 85
Timer..................................................................................................................................................................................... 85
EVENTOS DE FILTRO.........................................................................................................................................85
ApplyFilter............................................................................................................................................................................ 85
Filter ...................................................................................................................................................................................... 85
EVENTOS DE IMPRESIÓN .................................................................................................................................85
Format ................................................................................................................................................................................... 85
NoData .................................................................................................................................................................................. 85
Page....................................................................................................................................................................................... 85
Print....................................................................................................................................................................................... 85
Retreat ................................................................................................................................................................................... 85
EVENTOS DEL RATÓN........................................................................................................................................85
Click ...................................................................................................................................................................................... 86
DblClick................................................................................................................................................................................ 86
MouseDown.......................................................................................................................................................................... 86
MouseMove .......................................................................................................................................................................... 86
MouseUp AlSubirRatón (OnMouseUp) (formularios, controles) Cuando se mueve el puntero del ratón sobre un
formulario o control.............................................................................................................................................................. 86
EVENTOS DE TECLADO.....................................................................................................................................86
KeyDown .............................................................................................................................................................................. 86
KeyPress ............................................................................................................................................................................... 86
KeyUp ................................................................................................................................................................................... 86
EVENTOS DE VENTANA .....................................................................................................................................86
Close...................................................................................................................................................................................... 86
Load ...................................................................................................................................................................................... 86
Open ...................................................................................................................................................................................... 87
Resize.................................................................................................................................................................................... 87
Unload................................................................................................................................................................................... 87
Propiedades de evento...........................................................................................................................................87
GENERADORES ...........................................................................................................................................................87
EJEMPLOS DE MACROS.......................................................................................................................................87
Abrir un Formulario con un botón desde otro Formulario ................................................................................................. 87
Al abrir formulario ir al registro que se quiera.................................................................................................................... 87
Para mantener los reg. correspondientes en Subformulario al mover reg. de Formulario:............................................... 87
Utilizar acción EstablecerValor (SetValue) para dar valor a campo.................................................................................. 88
Acciones de navegación....................................................................................................................................................... 88
Para imprimir reg. actual...................................................................................................................................................... 88
Para filtrar: ............................................................................................................................................................................ 88
Buscar reg. desde Cuadro Combinado: ............................................................................................................................... 88
Validar: ................................................................................................................................................................................. 88
Requerir entrada: .................................................................................................................................................................. 88
Imprimir informe mediante botón: ...................................................................................................................................... 88
Imprimir sólo uno (país, etc) o todos mediante Control Cuadro Lista: ............................................................................ 88
Para seleccionar con parámetros registros a imprimir ........................................................................................................ 88
Escoger Informe a imprimir mediante cuadro de diálogo .................................................................................................. 88
Ocultar sección de informe. ................................................................................................................................................. 89
Hacer visible o no un control. .............................................................................................................................................. 89
Comenzar un grupo de informe (país) por pág. 1: .............................................................................................................. 89
Para cortar una página (Sólo las 10 primeras líneas en la primera). .................................................................................. 89
Totalizar por página: ............................................................................................................................................................ 89
Seleccionar registros con cuadro de diálogo al abrir Informe ............................................................................................ 89
Pedir fecha de día (diálogo emergente modal) para mostrar cantidad e importe de sus pedidos. .................................... 90

GUIA ACCESS
MODULOS (VISUAL BASIC)..................................................................................................................................90
Cuándo utilizar Módulos de Visual Basic............................................................................................................90
MENUS - MODULOS..............................................................................................................................................91
MENU EDICION.................................................................................................................................................................91
MENU VER..........................................................................................................................................................................91
MENU INSERTAR..............................................................................................................................................................92
MENU DEPURAR...............................................................................................................................................................92
MENU EJECUTAR .............................................................................................................................................................92
MENU HERRAMIENTAS..................................................................................................................................................93
Ventana Módulo ....................................................................................................................................................93
Módulos de clases .................................................................................................................................................93
Módulos estándar..................................................................................................................................................93
PROCEDIMIENTOS.......................................................................................................................................................93
Creación de procedimiento personalizado...........................................................................................................93
Crear un procedimiento de evento .......................................................................................................................94
Procedimientos Sub...............................................................................................................................................94
Escribir un procedimiento Sub.............................................................................................................................................94
Crear un procedimiento Sub personalizado.........................................................................................................................95
Procedimientos Function ......................................................................................................................................95
Escribir un procedimiento Function ....................................................................................................................................96
Crear una función personalizada..........................................................................................................................................96
OBJETOS, PROPIEDADES, MÉTODOS Y EVENTOS .......................................................................................................97
Método ..................................................................................................................................................................................97
Propiedad ..............................................................................................................................................................................97
Objeto....................................................................................................................................................................................97
Evento ...................................................................................................................................................................................98
EJECUCIÓN DE CÓDIGO ..............................................................................................................................................98
DEFINICIONES VARIAS ...............................................................................................................................................98
Instrucción.............................................................................................................................................................................98
Variable.................................................................................................................................................................................98
Constante...............................................................................................................................................................................98
Palabra clave Me ..................................................................................................................................................................99
DAO (Data Access Objects) Objetos de acceso a datos .....................................................................................................99
Instancia ................................................................................................................................................................................99
ARGUMENTOS ............................................................................................................................................................99
Comprender los argumentos con nombre y opcionales ......................................................................................................99
Especificar argumentos cuando use un procedimiento, instrucción o método en código Visual Basic .........................100
ESTRUCTURAS DE DECISIÓN Y CONTROL .................................................................................................................100
Utilizar instrucciones condicionales para tomar decisiones .............................................................................................100
Utilizar bucles para repetir código.....................................................................................................................................100
Ejecutar varias instrucciones sobre el mismo objeto ........................................................................................................100
If...Then...Else (Instrucción) ...............................................................................................................................100
Select Case (Instrucción) ....................................................................................................................................101
Do...Loop (Instrucción).......................................................................................................................................102
For...Next (Instrucción) ......................................................................................................................................103
For Each...Next (Instrucción) .............................................................................................................................104
With (Instrucción) ...............................................................................................................................................104
EXAMINADOR DE OBJETOS.......................................................................................................................................105
Localizar un método o propiedad en el Examinador de objetos.......................................................................................105
Use el Examinador de objetos para pegar una sintaxis de método o propiedad en un módulo ......................................105
DEPURACIÓN DE CÓDIGO .........................................................................................................................................105
Ventana Depuración ...........................................................................................................................................................105
Panel Locales ......................................................................................................................................................................105
Panel Inspección .................................................................................................................................................................106
Panel Inmediato ..................................................................................................................................................................106
Solución de errores en código ............................................................................................................................106
Usar un punto de interrupción para suspender la ejecución de código ...........................................................106
Modo de interrupción .........................................................................................................................................................107
Ir paso a paso por el código ...............................................................................................................................107
Arbol de llamada ................................................................................................................................................................107
Usar el panel Inmediato......................................................................................................................................107
Establecimiento de una expresión de inspección en el código..........................................................................107
Agregar una expresión de inspección al panel Inspección ...............................................................................................107
Realizar una inspección rápida mientras se depura código ..............................................................................................108
Seguimiento de llamadas de procedimientos mientras se depura código.........................................................108
Presentación del valor de las variables en el panel Locales.............................................................................108
GUIA ACCESS
Mostrar el valor de una variable o expresión en la ventana Módulo cuando el código está suspendido.......108
REFERENCIA DE FUNCIONES.....................................................................................................................................108
REFERENCIA DE INSTRUCCIONES .............................................................................................................................110
FUNCIONES E INSTRUCCIONES POR TAREA DE PROGRAMACIÓN. ............................................................................110
REFERENCIA DE MÉTODOS .......................................................................................................................................112
MÉTODOS POR TAREA DE PROGRAMACIÓN (RECORSETS).......................................................................................113
GENERALIDADES Y EJEMPLOS DE VISUAL BASIC...................................................................................113
Depuración:.........................................................................................................................................................................114
Variables .............................................................................................................................................................................115
Matrices (Arrays)................................................................................................................................................................117
Constantes...........................................................................................................................................................................117
Variables de objeto.............................................................................................................................................................117
Objetos predefinidos...........................................................................................................................................................118
Métodos de Objetos............................................................................................................................................................118
Objectos como argumentos en Procedimientos. ...............................................................................................................118
Control de Errores durante ejecución. ...............................................................................................................................119
Códigos con Formularios e Informes ................................................................................................................................120
Variables de Formularios e Informes ................................................................................................................................122
Objetos predefinidos. .........................................................................................................................................................122
Otros Objectos ....................................................................................................................................................................123
Variables de Control...........................................................................................................................................................123
Tipo de Control...................................................................................................................................................................124
Métodos Gráficos ...............................................................................................................................................................124
Tratamiento de Datos .........................................................................................................................................................125
Variables Tabla...................................................................................................................................................................125
Crear variables Dynaset .....................................................................................................................................................125
Crear variables Snapshot....................................................................................................................................................125
Cerrar variables recordset ..................................................................................................................................................125
Utilizar variables Recordset (Tables, Dynasets and Snapshots) .....................................................................................125
Ordenar, clasificar registros ...............................................................................................................................................126
Filtrar, consultar .................................................................................................................................................................126
Modificar registros .............................................................................................................................................................127
Eliminar registros ...............................................................................................................................................................128
Añadir registros ..................................................................................................................................................................128
Buscar registros en Dynaset y Snapshots .........................................................................................................................128
Buscar registros en Tablas .................................................................................................................................................129
Marcadores .........................................................................................................................................................................129
Cloning................................................................................................................................................................................129
Manipular campos grandes ................................................................................................................................................130
Transacciones .....................................................................................................................................................................130
Bloquear datos ....................................................................................................................................................................131
Información de los objetos de la Base de datos ................................................................................................................132
Variables QueryDef............................................................................................................................................................133
Abrir Consulta existente.....................................................................................................................................................133
Crear consulta .....................................................................................................................................................................133
Modificar consulta existente ..............................................................................................................................................134
Modificación de Recordsets con Variables QueryDef......................................................................................................135
Consultas de Parámetros ....................................................................................................................................................136

F I N
Esta guía es parte de JRMWEB.
Conozca INICIO, con muchas utilidades gratis.

GUIA ACCESS

S-ar putea să vă placă și