Tengo un error en el uso de la función slinm en un campo calculado en access

Tengo un campo calculado en una consulta donde resto las ventas a las compras para conocer mis existencias, pero si no he hecho ventas de un producto especifico, este no me sale en la consulta al no tener datos en la tabla ventas, utilice la función slinm y la expresión me quedo así:

(Silnm(IsError([Resumen compras]![SumaDeCantidad]),0,[Resumen compras]![SumaDeCantidad]))-(Silnm(IsError([Resumen Ventas]![SumaDeCantidad]),0,[Resumen Ventas]![SumaDeCantidad]))

Y me dice que la función Slinm no está definida en la expresión

1 respuesta

Respuesta
1

Francamente no se por que en tu expresión usas los "!"

Creo que en sql siempre es TAbla. Campo

¿Por qué no intentas sustituir los signos de admiración por puntos?

me cuentas...

Ha soluciondao su problema... de verdad me gustaría saber y que me diera un feedback su estoy equivocado

Hola, no estaba hace varias semanas, hoy intentaré con la sugerencia que me da y le comento si funciona, gracias por adelantado

Hola experto, probé con lo que me decías y no logro obtener el resultado que necesito, volví a escribir la fórmula y solo me devuelve los productos que tienen movimientos en ambas tablas, disculpa la complicación y muchas gracias desde ahora

Servisa si tienes activado el renglo de totales.. por ahí en no es da varias opciones, se pone por default "agrupar por" cambiala a expresión... toda columna donde tengas una expresión para calcular, debes poner expresión . prueba con eso tal vez eso sea

Hice el cambio que me sugiere, reescribí la expresión, incluso probé con la función Nz que según entiendo convierte un valor null en cero y me sigue devolviendo el mismo resultado, o sea, los productos que están en la tabla Compras que no han tenido ventas, no me salen en la consulta de existencias, disculpa tantas complicaciones, pero eso es lo que mas necesito hasta ahora y no lo he logrado, gracias por adelantado.

¿Me podría por favor copiar toda el código sql de tuconsulta aquí?

Por la consulta en modo sql y copia el código aquí.. lo voy a revisar con cuidado.

Este es el código SQL:

SELECT [Resumen Ventas].Id_Producto, [Resumen Ventas].Descripción, [Resumen compras].SumaDeCantidad, [Resumen Ventas].SumaDeCantidad, IIf([Resumen compras].[SumaDeCantidad],0)-IIf([Resumen Ventas].[SumaDeCantidad],0) AS Existencia
FROM [Resumen compras] INNER JOIN [Resumen Ventas] ON [Resumen compras].Código = [Resumen Ventas].Id_Producto
GROUP BY [Resumen Ventas].Id_Producto, [Resumen Ventas].Descripción, [Resumen compras].SumaDeCantidad, [Resumen Ventas].SumaDeCantidad;

También probé con la función Nz que es mas sencilla y siempre me devuelve el mismo resultado.

Aquí te pongo el código SQL cuando utilizo la función Nz para que si tienes tiempo lo revises también, cualquiera de las dos variantes que me de el resultado que necesito me sirve

Saludos y gracias nuevamente

Aquí esta el código SQL cuando utilizo la función Nz, en la pregunta anterior no te lo puse:

SELECT [Resumen Ventas].Id_Producto, [Resumen Ventas].Descripcion, [Resumen compras].SumaDeCantidad, [Resumen Ventas].SumaDeCantidad, Nz([Resumen compras].[SumaDeCantidad],0)-Nz([Resumen Ventas].[SumaDeCantidad],"0") AS Existencia
FROM [Resumen compras] INNER JOIN [Resumen Ventas] ON [Resumen compras].Codigo = [Resumen Ventas].Id_Producto
GROUP BY [Resumen Ventas].Id_Producto, [Resumen Ventas].Descripcion, [Resumen compras].SumaDeCantidad, [Resumen Ventas].SumaDeCantidad, Nz([Resumen compras].[SumaDeCantidad],0)-Nz([Resumen Ventas].[SumaDeCantidad],"0");

quizás sea fácil la solución, pero he probado con diferentes variantes y no logro resolver, te agradezco de antemano el interés y disculpa por tanto trabajo:

Prueba esto en ua nueva consulta...

SELECT [Resumen Ventas].Id_Producto, [Resumen Ventas].Descripción, [Resumen compras].SumaDeCantidad, [Resumen Ventas].SumaDeCantidad, Nz([Resumen compras].[SumaDeCantidad],0)-Nz([Resumen Ventas].[SumaDeCantidad],0) AS Existencia
FROM [Resumen compras] INNER JOIN [Resumen Ventas] ON [Resumen compras].Código = [Resumen Ventas].Id_Producto
GROUP BY [Resumen Ventas].Id_Producto, [Resumen Ventas].Descripción;

como te decía tienes las expresiones dentro del group by

esto es lo que tienes en group by

GROUP BY [Resumen Ventas].Id_Producto, [Resumen Ventas].Descripción, [Resumen compras].SumaDeCantidad, [Resumen Ventas].SumaDeCantidad, Nz([Resumen compras].[SumaDeCantidad],0)-Nz([Resumen Ventas].[SumaDeCantidad],"0");

Eso no debe estar ahí

Así que cambiale en el renglón de totales.. en lugar de decir agrupar por debes seleccionar expresión..

También quítale las comillas al "0" dentro de la función nz()

Me cuentas.

Nada, probé con la consulta que me mandó, modifiqué la expresión y nada, gracias por el interés, pero parece que no lograré resolverlo.

Saludos

Puedes madarme tu proyecto a [email protected] me sera mas fácil así..

Hola, el problema no estaba en la expresión ni en la función, parece que en algún momento, con todas las pruebas que hice, cambie el tipo de relación y por eso era que no obtenía el resultado, ya está resuelto, finalmente la consulta SQL era como me decías pero no devolvía todos los productos por ese error en la relación, ya está corriendo bien, gracias por todo, continuaremos en contacto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas