You are on page 1of 18

MANUAL DE ACCESS

LECCIN CUARTA (consultemos, consultemos...)1

ndice de contenido
LAS CONSULTAS...............................................................................................................................2
PREPARACIN INICIAL DE LOS DATOS..................................................................................2
NUESTRA PRIMERA CONSULTA SENCILLA UTILIZANDO EL ASISTENTE......................3
NUESTRA PRIMERA CONSULTA "ARTESANAL"...................................................................5
CONSULTA DE REFERENCIAS CRUZADAS............................................................................6
CONSULTA REALIZANDO CLCULOS....................................................................................8
CONSULTAS SOBRE CONSULTAS Y AGRUPAMIENTOS.....................................................10
UN INCISO: TIPOS DE CONSULTAS........................................................................................12
CONSULTAS CON FILTRO POR FECHAS...............................................................................13
COMBINACIN DE CONSULTAS CON DATOS EN FORMULARIO....................................15
PARA ACABAR............................................................................................................................18

La BD que se ha desarrollado siguiendo los ejemplos de este captulo la podis encontrar aqu

Vistame en http://siliconproject.com.ar/neckkito/

LAS CONSULTAS
Recordaris que en el captulo 2 habamos creado relaciones
entre las tablas. Mediante las consultas podemos sacar la
informacin que queramos no slo de una tabla sino
tambin de varias, utilizarlas a modo de filtro, utilizarlas
para eliminar datos de tablas, para actualizarlos, para crear
nuevas tablas, etc.
Adems esa informacin proveniente de las consultas puede ser
visualizada, adems de en la propia consulta, a travs de un
informe, o de un formulario en vista grfico dinmico, por ejemplo,
etc.
PREPARACIN INICIAL DE LOS DATOS
Para poder percibir "los efectos" de las consultas no tendremos ms remedio que dedicar un
poco de tiempo a introducir datos en nuestras tablas. La TFamiliaProductos ya contiene datos
(si habis hecho el ejercicio de importacin de datos desde Excel en el segundo captulo).
Vamos a introducir unos pocos registros en el resto de tablas. Iremos por partes:

Abrimos TProductos e introducimos los siguientes datos:

Abrimos TClientes e introducimos los siguientes datos:

Y abrimos TVentas e introducimos los siguientes datos (recordad que el campo ID lo


rellena Access automticamente):

Vistame en http://siliconproject.com.ar/neckkito/

Ya tenemos nuestras tablas con datos. Ya podemos empezar.


NUESTRA PRIMERA CONSULTA SENCILLA UTILIZANDO EL ASISTENTE
Vamos a hacer una primera consulta sencilla utilizando el asistente que proporciona Access.
Por ejemplo, vamos a consultar un listado de familias de productos con los productos que
contiene cada una de ellas.
Para ello, vamos a /menu/Crear y pulsamos sobre el botn "Asistente para consultas" (1).

(1)

En la ventana que nos aparece, elegimos la opcin "Asistente para consultas sencillas" (2) y
pulsamos el botn "Aceptar"
En
la
siguiente
ventana,
elegimos
TFamiliaProductos y pasamos el nico campo
existente a la ventana de la derecha (3A). A
continuacin, volvemos a elegir la tabla
TProductos y pasamos slo los campos "RefProd"
(2)
y
"NomProd"
(4A).
Pulsamos
el
botn
"Siguiente..."
En la nueva ventana que aparece dejamos la
opcin marcada por defecto ("Detalle...") (5A).
No utilizaremos la opcin "Resumen" porque, en
este caso, no tenemos valores numricos.
Pulsamos el botn "Siguiente..."
Le asignamos como nombre CListaProductos y dejamos marcada la opcin por defecto ("Abrir
la consulta para ver la informacin") (6A). Pulsamos el botn "Finalizar". Deberamos obtener
un resultado como el que se muestra al final de las ilustraciones (7).

Vistame en http://siliconproject.com.ar/neckkito/

(3A)

(4A)

(5A)

(6A)

(7)

Vistame en http://siliconproject.com.ar/neckkito/

Como habis podido comprobar, crear una consulta sencilla es realmente sencillo (je, je). No
tiene mucho secreto.
NUESTRA PRIMERA CONSULTA "ARTESANAL"
Vamos a ver cmo podemos construir una consulta desde
cero, lo cual nos permitir ir explorando los elementos y
caractersticas de una consulta.
Haremos una consulta muy sencilla sobre las ventas para
poder ver si hemos realizado alguna anotacin en el
momento de la venta. Despus la complicaremos un poco
aadiendo filtros de fecha que interacten con el usuario.
Para empezar vamos a /menu/Crear y pulsamos el botn "Diseo de Consulta".
En la ventana que nos aparece vamos a elegir la TVentas (seleccionamos y "Agregar").
Tambin seleccionaremos la tabla TClientes (seleccionamos y "Agregar") porque si no veramos
los comentarios sobre un DNI, y nos interesa saber el nombre del cliente. Podemos comprobar
que automticamente se nos muestra la relacin entre ambas tablas (1).
Cerramos
la
ventana
"Mostrar tabla" y, para poder
trabajar
mejor,
maximizamos la consulta.
Vemos que la ventana de la
consulta est "dividida" en
dos partes: la parte superior,
donde podemos ver las
(1)
tablas
(o
consultas)
implicadas en el proceso
(3i), y la parte inferior, donde vamos a colocar los campos de los cuales queremos extraer los
datos, y las diversas opciones para operar sobre ellos (3ii). A esta parte se la denomina
cuadrcula QBE (aunque yo la llamo grid para abreviar ;) )
La consulta nos va a dar informacin del DNI del
cliente, de su nombre, y de si hemos realizado
alguna anotacin en la venta. Vamos pues a
situarnos sobre el campo DNI, en TClientes, y
arrastramos el campo hasta la primera columna de
abajo (4).
Debera quedarnos como se indica en la ilustracin
siguiente, donde se ven ya todos los campos
arrastrados (5A).
Ahora hacemos lo mismo con el campo NomCli, y lo
situamos en la segunda columna.
Finalmente arrastramos el campo Obs de TVentas a
la tercera columna.

Vistame en http://siliconproject.com.ar/neckkito/

(3i)
(4)
(3ii)

Si ahora queremos ver el


resultado de la consulta
simplemente pulsamos el
botn "Ejecutar" (6) y
veremos que nos muestra
todas las ventas realizadas.
Volvemos a la vista diseo y
vamos a indicarle que slo
queremos ver las consultas
con comentarios.

(6)

(7)

Antes de ello resaltar que


cuando un campo de un
registro no contiene datos
cumple la propiedad NULL
(Nulo). Decir que un campo
es NULL es decir que el
campo est vaco. Vamos
pues a definir un "criterio"
para el campo Obs de

(5A)

nuestra consulta.

Nos situamos sobre la fila criterios (7), en la columna Obs, y le decimos que el valor del
campo sea distinto de NULL. Para ello escribimos lo siguiente: "<>Null" (sin las comillas). Si,
una vez escrito, hacemos click en otro lugar de la tabla Access automticamente nos escribe
algo parecido a "Es No Nulo".
Ahora, si ejecutamos la consulta, veremos que la informacin que se nos muestra corresponde
slo a ventas con comentario.
Sensu contrario, si quisiramos slo los registros vacos escribiramos, sin comillas: "=Null".
Guardamos la consulta con el nombre "CComentarios".
Un par de observaciones ms:
Utilizando la fila "Orden" de la consulta (que est sobre la de "Criterios") podramos
ordenar la informacin de mayor (arriba) a menor (abajo).
La casilla mostrar, si est activada, lgicamente muestra la informacin correspondiente
a ese campo. Si, por ejemplo, en nuestra consulta quisiramos saber nicamente DNI y
nombre del cliente, pero no ver el comentario, simplemente deseleccionaramos la
casilla del campo Obs (que seguira hacindonos de filtro).
Podemos realizar criterios compuestos, gracias a las lneas que hay bajo la fila
"Criterios".
Podemos saber de qu tabla hemos escogido el campo gracias a la informacin que nos
da la fila "Tabla".
Si construimos una consulta compleja os aconsejo ir ejecutando la consulta cada vez
que aadamos algn campo que pudiramos considerar "conflictivo". Es frustrante, al
acabar la consulta y no haber hecho estas comprobaciones, ver que no proporciona la
informacin deseada, y tener que deshacer lo andado para detectar dnde est el error.
Enhorabuena! Ya tenemos nuestra primera consulta "artesanal".
CONSULTA DE REFERENCIAS CRUZADAS
Imaginemos que nuestro amigo distribuidor quiere obtener informacin de cuntas unidades
6

Vistame en http://siliconproject.com.ar/neckkito/

se han vendido por familia de productos, y, al mismo tiempo, saber qu productos se han
vendido y cuntas unidades de cada uno de ellos han salido en la venta (a que parece
complicado?).
Para ello vamos a realizar una consulta de referencias
cruzadas.
Antes de poder realizar este tipo de consulta debemos
realizar, prviamente, una consulta auxiliar que recoja los
datos que intervendrn en la consulta de referencias
cruzadas. En este caso, la informacin que queremos
depende de los siguientes elementos:

Familia de productos
Producto
Unidades vendidas.

Como ya somos unos "cracks" haciendo consultas realizamos una consulta, a la que
llamaremos "CUnidadesxFamiliaxProducto". El diseo de la tabla se muestra a continuacin:

Una vez guardada vamos a crear nuestra


tabla de referencias cruzadas, utilizando para
ello el asistente.

(2)

En /menu/Crear pulsamos sobre el botn


"Asistente para consultas" y, en la ventana
que aparece, elegimos la opcin "Asistente
consultas tabla de referencias cruzadas".
En la siguiente pantalla vamos a marcar que
queremos los datos de una consulta (1), y
elegimos nuestra consulta auxiliar (2).

(1)

Vistame en http://siliconproject.com.ar/neckkito/

Como ttulo de fila vamos a elegir el campo FamProd. Lo pasamos a la ventana de la derecha
(3). Pulsamos "Siguiente".

(3)

En la nueva ventana elegimos como ttulo de columna el campo NomProd. Pulsamos el botn
"Siguiente".
En la siguiente ventana, como nos interesa saber el total de unidades vendidas, marcamos que
queremos el agrupamiento de Ud_Vta por Suma (4). Pulsamos el botn "Siguiente".
En la ltima pantalla le dejamos los
valores por defecto, porque queremos ver
el resultado de la consulta. Pulsamos el
botn "Finalizar".
El resultado debera ser parecido al que
se muestra en la ilustracin de la pgina
siguiente.
Por
ejemplo,
ahora
el
distribuidor sabe que ha vendido 7
unidades de la familia Carnes, y que
estas ventas estn compuestas por 5
unidades de Filete y por 2 unidades de
Pollo.

(4)

Guardamos la consulta con el nombre


que nos propone Access y la cerramos.
A que ahora ya no es tan complicado?

CONSULTA REALIZANDO CLCULOS


La consulta que vamos a realizar nos va a calcular el precio de las ventas realizadas teniendo
en cuenta las unidades compradas, calcular su IVA correspondiente (actualizado al 8%
porque somos muy cool) y nos dar el total cobrado de la venta.
Una vez ms vamos a plantearnos qu campos necesitamos para la consulta. Estos son, por
ejemplo:
Fecha venta
Cliente
8

Vistame en http://siliconproject.com.ar/neckkito/

Producto
Precio venta producto
Unidades vendidas
Creamos una consulta en vista diseo y la guardamos con
el nombre de "CCobrosTotalesVentas". La estructura inicial
de la consulta es la que se muestra a continuacin:

La estructura de la frmula sera la siguiente, en trminos generales y dependiendo del tipo de


operacin : NombreNuevoCampo: [Campo] operacin [Campo]
Vamos a calcular ahora la base imponible. Por ello la estructura de la operacin seria:
BaseImponible: [PVProd] * [Ud_Vta]
Nos situamos en la primera columna vaca a la derecha, y
escribimos lo anterior, as:
Sobre esto vamos a calcular el IVA al 8%. Para ello
escribimos simplemente la frmula, que sera "Base
imponible x IVA", de la manera siguiente:
Si ahora ejecutamos la consulta
(recordemos, botn "Ejecutar") veremos
como nos aparecen estos dos nuevos
"Campos" con la informacin que a
nosotros nos interesaba. No debemos
preocuparnos
ahora
por
el
formato
del
campo IVA. Ya
lo arreglaremos
despus.

Vistame en http://siliconproject.com.ar/neckkito/

Ahora slo nos queda calcular el total cobrado, que lgicamente ser "BaseImponible + IVA".
Lo escribimos as:
Si, para asegurarnos, volvemos a ejecutar la consulta,
veremos que Access nos ha realizado los clculos
necesarios y que se muestran en la ilustracin siguiente:

Vamos a solucionar nuestro "problemilla" con el formato del IVA. En vista diseo de la consulta
nos situamos sobre la diminuta zona gris que hay sobre el nombre del campo IVA (el cursor
debe cambiar a una flecha indicando hacia abajo) y, en
este punto, pulsamos con el botn derecho del ratn
para sacar el men contextual y elegimos la opcin
"Propiedades..." (1). Podramos hacer lo mismo
haciendo click con el botn izquierdo (la columna
debera quedar seleccionada en negro), y a continuacin
pulsar sobre el botn "Hoja de propiedades" (2).
(2)

(1)

En
la
hoja
de
propiedades
que
aparece
le
establecemos
en
formato en "Euro", y
la propiedad "Lugares
decimales"
la
establecemos en 2
(3).

Si ahora volvemos a
ejecutar la consulta veremos que el IVA ya tiene el formato
que queramos.

(3)

CONSULTAS SOBRE CONSULTAS Y AGRUPAMIENTOS


A veces es necesario hacer consultas que agrupen determinados elementos, como pueden ser
otras consultas y tablas. En teora no deberamos tener problemas ya para hacer eso, pero
para repasar y asegurar conceptos vamos a hacer un ejercicio sobre este tema, y
aprovecharemos para introducir un nuevo concepto, que es el "agrupamiento" de datos por
una funcin matemtica que nos proporciona la propia consulta.
Imaginemos que nuestro distribuidor quiere saber los totales vendidos por familia de producto.
Acabamos de realizar una consulta que nos indica el total de las ventas, impuestos incluidos.
Ya tenemos uno de los elementos de nuestra futura consulta. Como le interesa la informacin
"por familia de producto" lgicamente vamos a necesitar la tabla TFamiliaProductos.

10

Vistame en http://siliconproject.com.ar/neckkito/

As pues, creamos una nueva consulta, que tendr por


nombre "CtotalesxFamiliaProductos". Aadimos la tabla
TFamiliaProductos y la consulta CCobrosTotalesVentas.
Enseguida nos
damos cuenta de que hay
algo que no
funciona bien: dnde
estn las
relaciones entre ambos
elementos?
Moraleja: si no hay
relacin entre las tablas o consultas que introduzcamos en
una consulta la consulta no funcionar (salvo en algunos
casos excepcionales).
Vamos a ver cmo arreglar esto. Qu tabla contiene elementos comunes que nos permita
relacionar las dos anteriores? La tabla que cumple dicho requisito es TProductos. Aadimos
pues esta tabla a nuestra consulta (1)
a travs del botn "Mostrar tabla", y
en la ventana que aparece (que ya
nos debera sonar) la aadimos.

(1)

Ahora vemos que automticamente se


