Pregunta

Tengo una tabla en MS Access 2007 con 4 campos.

  • Costo laboral
  • Horas laborales
  • IVA
  • Total

¿Cómo multiplico 'Horas laborales' por 'Costo laboral', agrego el 'IVA' y visualizo la respuesta en 'Total'?

¿Dónde pondría alguna fórmula ?, en un formulario o consulta o tabla?

Muchas gracias por cualquier ayuda

Scott

¿Fue útil?

Solución

También existe la forma ficticia (es decir, no SQL) de hacerlo: Primero elimine su columna total de su tabla y para este ejercicio pretenda que el nombre de su tabla es "Trabajo". .

Ahora cree una nueva consulta y visualícela en la vista de diseño, agregue todos los campos de su tabla Labor (para que pueda verificar que todo funcione), seleccione un campo vacío, haga clic con el botón derecho y seleccione " Generar " de la lista desplegable. Ahora debería tener una ventana del generador de expresiones.

Escriba el nombre de su campo calculado, p. labourTotal, sígalo con dos puntos ": " y luego seleccione los nombres de campo que desea agregar de Tablas en la parte inferior izquierda de la ventana del Generador de expresiones y haga doble clic en cada uno. Cada campo aparecerá en el generador de expresiones siguiendo el " Total: " ;. Ahora reemplace cada " & # 171; Expr & # 187; " con un '' + ''. Debería ver esto en el generador de expresiones: " labourTotal: [Labor]! [Labor Cost] + [Labor]! [Labor Hours] + [Labor]! [Vat] " ;. Haga clic en Aceptar y ejecute la consulta; si todo está bien, la columna total mostrará los resultados.

Otros consejos

No necesita el " Total " columna con toda probabilidad.

Sus consultas o informes probablemente se parecerán a esto:

SELECT [Total] = [Labour Cost] * [Labour Hours] + [VAT]

Puede usar el mismo tipo de fórmula en los controles de sus formularios o informes.

Si realmente necesita actualizar los datos en la columna Total:

UPDATE YourTableName SET [Total] = [Labour Hours] * [Labour Cost] + [VAT]


Sin embargo, un enfoque MUCHO mejor sería eliminar por completo la columna Total de la tabla y crear una consulta:

SELECT [Labour Cost], 
       [Labour Hours], 
       [VAT], 
       [Labour Hours] * [Labour Cost] + [VAT] AS [Total]
FROM YourTableName

La razón por la que se prefiere este enfoque es porque evita que accidentalmente coloque información incorrecta en la columna Total. En general, los datos pueden corromperse muy fácilmente si no tiene cuidado y puede ser un verdadero problema (si no imposible) solucionarlos. Te sugeriría google " Normalización de la base de datos " y lea un poco sobre esto, esto lo ayudará enormemente.

  1. re su% de IVA, espero no decir lo obvio, pero debería ingresar un decimal, p. .175 es 17.5%

  2. No puede simplemente agregar un porcentaje, debe multiplicarse por algo. Y debe incluir el 100% de la cantidad original. Entonces, si desea agregar un 17.5%, debe multiplicar por 1.175. Por lo tanto, suponiendo que: i) desea que el 100% se incluya automáticamente (es decir, solo tendrá que escribir .175) y que ii) el IVA debe agregarse a la cantidad total, y que iii) mediante " especifique " quiere decir que desea que se le solicite el IVA cada vez que se ejecuta la consulta; Entonces su fórmula debería ser:

Total: ([Gastos generales]! [Costo laboral] * [Gastos generales]! [Horas laborales] + [Costo de material]) * (1+ [ingrese el IVA como importe decimal?])

Crear una nueva consulta.

agrega tu tabla

agregue sus tres campos no totales a la consulta

en un nuevo tipo de campo:

total: [VAT] + [Labour Hours] * [Labour Cost]

ejecutar consulta

Scott dijo:

  

básicamente solo quiero hacer el   cálculos para que pueda mostrar el   total en pantalla y en un informe.

Como algunos han sugerido, puede hacer el cálculo en una consulta guardada y utilizarla como fuente de registros tanto para su informe como para su formulario.

Pero te sugiero que no hagas eso. Te sugiero que hagas los cálculos a la última hora posible. Para un informe, esto significaría que tendría un control en su informe que tiene como fuente de control el cálculo que desea realizar. De esta forma, solo se realiza para las filas que se imprimen en el punto en que se formatea la página.

Sugeriría lo mismo para un formulario excepto si desea ordenar o filtrar en el campo total. Los campos calculados en los formularios no se pueden usar para ordenar / filtrar, y pueden ser molestos por la lentitud con que se muestran en algunas situaciones. En ese caso, ignoraría mi consejo para evitar ponerlos en la consulta / fuente de registros, porque tiene una buena razón para calcularlo para todas las filas antes de la visualización real de los datos.

Pero en general, no coloque cálculos en una fuente de registros en la que no va a operar como grupo (filtrado, clasificación, agrupación).

Puede ponerlo como un campo calculado, en la consulta o en el formulario. Donde tiene sentido, es simple y tiene el nivel adecuado de reutilización. Si el cálculo es específico de una forma o vista de los datos, hágalo allí o en la consulta.

En este caso, puede prever que el total será un valor de uso frecuente y se aplicará lógicamente a la fila, por lo que es apropiado hacer un campo calculado. Los campos calculados tienen la ventaja de que (en la mayoría de los sistemas, no estoy seguro acerca de MSAccess) se pueden configurar para que solo se vuelvan a calcular cuando cambien los datos.

Si estuviera trabajando, diga la relación entre la cantidad y el tiempo de entrega, eso sería más algo que pondría en la consulta para el formulario / informe específico, ya que nunca se reutilizará y puede ser más cálculo considerable.

Normalmente elegiría hacer un cálculo en la consulta, a menos que se base en el resultado de otro cálculo, y hacerlo en la consulta podría ser un poco complicado, así que hágalo en el formulario / código.

Entonces, en resumen, donde sea apropiado para ese cálculo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top