Access - Codigo para sustituir un valor

   
Vista:
Imágen de perfil de Salvador

Codigo para sustituir un valor

Publicado por Salvador (65 intervenciones) el 17/05/2016 11:14:41
Tengo un control calculado y me gustaría que cuando el resultado sea "100" se mostrara "0"
El valor del control es" =100-(miDivision([sumapreco];[materiales])*100)"
Siendo miDivision una funcion que es:
1
2
3
4
5
6
7
8
Public Function miDivision(dividendo As Variant, divisor As Variant) As Double
If IsNull(dividendo) Then dividendo = 0
If divisor = 0 Or IsNull(divisor) Then
miDivision = 0
Else
miDivision = dividendo / divisor
End If
End Function
Cuando no hay [materiales] el resultado me da "100" y quisiera que fuera "0"

Gracias de antemano por vuestra ayuda

Salva
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

Codigo para sustituir un valor

Publicado por Enrique Heliodoro (1663 intervenciones) el 17/05/2016 12:09:34
El concepto 'materiales' no existe en la función, se tendría que utilizar DIVISOR

Y esa opción no esta contemplada de forma individual (se la combina con la opción cero).

Opciones hay dos, que sea cero o que no exista y lo primero es definir si ambas reciben el mismo tratamiento o no, en cualquier caso para que (si se da esa circunstancia) el resultado final sea cero, lo adecuado es que se devuelva un cien (en lugar de un cero) en base a que:
100 - 100 = 0
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

Codigo para sustituir un valor

Publicado por jose (741 intervenciones) el 17/05/2016 12:45:55
If IsNull(dividendo) Then dividendo = 0 : exit function
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

Codigo para sustituir un valor

Publicado por Enrique Heliodoro (1663 intervenciones) el 17/05/2016 13:35:31
Excelente lógica matemática:
Con esa aportación la Función devuelve un cero así que la aplicaremos:

original: =100-(miDivision([sumapreco];[materiales])*100)
=100-(miDivision([sumapreco];[materiales])*100) ==> 100-(0 *100) ==> 100 -(0) = 100

Mi respuesta anterior tampoco era la correcta, pues dado que la aplicación (formula) inicial multiplica lo devuelto por la función por cien lo correcto es que devuelva a la unidad:
=100-(miDivision([sumapreco];[materiales])*100) ==> =100-(1 *100) ==> 100 - 100 = 0
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