nos ha creado una relacin (2), pero
la otra ha quedado coja. Tenemos
pues que decirle a Access que s hay
una relacin entre TProductos y
CCobrosTotalesVentas. Para ello, nos
situamos sobre el campo NomProd de
TProductos y lo arrastramos sobre el
campo
NomProd
de
CCobrosTotalesVentas. Ahora debera
aparecer una lnea que nos muestra la
relacin (3).

(2)

Vamos a crear (ahora s) nuestra


consulta de la manera siguiente.
Elegimos los siguientes campos:
De
TFamiliaProductos:
FamProd
De
CCobrosTotalesVentas:
Total

(3)

Si ahora ejecutamos la consulta veremos que

(4)
(5)

11

Vistame en http://siliconproject.com.ar/neckkito/

nos muestra varias filas de la misma familia de productos, y, evidentemente, no era ese el
resultado que esperbamos. Nos falta decirle a Access que queremos un agrupamiento por
suma, en nuestro caso. Para ello, en vista diseo, pulsamos sobre el botn del sumatorio (4).
Veremos que aparece
una fila sobre la fila "Orden" que se denomina "Total" (5).
Como lo que queremos es la suma de los totales elegimos
del desplegable del campo Total la opcin "Suma" (1).
Como vemos, aqu podramos elegir otros tipos de
agrupamiento
matemtico,
como
mximo,
mnimo,
promedio, etc., as como tambin permite un agrupamiento
por expresin, elegir el primero o el ltimo, etc.

(1)

Si ahora volvemos a ejecutar la consulta veremos que s nos da la


informacin que queramos.

Aprovechar la ocasin para


comentar un pequeo detalle. Si nos fijamos, en la
ejecucin de la consulta vemos que sobre los totales
aparece como nombre de columna "SumaDeTotal". Para
cambiar esto volvemos a la vista diseo y hacemos click
con el botn derecho del ratn sobre el campo total para
sacar las propiedades. En la fila "Ttulo" escribimos, sin
comillas, "Total por familia" (2). Si ahora volvemos a
ejecutar la consulta veremos el nuevo ttulo de la
columna.

(2)

Y, por ltimo, una pequea utilidad ms. Imaginemos que


a nuestro amigo distribuidor le interesa saber las tres familias de productos que ms ingresos
le han dado. Para ello tenemos que realizar dos acciones:
Ordenar de mayor a menor los resultados
Decirle a la consulta que slo nos muestre las tres primeras
Ordenar de mayor a menor ya deberamos saberlo hacer: en vista diseo, en el campo "Total",
seleccionamos de la fila "Orden" la opcin "Descendente" (3).

(5)
(4)

(3)

Para que nos muestre slo las tres


primeras empleamos una casilla que est
en la barra de botones y que aparece con
el nombre de "Devuelve" (4). Si
desplegamos las opciones por defecto
vemos que nos muestra varias de ellas,
pero no la que nos interesa. Por ello, en
esa casilla, escribimos, sin comillas, "3"
(5). Si ahora ejecutamos la consulta
veremos que obtenemos los datos que
queramos.
UN INCISO: TIPOS DE CONSULTAS
Hasta ahora hemos realizado lo que se
denominan consultas de seleccin. Existen
otros tipos de consultas. Vamos a explicar
brevemente las que ms utilizo yo aqu.
Estas parten de realizar una consulta de
seleccin (cosa que ya sabemos hacer) y,
una vez realizada, "decirle" a Access el

12

Vistame en http://siliconproject.com.ar/neckkito/

tipo de consulta que queremos que sea. Para ello utilizaremos los botones correspondientes,
tal y como muestra la ilustracin siguiente:

Los tipos de consultas que vamos a ver son:

Consulta de creacin de tabla: como su nombre indica, cuando se ejecuta la consulta se


crea una nueva tabla con el nombre que en el proceso habamos determinado.
Consulta de datos anexados: esta consulta recoge los datos que nos interesan y los
inserta como nuevos registros en una tabla que ya tenamos creada.
Consulta de actualizacin: esta consulta examina los registros de una tabla y, segn le
hemos indicado durante su creacin, los actualiza con nuevos datos.
Consulta de eliminacin: esta consulta recoge los registros que cumplen las condiciones
que hemos determinado y los elimina.

Vamos a ver un ejemplo terico: imaginemos que tenemos dos tablas exactamente iguales
(por ejemplo, una recoge los datos de ventas que introduce el comercial A y otra recoge los
datos de ventas que introduce el comercial B). Necesitamos dos por los motivos que sean y no
queremos que se reflejen en una sola tabla. Ahora, como administradores, queremos sacar
unos informes de ventas conjuntas. Para poder analizar toda esta informacin sin ir tabla por
tabla podramos hacer lo siguiente:

Crear una consulta con todos los datos de la tabla A y convertirla en una consulta de
creacin de tabla TOTALES. Cuando ejecutsemos esta consulta la tabla A y la tabla
TOTALES tendramos exactamente los mismos datos en ambas. Ya tenemos una
consulta de creacin de tabla.
Crear otra consulta con todos los datos de la tabla B, pero esta vez anexarla a los datos
de la tabla TOTALES. De esta manera, la tabla TOTALES tendra ahora los datos de A
ms los datos de B. Ya tenemos una consulta de datos anexados.

Ahora ya podramos operar sobre la tabla TOTALES, con toda la informacin de ventas.
Un ejemplo terico de actualizacin podra ser realizar una consulta que coja todos los datos
de la tabla A y, donde pone, por ejemplo, "Ventas sector 3", ponga ahora "Ventas sector 4". Al
ejecutar la consulta los datos de la tabla A se actualizaran de "Ventas sector 3" a "Ventas
sector 4".
Por ltimo, y referente a una consulta de eliminacin, imaginemos que nuestro amigo
distribuidor est contabilizando ventas de productos y, porque se elimina la venta en el ltimo
momento o porque se despista, empieza a rellenar los datos de la venta pero no rellena todos
los campos. Si mirsemos la tabla veramos registros que estn parcialmente en blanco.
Supongamos que el elemento que siempre queda sin completar es el nmero de unidades
vendidas. Podramos pues realizar una consulta buscando todos los registros en los que el
campo Ud_Vta es 0. Si la convertimos en una consulta de eliminacin cada vez que
ejecutsemos esa consulta se eliminaran todos los registros que tuvieran cero como nmero
de unidades.
CONSULTAS CON FILTRO POR FECHAS
Ya que filtrar por fechas suele ser muy habitual explicar cmo establecer diferentes filtros de
fecha en una consulta.

13

Vistame en http://siliconproject.com.ar/neckkito/

Vamos a crear una nueva consulta, de nombre CFiltroFechas1.


Seleccionamos la tabla TVentas. Ahora, si nos fijamos, veremos que sobre el campo "Id" hay
un pequeo asterisco. Si cogemos ese asterisco y lo arrastramos hasta la columna de campos
lo que hacemos es crear una consulta con todos los campos de la tabla (1).
Ahora arrastramos el
campo Fecha_Vta a la
segunda columna y
desmarcamos
la
opcin
mostrar,
puesto
que
este
campo
slo
lo
utilizaremos
como
filtro (2).

(1)

En la fila "Criterios" vamos a indicar qu queremos


exactamente. Si quisiramos ver todas las ventas
realizadas con fecha anterior al 01/03/10 escribiramos:
<01/03/10 (3). Access automticamente nos coloca la
fecha entre almohadillas.
Si quisiramos incluir el da 1 de marzo escribiramos:
<=01/03/10

(2)
(3)

Si quisiramos las ventas posteriores al 1 de marzo escribiramos: >01/03/10, o si queremos


incluir el 1 de marzo: >=01/03/10.
Si hacemos las distintas pruebas y vamos ejecutando la consulta veremos como los resultados
se van ajustando a nuestro filtro.
Si lo que queremos es un filtro "entre fechas" deberamos escribir (por ejemplo, todas las
ventas de marzo): >=01/03/10 Y <=31/03/10 (1).
Guardamos la consulta.

(1)

Ahora vamos a crear una nueva consulta a la que le pondremos de


