Problema con la función SiInm en Access 2007

Bueno estoy tratando( tratando por que tengo un conocimiento muy escaso de Access) de crear una base de datos para un negocio de transporte.

En mi documento tengo los sig campos:

1. Costo flete sin factura

2. Costo flete con factura

3. Costo total

4. Venta total

5. Utilidad sin factura

6. Utilidad con factura

El problema es que cuando yo añado información por ejemplo al campo "Costo flete sin factura" yo quiero que en la "Utilidad sin factura" me salga cero, la fórmula para sacar la "Utilidad sin factura" es [Venta total]-[Costo total] en la venta total va un valor sin embargo en el costo total va cero, digamos que el valor de la venta total es 50 y el del costo total es cero, como resultado me da 50, y lo que quiero es que me de 0.

Pero no siempre tiene que dar cero ya que si yo lleno el campo "Costo flete con factura" siempre me dará un resultado nunca se quedara en 0.

Investigue y trate de usar esta fórmula: [Venta total]-SiInm(Es Nulo([Costo total],(0),[Costo total]) pero no funciona.

2 Respuestas

Respuesta
2

Como supongo que los datos los pondrás a través de un formulario, en las propiedades del cuadro de texto Utilidad sin factura, en eventos-Al recibir el enfoque, puedes crear un procedimiento de evento y entre Private Sub y End Sub escribe

If not isnull([costo flete sin factura]) then

[utilidad sin factura]=0

else

[utilidad sin factura]=[venta total]-[costo total]

End if

Y así te evitas las consultas, o poner expresiones en el origen de control de un cuadro de texto.

Cuando escribas algo en el campo Costo... al llegar el cursor a Utilidad... te pondrá 0, y si no tienes nada escrito te pondrá la diferencia

Hola, mira ya intente con la nueva fórmula que me mandaste varias veces y me sigue marcando que hay un numero de argumentos incorrectos, todavía no he solucionado este problema, espero me puedas seguir ayudando.

Gracias.

Hola, no mira lo estoy haciendo a través de una consulta.

Espero me puedas ayudar, Gracias Icue Gonzalez.

Estoy de vacaciones y el lugar en que estoy, la conexión a internet no es lenta, es lentísima. Por eso creo que lo mejor es que te mande un ejemplo con tus campos y sobre él hablamos. Si quieres, repito, si quieres mándame un mensaje a [email protected] y te lo envío. Si lo haces en el asunto del mensaje pon tu alias Stephanie, ya que si no sé quien me escribe no los abro.

Mira, el problema de las consultas y de los campos calculados es que no son nada versátiles. Si miras, la inmensa mayoría de las respuestas se basan en código VB, que permite hacer prácticamente todo.

Respuesta
2

Me parece que te falto el comparador en la función. Intenta lo siguiente:

[Venta total] - Silnm(EsNulo([Costo total]=-1,0,[Costo total])

Cuando el valor de [Costo total] sea nulo, el valor que devuelve la función es -1, pruébalo y me comentas.

Slds Ronald

Hola, muchas gracias por contestar tan rápido. Aplique la fórmula y me sale el siguiente mensaje "La expresión que ha especificado contiene una función con un numero incorrecto de argumentos"

Espero me puedas ayudar, Gracias

Saludos!

Bueno no intente usar la fórmula que mostraste en un principio, solo la función Silnm pero quizá sea mejor que incluyas el campo [Venta total] dentro de Silmn, es decir.

Silnm(EsNulo([Costo total]=-1,[Venta total],[Venta total]-[Costo total])

Intenta, la verdad es que ya caigo de sueno, en caso no te funcione me cuentas y lo veo en algunas horas. Al rato te leo.

Quizá no has definido alguna cantidad como texto y eso puede que sea el error, revisa y me cuentas.

Slds Ronald

Hola, aplique de nuevo la fórmula que me sugeriste como segunda ocpcion y me pone que hay un numero incorrecto de argumentos.

Espero me puedas ayudar ya que no he solucionado este problema.

Gracias Ronald

Arme una tabla como la tienes configurada; a pesar de no comprender bien lo que necesitas, definí un campo calculado con algunas opciones como las que dices usar y funciona bien, si puedes subir algunas capturas para entender mejor lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas