Access - Operar campos vacíos y con valores

 
Vista:

Operar campos vacíos y con valores

Publicado por Héctor (8 intervenciones) el 22/09/2005 17:54:38
Creo campo calculado,
Para sumar varios campos, (algunos de ellos sin valor, tampoco “0”, es decir con campos vacios). Entonces uso el operador o función “Nz” para convertir los campos vacíos en “ceros” y así permitir la operación.
Efectivamente me permite la operación de suma entre campos vacíos y con valores, la cuestión es que le agrega en algunos casos milesimas ( por ej: 0,00000325) al resultado.
Este agregado me complica los cálculos posteriores en cuanto necesito que los campos que queden en cero ( para otras comparaciones )no se visualizen por ejemplo.
Es que comparo campos o resultados ( si no hay ceros, hay error ). Ocurre que siendo “0” , cuando coloco en los criterios de consulta “<> 0”: me muestra igual algunos registros (no siempre) que tienen “0” por la razón que les expliqué antes.

Otra, no puedo evitar que los campos sin valores estén vacíos, porque o sino me dificulta la carga y la visualización.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Evitar decimales adicionales al utilizar la función Nz en campos calculados

Publicado por Alejandro (4142 intervenciones) el 09/06/2023 18:36:10
Cuando utilizas la función Nz para convertir campos vacíos en ceros y realizar operaciones de suma, es posible que aparezcan decimales adicionales en el resultado debido a la naturaleza de los tipos de datos en Access. Para evitar esto, puedes aplicar la función Round para redondear el resultado a la cantidad de decimales deseada.

Aquí tienes un ejemplo de cómo modificar tu campo calculado utilizando la función Round:

1. Supongamos que tienes campos A, B y C que deseas sumar y el campo calculado se llama TotalSuma.

2. En el campo calculado TotalSuma, utiliza la función Nz para convertir los campos vacíos en ceros y luego aplica la función Round para redondear el resultado:

1
TotalSuma: Round(Nz(A, 0) + Nz(B, 0) + Nz(C, 0), 2)

En este ejemplo, se utiliza la función Round con un segundo argumento de 2 para redondear el resultado a 2 decimales. Puedes ajustar este valor según tus necesidades.

Al aplicar la función Round, los decimales adicionales en el resultado se eliminarán o se redondearán de acuerdo con la precisión especificada.

Recuerda adaptar el nombre de los campos y el número de decimales según tu escenario específico.

Es importante tener en cuenta que, aunque esta solución evita los decimales adicionales, aún se considerará el valor cero como distinto de campos vacíos en las consultas. Por lo tanto, si deseas excluir los registros que tengan un valor cero en los criterios de consulta, deberás utilizar un criterio adicional específico para ello, como:

1
WHERE TotalSuma <> 0 OR Nz(A, 0) <> 0 OR Nz(B, 0) <> 0 OR Nz(C, 0) <> 0

De esta manera, los registros que tengan todos los campos (incluido el TotalSuma) iguales a cero se exclurán de la consulta.

Espero que esta solución te ayude a evitar los decimales adicionales y te permita realizar los cálculos y comparaciones de manera adecuada en tus consultas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar