Una de las necesidades más frecuentes que se plantean en las bases de datos consiste en la realización de cálculos matemáticos con datos combinados que pertenecen a distintos campos. En Access, la mejor manera de hacerlo es mediante la creación de un campo nuevo que realice estas operaciones. Hay que realizarlo sobre una consulta.
Podemos partir de un ejemplo básico en el que la base de datos gestiona los datos de los vendedores, de los productos y las ventas realizadas. Se quiere obtener una consulta que refleje la facturación, es decir, productos, unidades vendidas y que realice los cálculos pertinentes para obtener los totales y el cálculo de impuestos.


Lo primero que hay que hacer es realizar la consulta que presente los datos necesarios para las operaciones. Se trata de una consulta de selección:

Cuando ejecutemos una consulta como esta, el resultado será una tabla como esta:

A continuación, en la vista diseño de la consulta, incluimos el nuevo campo a calcular en una columna vacía. El nombre del campo debe seguirse de dos puntos (:).

 
A continuación se incluyen los campos de la consulta con los que vamos a operar, entre corchetes, y los operadores necesarios. Todo sin espacios.
 
Al ejecutar la consulta se realizarán los cálculos oportunos:
 
Por otra parte, no es necesario que la consulta incluya los campos con los que opera, pero sí las tablas. También podemos hacer los cálculos que deseemos. Así podríamos hacer la consulta de esta manera:

Al ejecutarla se obtendrán los siguientes datos:

Productos formativos relacionados con Access:

Curso de Access 2003
Curso de Access XP
Manual de Access 2003
Manual de Access XP
Prácticas y ejercicios Access 2003
Prácticas y ejercicios Access XP


Comentarios

26 Comentarios

  1. Ana Belén en Mayo 31, 2007 2:05 pm

    Hola, queria saber si me podian ayudar con esta pregunta de Access (ofimática),la pregunta dice así:Obtener un inventario resumido por sucursal (mostrar Ciudad) y el importe (suma de
    precio * existencias). No sé como hacerlo, lo he intentado pero no me sale. Si podrían ayudarme se lo agradeceria. Muchas Gracias.

  2. Rafa en Junio 12, 2007 9:03 am

    De acuerdo, no parece muy complicado, pero necesitaría saber qué tablas y campos tienes en la BD, si no, es muy difícil decirte.

  3. juan carlos morillo en Julio 21, 2007 9:46 pm

    necesito hacer una factura pero esta debe poder introduccir todos los productos posibles es decir q la base de datos a medida q yo le introdusca uno y otro producto me vaya sumando el total pero lo q no entiendo es como crear un campo en el formulario llamado PRODUCTO y este acumle y sume cuanto producto introdusca en el

  4. admin en Julio 25, 2007 5:03 pm

    Vamos a ver, necesito que me describas mejor cuál es el estado actual de tu base de datos: qué tablas tienes, con qué campos, etc.

    Si no, me resulta imposible conocer los datos con los que cuentas para poder realizar esa factura. Cada caso es un mundo diferente

  5. CARLOS SEGURA YOQUIGÜE en Agosto 26, 2007 6:45 pm

    HOLA ME HA SIDO DE GRAN AYUDA TU POST SOBRE CAMPOS CALCULADOS, YO USO MYSQL Y DESARROLLO CON C#, SIN EMBARGO ME VI EN LA NECESIDAD DE DESARROLLOS MÁS RÁPIDOS, Y SIMPLES, ACCESS ME HA DADO EXCELENTES RESULTADOS, LO ESTOY APRENDIENDO RAPIDAMENTE, PERO PARA CASOS COMO ESTE, GENTE COMO TU NOS AYUDA MUCHISIMO, EN HORA BUENA Y GRACIAS DESDE MÉXICO.

  6. rosa en Septiembre 6, 2007 5:52 pm

    Necesito ayuda, quiero saber los pasos para conectar una base de datos de access con un plano hecho en autocad 2006. Por favor manda respuesta a mi correo lo mas pronto posible ,ya que en esta pagina no se como ver la respuesta (si tengo que registrarme o cómo), gracias.

  7. alfonso en Septiembre 10, 2007 9:25 am

    Si quiero hacer una consulta de selección, basandome en el criterio siguiente: “seleccionar todos los registros que el campo [titulo] contenga la cadena (XXX)”
    La cadena (XXX) la defino en un formulario.

    Como hago esa consulta?. Cuando escribo todo el “Título”, perfecto; pero y si solo escribo una parte, como puedo buscar esa parte?.

    Gracias

  8. admin en Septiembre 10, 2007 11:40 am

    Es muy sencillo.

    En la casilla de criterios,al pie del campo [titulo], anota la cadena “*XXX*”.
    Usamos el caracter comodín (*) para indicar que por delante y por detrás de la cadena que buscamos puede haber más texto.

  9. admin en Septiembre 10, 2007 11:45 am

    Para conectar una BD con un plano de AutoCAD hay multitud de posibilidades, pero como comprenderás con la información que facilitas se puede hacer bien poco ¿quieres extraer datos de la BD y que los lea AutoCAD, o al revés? ¿trabajas con atributos en AutoCAD y quieres extraerlos a una BD?, en definitiva ¿qué es lo quieres hacer,…?

  10. tolly en Octubre 2, 2007 1:30 am

    Gracias, muy sencilla la explicación, me sacó de una gran duda que tenía.

  11. oscar en Octubre 3, 2007 11:28 pm

    Hola,
    Tengo un problemita que no se resolver. Quiero hacer un vínculo donde aparezcan todos los nombres de un campo y que cuando escoja uno se abra unformulario con los datos asociados a él, pero no tengo idea de cómo hacerlo. ¿Creen que se puede?

  12. Rafa en Octubre 11, 2007 4:25 pm

    Bueno Oscar, no es muy difícil, pero la verdad es que Access no lo resuelve muy adecuadamente. se puede hacer de varias maneras, pero la más sencilla (sin meterse en programación) es mediante un formulario principal donde se encuentre, etre otros el campo del que sacas los nombres, y dentro de él lun subformulario vinculado.

    1.- Creas el formulario principal.

    2.- Abres su Vista Diseño y amplias el lienzo para hacerlo más grande.

    3.- Pinchas en el botón Subformulario de la barra de herramientas de controles y, en cualquier área en blanco del formulario, pinchas y arrastras para crear el subformulario.

    4.- Debe saltar un asistente para crearlo. Debes indicar que será del tipo Vinculado y que el campo de vinculación (común) será el campo de nombres de formulario principal.

    Bueno, creo que con esto te bastará. Trastea un poco con el asistente y la Vista Diseño y seguro que lo consigues.

    Un saludo, espero que te sirva de ayuda.

  13. ALEJANDRO en Octubre 30, 2007 2:00 am

    Hola, que tal. Solicito vuestra ayuda en un problema que tengo con Access. Quiero que al intentar cambiar el valor de un campo que tiene un valor predeterminado basado en el valor de otro campo, se me solicite una contraseña.

    *Ejemplo: Precio Final: =formularios![subformualario X]![precio1]

    El precio final ya contiene un valor basado en el campo precio1 del subformulario X y se guarda en la tabla ventas. Sin embargo, se trata de un valor muy sensible y necesito que tenga un acceso restringido por contraseña.

    ¿Es posible?

    Gracias de antemano.

  14. YOSIMAR en Noviembre 5, 2007 8:02 pm

    hola ke tal
    necesito ayuda con el access 2007
    si tu stas leyendo sto y tienes la solucion
    agregame a tus contactos en verdd me urge
    y es muy importante….
    de antemano grax.
    (campos automaticos )
    avatar_kio_shy@hotmail.com

  15. Juan Martinez en Noviembre 7, 2007 4:41 pm

    Hola:
    Necesito su ayuda para enviar información de access hacia autocad…, especificamente necesito enviar el contenido de una celda o varias celdas de access hacia grupos en dibbujo de autocad…

    Por sus comentarios, gracias

  16. franco en Noviembre 15, 2007 7:00 pm

    Mi pregunta es: necesito crear un campo calculado y que de alguna manera al tiempo que voy introduciendo los datos en formulario se introduzca también en la tabla los resultados. He creado campos calculados en el formulario a través de origen de control y lo hace perfecto pero en la tabla no se reflejan esos datos y necesito q estén reflejados en la tabla para una posterior combinación de correspondencia en WORD.
    Gracias

  17. veronica en Febrero 12, 2008 7:12 pm

    yo quiero saber en que campos se encuentra el programa acces

  18. sonia cañotte en Marzo 19, 2008 10:29 am

    necesito saber como restar de la misma columna resta el nro mayor conelnumero menor es decir:
    m L
    2 2
    5 5-2=3
    6 1
    8 2
    Por favor solo necesito como restarlo.
    gracias

  19. mariana en Abril 18, 2008 1:01 am

    hola, quisiera saber como hacer consultas con parte de un texto o cadena. ej: que aparezcan solo las ciudades que empiezen por la letra “c”. no se como hacerlo. y como hago para que el nombre y el apellido de una persona me salga en una misma columna en la consulta.

  20. FMarinT en Abril 18, 2008 5:21 pm

    Hola Mariana, es muy sencillo lo q piensas hacer.
    Creas una nueva consulta y no agreges ninguna tabla. ahora ingresas al menu ver - Vista SQL y ahi digitas de esta forma.
    ——————
    select campo1,campo2,(campo3 + ” + campo4)as Nombres from NombreTabla where campo1 like ‘*c*’;
    ——————
    Los asteriscos(*) son comodines, eso quiere decir que antes y/o despues de la "c" pueden existir mas caracteres.

    Eso es todo,.
    bye, Lima-Perú

  21. YOLANDA en Mayo 8, 2008 1:49 pm

    Necesito crear una base de datos para venta de prensa para un kiosko y nose como crear las formulas para que cada vez que se vende una revista me reste una de las existencias.
    Si alguien me puede ayudar al email:
    YOLANDAKIOSKO@HOTMAIL.COM gracias.

  22. Sergio Enrique Perez en Mayo 22, 2008 3:30 am

    Hola Mariana, para que en una misma columna te aparezcan el nombre y los apellidos, en la consulta crea un campo nuevo y tecleas esta formula (por ejemplo):

    Nombre y Apellidos:[Clientes.PrimerApellido]+ ” ” + [Clientes.SegundoApellido]+ ” ” + [Clientes.Nombre]

    o puedes invertir el orden para que aparezcan comoquieras, en el ejemplo que te muestro el nombre apareceria al ultimo, y Clientes que aparece antes del punto (.), es la tabla de la que proviene el dato.

    Un saludo

  23. Sergio Enrique Perez en Mayo 22, 2008 3:40 am

    quisiera ves si me pueden ayudar con unas dudas que tengo:
    1.- Como hago o que bases debo utilizar para que usando un cuadro combinado (digamos teclenado el nombre) en otros campos de el formulario principal (este incluye un subformulario), me aparezca en otros campos la direccon, el telefono de el cliente (estos dos ultimos datos en campos diferentes), tengo el ejemplo de una base de datos y noté que en los campos en los que aparecen la direccion y telefono con solo teclear en un primer campo (campo combinado supongo) y vi que en los campos en los que automaticamente aparecen los datos que menciono arriba (cuadros de texto aparentan ser), escribio esto =idCliente.column(2) (en donde me aparece la direccion) y =idCliente.column(3) en donde me aparece el telefono, obviamente se que los numeros de columnas a que se refiere son los que corresponden a los de la tabla Cliente.
    En el cuadro combinado me aparece esto: idCliente, En el origen de la fina de dicho cuadro combinado el origen de la fila es el siguiente: SELECT Clientes.idCliente, Clientes.Cliente, Clientes.Direccion, Clientes.Telefono FROM Clientes;
    . Ya intente hacer lo mismo en otra BD, pero no me sale, cual es la base sobre la que debo basarme para que pueda yo hacerlo.
    de antemano, muchas gracias

  24. Jorge Recinos en Junio 3, 2008 4:05 pm

    Hola amigos:

    como puedo hacer para que un campo calculado en formulario, se pueda incluir en el informe.

    Se puede hacer esto????

    De antemano gracias por su respuesta.

  25. othoniel en Julio 13, 2008 12:09 am

    hola necesito saber como tomar el valor de un campo de un registro anterior, para reacer una nueva operacion, como le hago???,,

    Nombre entra salida saldo saldo_total
    jose 5 3 2 2
    edgar 4 3 1 3

    El saldo total de un registro anterior se debe sumar con la entrada restarle la salida y mostrarlo en salto total

    Gracias

  26. Elvira en Agosto 21, 2008 2:20 pm

    Estoy iniciándome en access y me ha ayudado mucho la parte aclaratoria de los “campos calculados” en access.
    Mil gracias

Nombre: (obligatorio)

Email: (obligatorio)

Web:

Comentario: