Access - Calcular un campo dependiendo si otro anterior su valor introducido es positivo o negativo

 
Vista:
sin imagen de perfil

Calcular un campo dependiendo si otro anterior su valor introducido es positivo o negativo

Publicado por JOSE (13 intervenciones) el 09/08/2017 00:17:14
Hola buenas a tod@s, pues bien resulta que estoy constuyendo una base de datos con access 2003 y tengo que resolver el siguiente calculo, que yo no consigo hacerlo del todo bien:

Tengo un campo calculado que se llama [RESULTADOBRUTO] y debe funcionar de la siguiente manera:
Cuando en el campo [CANTIDADE] se inteoduce un numero que es >0 "Positivo", entonces tiene que restar el campo [PRECIOEJECUCIONS] del campo [PRECIOEJECUCIONE] y cuando es <0 "Negativo", tiene que restar el campo [PRECIOEJECUCIONE] del campo [PRECIOEJECUCIONS] o sea al reves.

Ahora mismo voy mas o menos por aqui: RESULTADOBRUTO:=(([CANTIDADE]>0)[PRECIOEJECUCIONS]-[PRECIOEJECUCIONE]) Y( [CANTIDADE]<0)([PRECIOEJECUCIONE]-[PRECIOEJECUCIONS])

Gracias anticipadas.
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

Calcular un campo dependiendo si otro anterior su valor introducido es positivo o negativo

Publicado por Anonimo (3316 intervenciones) el 09/08/2017 01:07:06
Localiza información sobre IIF, te ayudara a resolver el problema de una forma sencilla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Calcular un campo dependiendo si otro anterior su valor introducido es positivo o negativo

Publicado por JOSE (13 intervenciones) el 10/08/2017 00:51:47
Hola Anonimo, antes que nada gracias por otra consulta que me ayudo mucho, en cuanto a esta he estado consultando IIF, pero ni en el libro que tengo ni en la ayuda de Access y despues de muchas pruebas logro que funcione, si pudieras extenderte un poco más te estaria muy agadecido.
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
sin imagen de perfil
Val: 153
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Calcular un campo dependiendo si otro anterior su valor introducido es positivo o negativo

Publicado por Jaime (72 intervenciones) el 09/08/2017 02:24:37
Creo que te podría funcionar de la siguiente manera:

1
Silnm([CANTIDADE]<0,[PRECIOEJECUCIONS]-[PRECIOEJECUCIONE],[PRECIOEJECUCIONE]-[PRECIOEJECUCIONS])

Revisa que estén bien escritos los campos por si se me fue alguna letra jeje

La lógica es la siguiente, Si CANTIDADE es menor a 0 entonces se resta PRECIOEJECUCIONE del campo PRECIOEJECUCIONS, de lo contrario si CANTIDADE no es menor a 0 se resta PRECIOEJECUCIONS del campo PRECIOEJECUCIONE.

No soy ningún experto en esto pero si me gusta compartir lo poquito que se jeje.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Calcular un campo dependiendo si otro anterior su valor introducido es positivo o negativo

Publicado por JOSE (13 intervenciones) el 10/08/2017 00:42:50
Hola Jaime, he introducido en el campo RESULTADOBRUTO tu respuesta, solo que tengo que cambiar las "," por ";" por el pais (es español de España) y queda asi:

RESULTADOBRUTO: Silnm([CANTIDADE]<0;[PRECIOEJECUCIONS]-[PRECIOEJECUCIONE];[PRECIOEJECUCIONE]-[PRECIOEJECUCIONS])

pero al intentar ver la vista de hoja de datos me responde este mensaje:

"undefined function 'Silnm' in expression"

"la funcion Silnm no esta definida en la expresión"

¿alguna idea?...

Gracias.
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

Calcular un campo dependiendo si otro anterior su valor introducido es positivo o negativo

Publicado por Anonimo (3316 intervenciones) el 10/08/2017 03:01:53
IIF <==> Silnm

Quizás no reconozca la traducción, aunque si escribes la expresión original (IIF) la entenderá y 'traducirá' sin mayor problema (algunas versiones y según sus actualizaciones presentan algún que otro Bug de ese tipo, para eso están las actualizaciones y las actualizaciones de las actualizaciones).

Si continua dando problemas(esa función esta presente en todas las versiones de Access) quizás exista algún problema con las referencias y/o librerías, algo que se ha de verificar en la ventana de VBA (que alguna ponga FALTA es un síntoma de ello).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Calcular un campo dependiendo si otro anterior su valor introducido es positivo o negativo

Publicado por JOSE (13 intervenciones) el 10/08/2017 23:48:09
Hola Anonimo buenas noches, tenias toda la razón, no admite Silnm pero si IFFy problema resuelto, muchas gracias por tu colaboración desinteresada.
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
sin imagen de perfil
Val: 153
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Calcular un campo dependiendo si otro anterior su valor introducido es positivo o negativo

Publicado por Jaime (72 intervenciones) el 10/08/2017 18:22:54
mmm la verdad mi version es Access 2016 de 64 bits y es en español latinoamerica ya que soy de México, no se hasta donde eso tenga algo que ver. hazle caso a Anonimo el saba mucho jeje
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Calcular un campo dependiendo si otro anterior su valor introducido es positivo o negativo

Publicado por JOSE (13 intervenciones) el 10/08/2017 23:43:07
Hola Jaime buenas noches desde España, acabo de resolver el problema, es que lo que dice Anonimo, no reconoce Silnm pero si IIF y ya funciona a la perfección, muchas gracias por tu aportación.
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
sin imagen de perfil

Calcular un campo dependiendo si otro anterior su valor introducido es positivo o negativo

Publicado por JOSE (13 intervenciones) el 13/10/2017 00:56:50
Desde hace bastantes días me surgio un nuevo problema con este campo llamado [RESULTADOBRUTO] y Anonimo y Jaime a los cuales sigo agradecido me ayudarón a resolver el problema, he avanzado mucho la BBDD, pero me ha surgido este problema:

Cuando introduzco en el campo [CANTIDADE] "Cantidad de Entrada" un número mayor que 1, por ejemplo 2, 3, 7,11, etc, "es decir >1 o más" ya sea + o - , no me calcula el resultado correcto, ya que para eso tengo que añadirle que el resultado lo multiplique por [CANTIDADE) es decir, quedaria asi:

RESULTADOBRUTO:( SiInm([CANTIDADS]<0;[PRECIOEJECUCIONS]-[PRECIOEJECUCIONE];[PRECIOEJECUCIONE]-[PRECIOEJECUCIONS])*[CANTIDADE]

pero entonces me calcula bien el resultado pero con mumero negativo cuando deberia se positivo y si le digo que lo calcule con el campo [CANTIDADS] "Cantidad de Salida" Silnm([CANTIDADE]<0;[PRECIOEJECUCIONS]-[PRECIOEJECUCIONE];[PRECIOEJECUCIONE]-[PRECIOEJECUCIONS])*[CANTIDADS] entonces me lo hace al reves es decir me da un mumero positivo en vez de negativo que es lo que deberia darme. Hay que tener en cuenta que si yo pongo en el campo [CANTIDADE] un número " + " su contrapartida en el campo [CANTIDADS] siempre por logica sera " - " sea la cantiada que sea, par que así quede cerrada la operación, escir si "compro" tengo que "vender" y si "vendo" tengo que "conprar".

He intentado hacer esto pero no me funciona, tampoco se si es lo correcto y es evidente que no loes cuando no me funciona:

RESULTADOBRUTO:( SiInm([CANTIDADS]<0;[PRECIOEJECUCIONS]-[PRECIOEJECUCIONE];[PRECIOEJECUCIONE]-[PRECIOEJECUCIONS])*[CANTIDADE]);(SiInm([CANTIDADS]<0;[PRECIOEJECUCIONS]-[PRECIOEJECUCIONE];[PRECIOEJECUCIONE]-[PRECIOEJECUCIONS])*[CANTIDADS])

Es decir dandole las dos opciones separadas por el " ; " pero me da el siguiente mensaje de error informativo:

La sintaxis de la expresión que introduzco no es válida o debe encerrar entre comillas los datos de texto.
Es posible que introducido una coma no válida o que haya omitido (aunque pone "emitido" yo creo que es omitido, poblemente u error de traducción) las comillas.
Por ejemplo, si la propiedad Valor predeterminado de un campo de texto es "Huey Loui" y "Dewey", debe encerrarla entre comillas si es una cadena literal de texto. Esto evita confusiones con la expresión "Huey Loui" y "Dewey".

En España no funciona con la " , " es con " ; " lo he probado con la " , " y tampoco funciona, pero he dicho antes, repito no se si esta formula es la correcta o no, no se me ocurre ahora mismo otra cosa.

Si alguien me puede ayudar mil gracias anticipadas.
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

Calcular un campo dependiendo si otro anterior su valor introducido es positivo o negativo

Publicado por Anonimo (3316 intervenciones) el 13/10/2017 22:03:51
No entro en los cálculos que aplicas ni donde los aplicas (se parte del supuesto de que sabes lo que deseas y de que en matemáticas 2+2=4)

Lo que si aprecio es que no entiendes como funciona la función IIF .....

En base a un resultado Verdadero/Falso se aplica una de las DOS opciones (se separen con comas, punto y coma o un foso lleno de cocodrilos, pues eso dependerá de la configuración regional)

Si se desea encadenar MAS DE UNA ALTERNATIVA hay que razonar como lo intenta hacer la maquina y es tan sencillo como cambiar una (o las dos) opciones por otros IIF que devolverían a su vez dos alternativas

Un supuesto:
Si el color de la tela es blanco: se hacen velas para barcos, si no lo es: trapos para fregar

IIF (Color = blanco, Velas, Trapos)

Pero ... si el color no es blanco desearíamos que por su tamaño se les diese diferente uso, uno (los pequeños) para trapos, los grandes para cortinas ...

IIF (Color = blanco, Velas, IIF(Tamaño = pequeño, Trapos, Cortinas))


Y así se puede continuar anidando ¿Qué cuántos anidamientos? ... depende de la versión (y eso aparecerá en la ayuda del propio Access)
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