Acces 2000

download Acces 2000

of 28

Transcript of Acces 2000

  • 5/28/2018 Acces 2000

    1/28

    Consultasavanz

    adas

    4

    CaptuloCaptulo

    4

    CONSULTAS AVANZADAS

    En realidad, los datos existen para poder consultarlos; optimizar esatarea es el objetivo del presente captulo. Por eso, no hay que dejar deleer cmo obtener totales, actualizar datos, eliminarlos, etc.; todo enbase a criterios y a distintos parmetros.

    Hacer clculos dentro de las Consultas . . . . . . . . . . . . . . . . . . . . .101Clculos ms complejos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106Liquidacin de sueldos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109Consultas de parmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118Operaciones con fechas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120El generador de expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126

  • 5/28/2018 Acces 2000

    2/28

    Hacer clculos dentro de las Consultas

    Agrupar como primera medidaSi deseamos obtener el total de clientes que tenemos por localidad,

    la cantidad de compras que han hecho o la suma total de ventas de ca-da vendedor, primero debemos agruparlos.

    Tal como se mencion en el captulo anterior, la idea de agrupar esno mostrar los valores que estn repetidos dentro de un mismo cam-po. Pero el hecho de que Access no los muestre no significa que nocuente cuntas veces apareca ese mismo valor.

    En principio, agrupar por s solo no tiene mucho sentido, pero s setornar realmente prctico cuando se agregue algn campo que calcu-le cuntas veces aparecan las mismas localidades o el mismo vendedor.

    Para lograrlo, en primer lugar se debe crear una consulta comn y co-rriente, donde las tablas a incluir dependern de lo que se desee obtenercomo resultado. Por ejemplo, si queremos saber cuntos clientes tenemosen cada localidad, deberemos agregar nicamente esta tabla al diseo.

    En cambio, si lo que deseamos conocer es cuntas veces ha venidoa comprar cada uno de los clientes, necesitaremos agregar dos (Clien-tesyVentas), aunque despus solamente se utilice un campo (Nombrey Apellido).

    Llevando a la prctica el primer caso, una vez pasado a la cuadrcu-la el campo Localidad se debe presionar el botn Totales de la Ba-rra de Herramientas.

    Al principio el resultado no ser gran cosa: slo mostrar sin repetir las

    diferentes localidades que hay en la tabla, pero no dir cuntos clientestiene en cada una. Es que todava falta agregar un campo muy especial.

    Figura 1.El resultado de la consulta an es pobre, pero quedar mucho mejor cuando,con un campo calculado, indique la cantidad de clientes existentes en cada localidad.

    101

    Hacer clculos dentro de las Consultas

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    3/28

    TRUCOS

    ACCESS 2000VENTAJASUna posibilidad interesante que surge de efectuar consultas con clculos es que los re-sultados se pueden pasar a Excel con el fin de generar un grfico. Si bien dentro de Ac-cess pueden crearse formularios e informes grficos, el programa ideal para ello siguesiendo Excel, que resulta ms prctico a la hora de manipularlos y darles un formato me-jorado.Es simple: slo se deben seleccionar y copiar los datos al momento de ver el resultadode la consulta. Por ltimo, hay que entrar a Excel y pegarlos en cualquier parte de la pla-nilla. El grfico se debe crear como cualquier otro dentro de ese programa; la ventaja esque ya se tendr resumida la informacin.

    Los campos calculadosUn campo de este tipo es aqul que no existe en la tabla y que se

    crea slo temporalmente dentro de una columna en la consulta pararealizar algn tipo de operacin matemtica.

    Por ejemplo, podra utilizarse uno para sumar lo recaudado por un

    vendedor, calcularle una comisin del 10 por ciento sobre ese valor o,como mencionbamos hasta ahora, contar cuntos clientes hay en ca-da localidad.

    Continuando con el diseo de la consulta anterior, se debe agregara la cuadrcula QBE un campo al lado de Localidad, pero la diferenciaes que no hay que obtenerlo de la lista que hay en la tabla de arriba,sino que se deber escribir a mano.

    Ante todo es preciso tipear el texto que aparecer como ttulo de la

    columna. Puede ser cualquier cosa, por ejemplo: Total, Cantidad declientes por localidad, etc. Luego se deben poner dos puntos, y a conti-nuacin el nombre del campo del cual se desean contar sus conteni-dos agrupados. En caso de no poner un ttulo, aparecer algo as co-mo Cuentadelocalidad (todo junto).

    El campo quedara ms o menos de este modo: Total de clientes:Localidad. Access se encargar de agregar los espacios y corchetes quesean necesarios y que no pusimos (no hay que preocuparse: en este ca-so no tenemos la obligacin de hacerlo).

    Por ltimo, en la parte inferior, sobre el sector que dice Agruparpor, presionar la flecha que apunta hacia abajo y elegir Cuentaentretodas las operaciones disponibles.

    102

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    4/28

    Figura 2.En la primera columna son agrupadas todas las localidades. En la segunda,el campo calculado cuenta cuntas veces apareca cada una de ellas dentro de la tabla..

    Quizs a algunos la lgica les diga que deben utilizar la operacinSuma en vez de Contar. La cuestin aqu es que sumar se utiliza sola-mente con nmeros, por ejemplo, para obtener un total de ventas porcada vendedor. En cambio, contar tambin puede utilizarse con pala-bras, para saber cuntas veces aparecen.

    No se podran sumar las localidades, como tampoco los nombres delos empleados (para dar un ejemplo); hay que contarlos, que para Ac-

    cess no es lo mismo.

    Figura 3. Los resultados pueden servir para ser visualizados aqu, servir de base aotras operaciones, o copiar y pegarse dentro de Word o Excel.

    103

    Hacer clculos dentro de las Consultas

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    5/28

    MS DATOS

    ACCESS 2000TTULOS

    As como para las tablas existe la propiedad ttulo, para las consultas tambin; la formams prctica de colocarlo es delante de cada nombre de campo, seguido de dos puntos.Se le puede poner ttulo a cualquier campo, sin necesidad de que sea uno calculado. Elnico detalle a tener en cuenta (para ahorrarse problemas) es que ese texto no debecoincidir con el nombre de ningn campo existente en la base.

    Un ejemplo ms

    Para obtener el total recaudado por cada vendedor, primero se de-ben agregar dos tablas a la consulta: Ventas y Vendedores. Como se-gundo paso, hay que insertar los campos Nombre de Vendedory Mon-to (cada uno est en una tabla diferente).

    Aqu no es necesario inventar ningn campo calculado (como en elcaso anterior), porque en una de las columnas que se utilizarn parahacer la suma ya existe uno: es justamente el de Monto. Por eso, lo ni-co que restara por hacer es elegir, debajo de ese campo, la operacin

    Sumaen vez de la deAgrupar por (si se eligiera Cuentase obtendrael total en cantidad de ventas).En el resultado de la consulta, el ttulo de la segunda columna ser

    SumadeMonto. Para colocar otro, escribir el texto deseado delante delnombre del campo, seguido de dos puntos. Ej.: Total de ventas: Monto.

    Figura 4. As es como se debe disear esta consulta.

    104

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    6/28

    Figura 5.De cada venta que haya realizado un vendedor se van sumando y acumu-lando sus montos.

    HAY QUE SABERLO

    ACCESS 2000QU CAMPOS INCLUIR EN LA CUADRCULA QBE:Si se desea saber cuntos clientes hay en cada localidad, se debe ser el nico campoa utilizar en la consulta de totales. La cuestin es simple: al agrupar desaparecern to-dos los que sean iguales (repetidos). Pero si se insertara el campo Nombre y Apellido,cada uno pasara a ser distinto (aunque vivan en la misma localidad), y en ese caso no ha-br ninguno repetido para poder agrupar. Por tal motivo, slo hay que colocar el campo

    del que se sabe que hay repetidos, pero no aquellos que son nicos dentro de la tabla.

    Figura 6. As es como se ven las listas de consultas para practicar creadas hasta aho-ra. Llegar un momento en que haya decenas, por lo que seguramente empezaremos a

    ocultar las que menos nos interesen. Ya veremos este tema ms adelante.

    105

    Hacer clculos dentro de las Consultas

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    7/28

    Clculos ms complejos

    Supongamos que necesitamos liquidar las comisiones a los vende-dores Junior. A cada uno le corresponder, sobre el total de ventas quehayan realizado, lo que indique el campo Comisin de la tablaVende-dores (en el captulo 3 hemos visto la manera de agregarlo y de defi-nir el tipo como Numrico y con el formato Doble).

    Antes que nada, creamos una nueva consulta incluyendo los si-guientes campos: Nombre de Vendedor, Categoray Monto. Hastaaqu es parecido al ejemplo anterior; la nica diferencia est en que hasido agregado el campo Categora.

    Vale tener en cuenta que, aunque se estn haciendo clculos, estono deja de ser una consulta a la que es posible agregarle los criteriosque se deseen. Por eso, para obtener las liquidaciones de los vendedo-res Junior solamente, se deber agregar esa palabra como criterio delcampo. El monto tambin debe sumarse, cosa que no difiere del otroejemplo (y no hay que olvidar ponerle un ttulo si se quiere ver msprolijo el resultado).

    En realidad, la particularidad reside en la cuenta a realizar para ob-

    tener el porcentaje que le correspondan a esos vendedores.Para ello habr que ubicarse en la columna siguiente al campoMontoy all escribir: Total comisiones: Monto*Comisin, donde la fra-se Total comisiones puede ser reemplazada por cualquier otra (me-nos Comisin a secas, que es el nombre del campo en s).

    Figura 7. Las comisiones, al igual que los montos, se deben sumar;de lo contrarioaparecer cada una por separado y se perder el concepto de agrupamiento.

    Un detalle; la frase total vendido se utiliza como ttulo de la tercera columna.

    106

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    8/28

    Figura 8. Calcular a mano el resultado sera una tarea sumamente tediosa. Inclusoes posible desmarcar la opcin Mostraren el campo Categora; total, ya sabemos que

    los vendedores que aparecen son los de esa categora.

    MS DATOS

    ACCESS 2000CORCHETESSi el nombre del campo utilizado para realizar la operacin contiene espacios en blan-co y ms de una palabra (ej.: Monto de la operacin), conviene encerrarlo entre corche-tes manualmente, y no dejar que Access lo haga, pues seguramente lo har mal y pon-dr los corchetes donde no correspondan.

    Una cambio automtico en el diseo

    Al guardar y cerrar la tabla, Access har un pequeo retoque a losclculos de la consulta anterior, que recin se notarn al volver a abrirel diseo de la misma. La Figura 9 muestra cmo queda despus de loscambios aplicados por Access, aunque no hay que preocuparse porellos. En realidad, sa es la forma correcta de cmo debera habersediseado el clculo, pero el programa lo entiende de todas formas. Eltema es que a veces resulta ms fcil disear la consulta como hemos

    venido haciendo hasta ahora y dejar que Access se encargue de los de-talles tcnicos.

    Figura 9. Obsrvese que, en la ltima columna, ahora la operacin es Expresin, yen la parte superior se ha agregado la frmula Sumadelante de los dos campos.

    107

    Clculos ms complejos

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    9/28

    Formatos y otras cuestiones

    Aplicar formatos a los camposComo se habr notado en la Figura 8, los valores de la columna To-tal comisiones no tienen formato alguno. En realidad, sera ideal agre-garles el signo pesos adelante (formato moneda).

    Para esto slo hay que hacer un clic derecho en cualquier parte deesa columna, y all seleccionar la opcin Propiedades. En seguida apa-recer una ventana donde se deber especificar el formato adecuado.

    Figura 10. Una vez seleccionado el formato deseado, cerrar esta ventana.

    Mostrar dos campos en la misma columnaEs posible mostrar juntos a dos campos dentro de una misma co-

    lumna. Para entenderlo mejor, partiremos de un ejemplo bastante co-mn en el que el nombre y el apellido han sido ingresados en dos cam-pos distintos, y por lo tanto se ven en dos columnas separadas.

    Para ver juntos ambos campos deberamos crear una consulta y allunirlos. Para ello nos alejaremos un poco de la base de datos con lacual hemos estamos trabajando hasta ahora y tomaremos una tablacon estas caractersticas.

    Para unir los campos hay que ingresar ambos en la misma columnade la cuadrcula QBE, unidos por el signo +. El tema es que al visuali-zar los resultados, el apellido y el nombre aparecern pegados. Para se-pararlos, nada mejor que una coma y un espacio entre medio. En la Fi-gura 11 puede apreciarse un ejemplo.

    108

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    10/28

    Figura 11. Lo que se est generando aqu es una expresin que mostrar amboscampos dentro de una misma columna. La coma debe ir entre comillas.

    Figura 12. Convendra cambiar el ttulo Expr1por uno ms adecuado,

    tipo Nombre y Apellido.

    Liquidacin de sueldosEn primer lugar debemos realizar un pequeo agregado a la tabla

    Datos personales: incluiremos en ella el campo Sueldo bsico. Luegoingresamos valores all, tal como se observa en la Figura 13.

    109

    Liquidacin de sueldos

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    11/28

    Figura 13.Estos sueldos sern la base para obtener el neto a cobrar despus de apli-carle todas las asignaciones y restarle las retenciones correspondientes.

    Listo; ya estamos preparados para crear un grupo de consultas queayudarn a liquidar los sueldos de cada empleado. Hay que tener en

    cuenta que al sueldo bsico deberemos sumarle las comisiones, las asig-naciones por esposa e hijos y la antigedad, y a todo eso restarle lo quenos corresponda pagar como empleadores a la obra social del empleado.

    No va a ser tarea fcil. Primero empezaremos haciendo las cosasms bsicas, pero luego la consulta se ir complicando. Por qu? Por-que en un principio haremos la liquidacin, pero para todas las ven-tas; en realidad corresponde hacerla de un perodo determinado.

    Adems, habr que considerar las asignaciones por esposa, pues no to-

    dos los empleados deben recibirla.Por ese motivo se debe prestar mucha atencin, pues los pasos a se-guir no son tan sencillos como parecen en un principio. Y eso que anno trataremos las operaciones matemticas con fechas.

    Diseo de la consultaEmpezaremos obteniendo las retenciones y asignaciones bsicas.

    Para tal fin, agregamos al diseo de la consulta las siguientes tablas:Vendedores, Ventas, Datos personales, Listado de antigedades y

    Obras sociales.Hecho esto, de la tabla Vendedores arrastramos a la cuadrcula

    QBE los campos Cdigo de vendedor, y Nombre y Apellido. Luego de-beremos crear un par de expresiones para obtener la cantidad a perci-bir por cada hijo (en este caso, por cada uno corresponden $4,50) y laretencin para la obra social. En la Figura 14 se puede ver claramentecmo generar esas frmulas. Obsrvese que para las columnas se hacolocado un ttulo que siempre difiere de cualquier campo existente(con el fin de evitar problemas en referencias futuras a ellas).

    Para finalizar, arrastramos el campo Plus de la tabla Listado de an-tigedadesy por ltimo presionamos el botn Totales de la Barra deHerramientas (para agrupar los valores repetidos).

    110

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    12/28

    Figura 14. Los nombres de los campos deben ir siempre encerrados entre corchetes, yconviene poner un ttulo a las columnas para evitar el texto ExprX en cada clculo

    que se genere.

    Figura 15. As debe verse el resultado de la consulta. Todava faltan muchas cosaspor agregarle.

    SUGERENCIA

    ACCESS 2000SIGNO $No estara dems aplicar el formato moneda para todas las columnas que contengan es-

    te tipo de valores.

    Ahora tendramos que volver al diseo de la consulta, agregar elcampo Sueldo bsicoy generar una expresin que sume a este campoel valor de la asignacin por hijos, reste la obra social y sume el pluspor antigedad. ste ser, en definitiva, el total neto a cobrar por lapersona.

    Un detalle muy importante es que al terminar esta frmula, en lu-gar de la operacinAgrupar por debemos elegir Expresin. De lo con-trario, cada vez que se ejecute la consulta aparecer un cartel como elde la Figura 18.

    111

    Liquidacin de sueldos

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    13/28

    Figura 16. La segunda columna y la ltima son los dos elementos nuevos de esta consulta.

    Figura 17. Por el momento, stos son los resultados de los clculos.

    Figura 18.Este cartel aparecer si no indicamos que Total neto es una expresin, osi dentro de la frmula hacemos referencia a un campo o expresin que no existe en

    la consulta.

    MS DATOS

    ACCESS 2000SE PUEDEN OCULTAR ALGUNOS CAMPOS?No; no podemos ocultarlos quitando el tilde del botn Mostrar: lamentablemente debenestar presentes en la cuadrcula QBE porque son utilizados en sumas posteriores. De locontrario, tambin aparecer un cartel como el de la Figura 18. Podramos evitar mos-trar ciertos campos si generramos una nueva consulta a partir de la existente, donde esposible colocar los que deseamos para visualizarlos, aunque, como se advertir, esto to-ma un poquito ms de trabajo extra.

    112

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    14/28

    La funcin condicional (SiInm)Para obtener la asignacin por esposa hay que insertar una frmu-

    la que acte en base a una condicin. Por qu? Simplemente porqueno todos deben recibir este tipo de asignacin, sino que en principiolo harn los empleados casados.

    La funcin S inmediato (SiInm) es la que se encargar de este te-ma. En ella hay que definir una condicin y dos acciones: una, a reali-zar si la condicin es verdadera; la otra, si es falsa.

    Es simple: si llueve (condicin) abro el paraguas (accin verdade-ra); si no, no lo abro (accin falsa). Ntese que no es necesario volvera preguntar Y si no llueve?, porque esto ltimo se da por descarte.

    Por eso, basta con poner una nica condicin.La condicin se separa de las acciones por una coma o un punto y

    coma (segn cmo est definida la configuracin regional de Win-dows en nuestra PC). Quedara as:

    SiInm(condicin, accin verdadera, accin falsa)

    En nuestro ejemplo de liquidacin de sueldos, la condicin ser si

    el empleado es casado. Si es as le daremos $20 como asignacin; si no,nada ($0). Traducido:

    Esposa: SiInm([casado]=verdadero,20,0)

    La palabra Esposa es el ttulo de la expresin, y estamos compro-bando si el campo casado es Verdadero porque se trata de un campodefinido como tipo SI/NO-Verdadero/Falso.

    En realidad, la comparacin en la condicin podra ser con cual-

    quier cosa: ver si hay un valor superior a cierto monto, si es igual a unafecha, si es mayor al resultado de una frmula realizada en una expre-sin, si es igual a una palabra, etc.

    El ejemplo debera quedar como en la Figura 19. Hay que conside-rar que a partir de aqu empezaremos a mostrar por partes el diseode la consulta, debido a su extensin.

    Figura 19. No hay que confundirse: la accin falsa no aparece aqu porque su resul-tado es cero; es lo mismo que no existiera (es nula). Se puede escribir o no.

    113

    Liquidacin de sueldos

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    15/28

    Figura 20.El resultado: ahora slo falta sumarlo al total neto y mejorar un poco lacondicin (pronto veremos el porqu).

    Un resultado nuloHasta aqu, todo parece estar saliendo de maravillas. Pero slo en

    apariencia.El primer problema que surgir radica en lo siguiente: al incluir la

    asignacin por esposa en el total neto, ese valor quedar en blanco pa-ra los individuos que no estn casados. Difcil de creer? Observemoslas Figuras 21 y 22.

    Figura 21. Las frmulas.

    Figura 22. Los resultados. Juan Prez tiene la desgracia de no cobrar sueldo por nohaberse casado.

    A ver si nos cierran las cuentas para Prez: 500+0-25+20+0 deberadar $495. Y por qu aparece en blanco el sueldo neto? Porque el resul-tado de la funcin condicional, en caso de que el individuo no fuera ca-sado, era un valor Nulo, que para Access no tiene nada que ver con uncero (por ms que nos matemos escribiendo un cero como resultado pa-ra alguna de las acciones de la condicin). Incluir en una suma un valornulo sera casi lo mismo que dividir por 0. El resultado es nada.

    Hay solucin? Por supuesto que la hay, y viene de la mano de unafrmula: NZ(). Esta frmula tiene la particularidad de transformar un

    valor Nulo en un cero, por lo que los resultados de cualquier frmulaque se haga sern correctos. Observemos las Figuras 23 y 24y veremoscmo armarla.

    114

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    16/28

    Figura 23.En la ltima columna, la expresin esposa ha sido colocada dentro de lafrmula NZ. Recordemos que aqu estamos viendo parte del diseo, y no todo.

    Figura 24. Ahora si; las cosas como deben ser. O todava falta ms?

    Una condicin dentro de otraPor supuesto que falta ms, y esto conviene leerlo bien despierto; si

    no, es posible llegar a marearse.Si analizamos detenidamente todo lo que hemos hecho hasta aho-

    ra, la asignacin por esposa no est bien otorgada. Por qu? Porquetambin la est recibiendo una mujer. Podrn existir asignaciones poresposo, pero no es el caso de esta empresa machista. As que estamos

    en un problema.Pero todo problema, aunque complejo, tiene solucin. Y aqu, ade-ms del estado civil hay que verificar el sexo de la persona: si es casa-da, debe ser masculino. En ese caso se le darn $20. Si no es masculi-no, no recibe nada, y si no es casado, menos.

    Aqu, como hemos visto, si se cumple la primera condicin (casa-do) tambin debe verificarse otra (masculino). Nuestra frmula que-dara algo as:

    Esposa: SiInm([casado]=verdadero,SiInm([sexo]=masculino, $20,0),0)

    Ntese que masculino debe ir encerrado entre comillas, porquees una palabra; eso no sera necesario si fuesen nmeros. Access trans-formar la frmula de la siguiente manera:

    Esposa: SiInm([casado]=Verdadero,SiInm([sexo]=masculino, 20),0)

    No hay caso; si no le saca un cero a la segunda condicin, el progra-ma no est contento. La Figura 25 tratar de echar algo de luz sobreesta frmula.

    115

    Liquidacin de sueldos

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    17/28

    Figura 25.Dentro de la accin verdadera, hay otra condicin con una accin verda-dera ms que le corresponde. Ahora s que la asignacin estar bien otorgada.

    Liquidacin de comisionesAhora que ya tenemos casi todo hecho, falta lo ms importante. O

    es que nuestros vendedores le sonren a cada cliente por nada? Faltaliquidar las comisiones.

    En principio es fcil: basta multiplicar los montos de ventas por lacomisin respectiva a cada vendedor, y luego sumar esa cifra resultan-

    te (no agruparla). El problema es que no vamos a liquidar las comisio-nes desde que comenzaron a trabajar en la empresa, sino del mes desueldo que corresponda liquidar.

    Figura 26. Simple, para empezar. No olvidemos indicar que deseamos Sumar; de locontrario el resultado ser un desastre. Igualmente, al cerrar y abrir la consulta nos

    encontraremos con un pequeo cambio, tal como se explic en la Figura 9.

    116

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    18/28

    Figura 27.Estos cuantiosos sueldos no deberan ser tales, pues el perodo liquidado decomisiones no es el correcto. Por su tamao, el Cdigo de vendedor ya no entra en la

    vista, pero nos preocupemos; sigue estando all.

    Limitar la liquidacin a un perodo determinadoExisten dos maneras de limitar el rango de fechas. La primera es

    crear una condicin para que se efecte la suma de Monto*Comisin.

    Cul ser? La cuenta se efectuar si la venta est entre dos fechas es-pecificadas.

    Figura 28. As se debe limitar la suma de las condiciones a un perodo determinado.En este ejemplo, el perodo de fechas supera el de un mes porque no haba muchas ven-

    tas, pero en la prctica no debera.

    Figura 29. Los resultados no son los mismos. Ahora los sueldos netos son inferiores.Al cerrar la consulta y volverla a abrir, la frmula de esta columna habr cambiadoun poco, pero tendr el mismo objetivo (la palabra Sumase coloca delante de todo).

    Generar consultas dentro de otrasCabe tener en cuenta que si se desean visualizar de manera simple

    todos los datos utilizados para los clculos, e incluso ocultar alguna delas columnas, tranquilamente podramos crear una consulta que inclu-

    yera la anterior como nica lista de campos.El ejemplo que veremos a continuacin tiene algo de ese tipo, pe-

    117

    Liquidacin de sueldos

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    19/28

    ro con algunas variaciones: mostrar los datos personales del emplea-do y, al final, el sueldo neto, sin detallar cunto se le descont ni su-

    m, sino el por qu. Las dos siguientes Figuras ilustran a qu se apun-ta exactamente.

    Figura 30.El diseo: la primera lista de campos en realidad es la consulta reciente-mente creada; la otra es la ya conocida tabla Datos personales. En el resultado se po-

    drn observar todos los campos utilizados.

    Figura 31. Cost obtener el sueldo neto, pero lo logramos. Estos datos ahora puedenser utilizados para elaborar un Informee imprimir directamente el recibo de sueldo de

    cada empleado.

    Consultas de parmetrosUna consulta de parmetros es aquella en la que el criterio no es es-

    crito en el diseo, sino que se ingresa en el momento de ejecutarla. As,por ejemplo, podramos tener una consulta que cada vez que se ejecu-te pregunte el nombre del vendedor cuyas ventas se desean visualizar.

    Es muy fcil disear este tipo de consultas: slo hay que escribir lapregunta que aparecer en el momento de ejecutarse, en lugar de uncriterio. Eso s; esta pregunta debe ir entre corchetes para diferenciar-la de un criterio comn y corriente.

    118

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    20/28

    Figura 32. La pregunta puede estar expresada de cualquier manera. El nico detallees que no sea igual al nombre de un campo existente en la consulta.

    Figura 33. Al ejecutar la consulta, primero aparecer esta pregunta, a la que debere-mos responder obligatoriamente.

    Figura 34.El resultado: nicamente se muestran las ventas de Prez.

    Ventajas de este tipo de consultasImaginemos que la base la diseamos nosotros, pero el que la ope-

    ra es una persona que apenas sabe dnde est el botn Inicio deWindows. No pretenderemos que, cuando haya que liquidar comisio-nes de un mes diferente, esta persona ingrese al complejo diseo de laconsulta que hicimos hace poquito y cambie el rango de fechas. Si real-mente pretendiramos eso estaramos perdidos, amigos.

    En ese caso, lo mejor es aprovechar los parmetros para especificar

    119

    Consdulta de parmetros

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    21/28

    un rango de fechas. As, cada vez que esta persona ejecute la consultase encontrar con dos preguntas bastante elocuentes: las fechas entre

    las cuales debe estar el perodo a liquidar. Veremos cmo llevar a caboesta modificacin en el diseo de la consulta vista con anterioridad enla Figura 28.

    Figura 35. Obsrvese que, en lugar de fechas, ahora hay dos preguntas encerradas en-

    tre corchetes, que servirn como parmetros a definir cada vez que se ejecute esta con-sulta. Recordemos que el texto de cada pregunta se puede definir a criterio propio.

    HAY QUE SABERLO

    ACCESS 2000LAS PREGUNTASUna vez que la persona responda la primera pregunta, aparecer la segunda. Siempreque haya muchos parmetros, el usuario deber responder todos para poder ver un re-sultado. No sirve dejarlos en blanco, porque en esos casos la consulta no dar ningn

    resultado.

    Operaciones con fechas

    Extraer partes de una fechaUna consulta interesante que se podra crear es aquella que listara

    todas las ventas del da actual. Es muy simple, slo habra que colocarcomo criterio la frmula Fecha() en el campo Fecha de operacin.

    Tambin podramos considerar otra consulta que listara todas lasoperaciones efectuadas en el mes indicado. El nico objetivo aqu esensear un grupo de frmulas nuevas: Mes(), Da() y Ao(). No es quesean imprescindibles, pero algn da podramos llegar a necesitarlas.

    Cada una obtiene de una fecha la parte que su nombre indica. Porejemplo, si quisiramos listar todas las ventas del mes 4, tendramosque armar una consulta donde la extraccin del mes de fecha de ope-racin sea equivalente a dicho nmero. En realidad, lo mejor para po-der ir variando los criterios es utilizar un parmetro para ingresarlo.

    En la Figura 36 se puede observar cmo habra que disear un

    120

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    22/28

    ejemplo donde, en la columna que contiene el parmetro a ingresar(criterio), no es necesario que se visualice en el resultado (el botnMostrar

    est desmarcado).

    Figura 36. Las ventas que aparecern sern nicamente las que tengan el nmero demes ingresado al ejecutar la consulta.

    Realizar una pequea mejora

    Como generalmente no se trabaja con una base slo por un par demeses, surgir un problema cuando se la utilice durante ms de unao: cuando se listen las ventas efectuadas durante el mes 4, saldrn lasdel ao 2000, 1999, 1998, 1997, etc. Es decir, las de todos los aos queexistan en la tablaVentas.

    Si nos interesa trabajar con las ventas del ao actual, la ayuda vienede la mano de una frmula ya conocida: Fecha(). Obsrvese en la Fi-gura 37 cmo se debera hacer.

    Figura 37. Ahora slo se vern las ventas del mes indicado (debemos ingresarlo comoun parmetro) pero del ao actual, que es extrado del resultado de la frmula

    Fecha() en la ltima columna.

    121

    Operaciones con fechas

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    23/28

    Obtener la antigedad de un vendedor

    Como se habr visto hasta aqu, cada empleado recibe un plus se-gn la cantidad de aos trabajados. Eso est perfecto. En realidad, loque no est bien es que uno mismo escriba la antigedad de cada ven-dedor; habra que estar acordndose cundo comenz a trabajar en laempresa esa persona. Imposible!

    Mucho mejor sera escribir la fecha de ingreso en los datos perso-nales y que Access solito se encargue de calcular cunto tiempo haceque trabaja esa persona (teniendo en cuenta el da en que se est ha-ciendo la liquidacin). Parece tarea fcil, pero no lo es tanto.

    Antes que nada habr que hacer algunas modificaciones a las re-laciones y a los campos de las tablas. En sntesis: por un lado, bo-rrar la relacin que hay entre Datos personales y Antigedades;por el otro, cambiar el campoAntigedad de la tabla Datos per-

    sonales por otro campo llamado Fecha de ingreso. S, claro, steno es un cambio que se vaya a hacer todos los das. En realidadhubiese convenido comenzar a crear la tabla de esta manera, pe-ro la otra resultaba ms fcil para explicar bien las relaciones.

    Figura 38.Despus de borrar la relacin, borrar los datos viejos, cambiar el tipo decampo y su nombre, e ingresar los nuevos, la tabla debera verse as.

    Hecho esto, daremos comienzo a la creacin de la consulta quese encargar de determinar la cantidad de aos de antigedad decada vendedor. sta debe contener en su diseo nicamente latabla Datos personales. Aqu slo hay que agregar a la cuadrcu-la QBE los campos Cdigo de Vendedory Fecha de Ingreso.

    Cmo obtener la antigedad PASO A PASO

    122

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    24/28

    Existe una frmula que es la ms adecuada para restar dos fe-

    chas: DifFecha(). S, por supuesto, podramos restar las fechasmanualmente, sin necesidad de utilizar ninguna frmula especial(ej.: [Fecha actual] [Fecha de ingreso]). Eso funciona, pero es-ta frmula dar una pequea ventaja: se puede obtener el resul-tado en aos transcurridos, meses o das.Cmo funciona? DifFecha(aaaa;[Fecha de ingreso];[Fecha ac-tual]). El primer detalle es el orden en que deben ponerse las fe-chas: primero la inferior y luego la superior. El otro detalle es es-cribir las a entre comillas:

    aaaa obtendr los aos transcurridos entre ambas fechas m los meses d los das (aunque si pusiramos una sola a obtendramosel mismo resultado).

    Figura 39. Por ahora, el diseo de la consulta queda con estas frmulas. Las dos l-timas columnas tienen un ttulo acorde a lo que muestran.

    Figura 40. Los resultados: en realidad no estn del todo bien. Ya los perfeccionare-mos, no hay que preocuparse.

    123

    Operaciones con fechas

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    25/28

    TRUCOS

    ACCESS 2000FRMULAS LARGAS VS. POCO ESPACIOCuando tengamos que crear una frmula verdaderamente larga y compleja, lo mejor espresionar la combinacin de teclas Shift+F2, que abrir una ventana llamada Zoom,donde podremos editar la frmula mucho ms tranquilos y no tener que hacerlo en unacolumnita angosta.

    Al mostrar los resultados en la Figura 40 mencionamos que no es-taban bien. Por qu? El ejemplo ms claro lo brinda el vendedornmero 3. La frmula dice que ya tiene un ao de antigedad,

    pero si nos fijamos bien veremos que ste ingres el 14/12/98 yla liquidacin se est efectuando el 03/12/99, o sea que en reali-dad todava no se ha cumplido ese ao en el momento de liqui-darle el sueldo.Cul fue el problema? Que al restar las dos fechas y dar el resul-tado en aos, Access redonde el nmero.Qu significa redondear? Que si el resultado da ms de 0,5 lo re-dondea hacia arriba (1), y si da menos de 0,5 lo redondea hacia

    abajo (0). En realidad, los aos siempre deberan redondearse ha-cia abajo porque, aunque falte muy poco para que se cumpla elprximo ao, ste no tiene por qu computarse como cumplido.Qu se hace en este caso? Hay solucin. A seguir leyendo.

    Lo mejor va a ser obtener el resultado en das. Para ello, en vez deaaaa, ponemos una simple d. Una vez cumplida esta tarea,agregamos una nueva columna que divida ese resultado (tiempotrabajado) por 365, que legalmente es la cantidad de das del ao.

    Figura 41.El cambio en el diseo debe verse as.

    124

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    26/28

    Figura 42. Comparando con la Figura 40podr advertirse cules eran los datos queestaban incorrectos por haberse redondeado hacia arriba (Vendedores 1 y 3).

    Qu faltara para concluir esta consulta? Redondear hacia abajoel resultado de la columna con decimales. Para ello hay queechar mano a una nueva frmula: Ent(). Cul es su funcin? Ob-tiene el nmero entero (redondeando hacia abajo). Por ejem-plo, si hay un 4,99, el resultado ser 4 y no 5 como hasta ahora.

    Figura 43. As se debe armar la frmula. Hay que considerar que slo se ven las lti-mas columnas del diseo de la consulta, debido a su extensin.

    Figura 44. Por fin! La antigedad correcta para cada vendedor de la empresa. Si to-dava no lo hicimos, guardamos la consulta con el nombre Obtencin de antigedad.

    TRUCOS

    ACCESS 2000REDONDEO HACIA ARRIBA Y HACIA ABAJO SEGN CORRESPONDASi se quiere redondear un nmero con decimales, existe una frmula especfica para ello:Round(). Debe escribirse en ingls, pues Access no toma Redondear(). Si el nmero esmayor a 0,5 lo har hacia arriba y si es menor hacia abajo.

    125

    Operaciones con fechas

    Consultasavanz

    adas

    4

  • 5/28/2018 Acces 2000

    27/28

    Integrando todoSe acuerda de la consulta que liquidaba todos los sueldos? Bueno,

    ahora tendremos que modificarla un poquito para que siga funcionan-do con los cambios realizados hasta el momento. Simplemente habrque agregar la tabla Obtencin de antigedad y relacionar el campoAntigedad real con el deAntigedad de la tabla Listado de antige-dades. Es ms fcil mirarlo en las figuras que leerlo.

    Figura 45. As debe quedar rediseada la consulta. Ejectela, mrela feliz, y tmeseun descanso antes de seguir leyendo.

    El generador de expresionesMuchas personas recurren al generador de expresiones a la hora de

    elaborar clculos complejos. Puede resultar muy til cuando en los For-mularios (tema que veremos ms adelante) se debe hacer referencia acampos que provienen de distintas tablas. Tambin tiene una lista defunciones y operadores desde donde poder elegir lo que uno desea,aunque no provee ayuda on line de cada una, como s lo hace Excel.

    Para activarlo hay que hacer un clic derecho sobre el lugar dondeira la frmula, y del men contextual elegir la opcin Generar.... Enese momento aparecer la ventana que se describe en la siguienteGua Visual.

    126

    ACCESS 2000 AL MXIMO

  • 5/28/2018 Acces 2000

    28/28

    rea donde aparece la frmula que est elaborndose.Botones con los operadores lgicos ms comunes.Lista de tablas, consultas, formularios, funciones, etc. stos son todos los objetos quecomponen la base de datos. Por ejemplo, al hacer doble clic sobre el + de la carpe-ta Tablas, aparecer un listado con todas las tablas existentes en esta base. Al cli-quear sobre cualquiera de ellas, sobre el rea numerada con el tem 4 aparecerntodos los campos que posea; basta con doblecliquearlos para incorporarlos a la fr-mula que se est elaborando. En este caso, en vez de campos se estn visualizandotodas las categoras de funciones disponibles.Categoras en las que estn divididas las funciones. Aqu tambin aparecen los cam-pos de las tablas, consultas, formularios o informes, cuando alguno de estos elemen-tos es seleccionado.Lista de funciones pertenecientes a la categora Todas.

    Para poder armar la frmula que se observa en el tem 1 de la GuaVisual, hay que cliquear sobre cada una de las zonas encerradas entrelos smbolos y all pegar o escribir lo que uno quiera en esa par-te de la frmula.

    GUA VISUAL N 1

    127

    El generador de expresiones

    Consultasavanz

    adas

    4