nombre CFiltroFechas2. Esta consulta nos va a solicitar qu
informacin queremos antes de ejecutarse.

La consulta ser exacamente igual que CFiltroFechas1, y


cambiar el criterio que le introduciremos. Imaginemos
queremos los datos en una fecha posterior a la que se solicite. Para indicar a Access
queremos que el usuario introduzca los datos (y esto sirve no slo para campos de fecha,
para todos los campos), debemos seguir la esctructura siguiente: ["pregunta"]

slo
que
que
sin

Todo lo que va entre comillas es


texto libre. Slo hay que ir con
cuidado de no utilizar el punto (.)

(2)

En nuestro caso escribiramos,


por ejemplo: >=["Fecha inferior?
-Formato dd/mm/aa-"] (2).
Si ejecutamos ahora la consulta
veremos que se abre un cuadro

14

Vistame en http://siliconproject.com.ar/neckkito/

de dilogo donde se solicita al usuario que introduzca una fecha con el formato que le
indicamos. Si no lo hacemos as saldr un mensaje de error.
Para el resto de consultas (inferior o entre fechas) basta
sustituir la fecha que hemos practicado en CFiltroFechas1
por esta nueva estructura aprendida ahora ["pregunta"].
Podramos emplear esta estructura en el campo Prod_Vta,
escribiendo un criterio como ["Nombre del producto?"],
por ejemplo, pero corremos un pequeo peligro: si no
escribimos el nombre del producto exactamente igual a
como est introducido en la base de datos o bien
obtendremos un error o bien obtendremos una consulta sin
informacin que mostrar.
Una manera "elegante" de solventar el problema anterior se explica en el epgrafe
siguiente.
COMBINACIN DE CONSULTAS CON DATOS EN FORMULARIO
Para explicar este epgrafe vamos a necesitar un formulario. Para ello creamos un formulario
en vista diseo y lo llamamos FFiltroProducto.
Vamos a crear un cuadro combinado en el formulario en blanco. Para ello pulsamos sobre el
botn "cuadro combinado" en el grupo "Controles" (3A). Si ahora situamos el cursor sobre el
formulario veremos que se ha convertido en una cruz con un icono junto a ella en forma de
cuadro combinado. Con el botn izquierdo del ratn dibujamos la figura de un cuadro
combinado (un pequeo rectngulo) (4).
Al soltar el botn izquierdo
nos aparecer el asistente (si
tenemos
activada
esta
opcin) y nos dar dos
opciones.
Elegiremos
la
opcin de buscar en una tabla
o consulta existentes (5).
Pulsamos
el
botn
"Siguiente".

(3A)

En la nueva ventana elegimos


la tabla TProductos, porque
nosotros
sacaremos
el
nombre del producto de ah
(6).

(5)
(4)

En la nueva ventana elegimos NomProd y lo


pasamos al recuadro de la derecha (7).
En la ventana siguiente elegimos la ordenacin de
NomProd ascendente (para tenerlos ordenados
alfabticamente)
(8).
Veremos
que
automticamente Access ha aadido el campo
RefProd porque es una clave principal.

15

Vistame en http://siliconproject.com.ar/neckkito/

(6)

En la siguiente ventana podemos ajustar el ancho de columna. Dejamos marcada la casilla de


verificacin "Ocultar la columna clave" porque en este caso no nos interesa para nada.
En la siguiente ventana indicamos como nombre de etiqueta "Producto?" (9A) y finalizamos.

(8)
(7)

Ahora debemos asignar un nombre al cuadro combinado para poder reconocerlo cuando
diseemos la consulta. Hay que tener en cuenta que, en general, cuando creamos un control
siempre trae aparejado una etiqueta del control. Es importante no confundir la etiqueta con el
control.

(9A)

Para hacer lo anterior sacamos la hoja de


propiedades del cuadro combinado, nos
situamos en la pestaa "Otras" y le ponemos
de nombre, sin las comillas, "cbbProd" (10).

Es
costumbre poner tres letras antes del nombre, las
cuales indican el tipo de control al que se est
haciendo referencia. Como es un cuadro
combinado (combo box) ponemos cbb. Si el
control fuera un cuadro de texto pondramos
txtNombre, si fuera una etiqueta (label)
pondramos lblNombre, etc.

(10)

Si vamos a la pestaa "Formato" veremos que la


fila "Nmero de columnas" nos indica que son 2.
Efectivamente, la columna 1 sera la referencia del
producto y la columna 2 sera el nombre del
producto. En la fila de abajo podemos ver que no
se mostrar la columna 1 porque su tamao es 0.
Si ahora nos situamos en la pestaa "Datos" vemos que en la fila "Columna dependiente" nos
indica el 1. Eso no es correcto en nuestro caso, porque nosotros no queremos utilizar la
referencia (columna 1), sino el nombre del producto (columna 2). Por ello, cambiamos el valor
a 2.

16

Vistame en http://siliconproject.com.ar/neckkito/

Ahora, sin cerrar nuestro formulario, creamos una nueva consulta en vista diseo. La
llamaremos CFiltroProducto.
Aadimos TVentas y TProductos y arrastramos el
asterisco a la primera columna. Arrastramos tambin el
campo NomProd de TProductos (11).
Vamos a decirle a la consulta que queremos que filtre

(11) por el valor que seleccionemos en nuestro recin creado


cbbProd.

(12B)

En esta segunda columna, situamos el puntero sobre la


fila "Criterios" y hacemos un click con el botn derecho
del ratn. En el men contextual que aparece marcamos
la opcin "Generar...".

Nos aparece el conocido generador de expresiones. La secuencia de acciones que debemos


realizar ahora es la siguiente: doble click sobre "Formularios" / Doble click sobre "Formularios
Cargados" / Un click sobre FFiltroProducto / Un click sobre cbbProd / Doble click sobre
"<valor>".
Se nos escribe una expresin tal y como se muestra en la ilustracin siguiente:

Aceptamos y la expresin queda escrita en el criterio de nuestra consulta (12B).


Cerramos la consulta y situamos FFiltroProducto en vista Formulario. Elegimos un producto de
la lista y ejecutamos la consulta CFiltroProducto. Ahora deberamos ver los registros que
contengan slo el producto seleccionado.
Aunque ahora no veamos muy clara la utilidad de este sistema realmente s es til. Por
ejemplo, imaginaos que tenemos un informe (esto lo veremos en el captulo dedicado a los
informes) basado en la consulta que acabamos de hacer. Imaginaos que en el formulario
FFiltroProducto tenemos un botn que diga "Ver informe". El proceso para la obtencin del
informe por un inexperto usuario de nuestra base de datos sera tan simple como elegir un
producto de la lista y pulsar el botn: la consulta trabajar, pero el usuario no ser consciente
de ello.

17

Vistame en http://siliconproject.com.ar/neckkito/

Como ejercicio os propongo hacer un filtro como el anterior


pero seleccionando el nombre del cliente para ver qu se le
ha vendido. Recordad que deberis crear un formulario con
un cuadro combinado que extraiga los nombres de los
clientes, configurar correctamente sus propiedades, y
finalmente crear la consulta basada en el valor que se elija
de ese cuadro combinado. Suerte!
PARA ACABAR...
Hemos visto en este captulo cmo crear consultas simples, ms
complejas, de referencias cruzadas, tipos de consultas a nivel
terico, aplicar filtros de fecha a una consulta y vincular consultas
con formularios.
Los resultados de las consultas pueden verse en la propia consulta, en un formulario o en un
informe. Nos ocuparemos de ello en captulos posteriores.
Podis completar y aprender alguna cosilla ms si analizis tambin los ejemplos que
aparecen en la web. Algunas cosas ya las sabris, por lo que os servirn de repaso, y todo lo
que no sepis... pues un poco ms al saco
Los links son:

Consultas (I)
Consultas (II)

18

Vistame en http://siliconproject.com.ar/neckkito/

You might also like