Resto en una consulta access

¿Cómo sería la función para preguntar por el resto de una división entre dos campos de una tabla access?

2 Respuestas

Respuesta

El Operador Mod en éste enlace.

https://docs.microsoft.com/es-es/dotnet/visual-basic/language-reference/operators/mod-operator 

Está muy bien explicado >> Saludos >> JTJ

Unas figuras de lo que te he citado:

Y Obtienes:

Un saludo >> JTJ

Respuesta

Se puede hacer por consulta, pero ¿Qué pasa cuando alguno de los campos no tiene datos o el segundo campo es cero? Como en el ejemplo de Jacinto, obtenemos en la consulta #!Div/0! y ¿Qué pasa si necesitamos los datos de la columna para realizar operaciones?, tendríamos problemas. Ahora no podemos utilizar en la consulta IIF() para hacer las validaciones, podríamos asegurarnos que nos retorne "" o N/D, pero el resultado sería tratado como TEXTO. Igualmente si tuviéramos que hacer un UPDATE se presentaría el Error.

Para solucionar el error la única forma es hacer una función o procedimiento que mediante DAO o ADO recorra los registros y haga la validación, la diferencia con la consulta es que se debe adicionar un campo en la tabla para calcular el resto. Observe este ejemplo.

TABLA

Adicioné la columna "resto".

Función para hacer el calculo y actualización

La puede llamar desde la ventana de inmediato o desde un botón de un formulario.

Resultado de la actualización

Observe que el idarticulo 4 no tiene valor en el campo prec_01 y en la columna "resto" quedó sin datos, igualmente el idarticulo 9 no tiene valor en el campo prec_02 y tampoco tiene información en el campo "resto"

NOTA: Si está seguro que las dos columnas tienen datos no dude en utilizar la consulta, en este caso sobraría el campo "resto" en la tabla.

Espero le sirva, si quiere el ejemplo lo puede solicitar a [email protected], favor anotar en el asunto la consulta.

Se me olvidó comentarle que se puede hacer con consulta pero validando que los campos sean mayor a cero (>0), como mínimo el segundo campo se debe validar para evitar división por cero. Algo como:

En este caso se obtiene el resto de los registros que cumplan la condición. Algo como:

La diferencia con la función utilizando DAO es que de los 10 registros solo se obtienen 7 que cumplen la condición.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas