Access - ¿Cómo puedo cambiar a cero un campo nulo de consulta?

   
Vista:

¿Cómo puedo cambiar a cero un campo nulo de consulta?

Publicado por Daniel (5 intervenciones) el 05/12/2014 17:08:11
Hola,
En una consulta que toma valores de dos tablas, Préstamos y Pagos, he creado un campo resta (Deuda). Quiero que no me aparezcan las filas en que la resta es 0, y que me aparezca la resta en las filas en las que el campo Importe de Pago, para el IdPedido correspondiente es Nulo, ya que en la tabla de Pago no hay registrado pago para ese IdPedido. Es decir, debiera poder, en la consulta, con alguna función IIF, cuando hay un valor Nulo en el campo Importe de Pago, transformarlo en cero, y a su vez quitar la línea cuando la resta dé cero. O poder hacerlo en el informe que toma como base a esta consulta. Gracias.
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
Imágen de perfil de Neckkito

¿Cómo puedo cambiar a cero un campo nulo de consulta?

Publicado por Neckkito (1104 intervenciones) el 08/12/2014 17:44:47
Hola:

Sustituye la columna [Importe de Pago] por un campo calculado así:

ImportePago: Iif(isnull([Importe de Pago]);0;[Importe de Pago])

Y en la columna [Deuda], en la línea de criterios, escribes como filtro:

<> 0

A ver si así consigues los resultados esperados.

Saludos,
firmaMail
http://neckkito.siliconproject.com.ar
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

¿Cómo puedo cambiar a cero un campo nulo de consulta?

Publicado por Daniel (5 intervenciones) el 09/12/2014 19:30:45
Hola,
He corregido a:

ImportePago: Iif(isnull([ImportePago]);0;[ImportePago])

Porque el campo se llamaba ImportePago.

Sin embargo, me da como error "La expresión que introdujo tiene una sintaxis no válida, Omitió un operando o un operador, etc."

Reviso la expresión, y la sucesión de paréntesis y corchetes está bien, puse la expresión en la fila de Campo, sustituyendo el campo (columna) donde estaba [ImportePago].

No entiendo cuál puede ser el error. ¿En el Access 2003 funciona el IIf?

Saludos,
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
Imágen de perfil de Neckkito

¿Cómo puedo cambiar a cero un campo nulo de consulta?

Publicado por Neckkito (1104 intervenciones) el 09/12/2014 20:37:12
Hola:

Al campo calculado no le puedes poner el mismo nombre que un campo existente:

Prueba con

ImporteDelPago: Iif(isnull([ImportePago]);0;[ImportePago])

A ver si te funciona.

Saludos,

Neckkito
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

¿Cómo puedo cambiar a cero un campo nulo de consulta?

Publicado por Daniel (5 intervenciones) el 10/12/2014 09:22:37
Hola Neckkito,

Ha sido copiar y pegarlo en la fila Campo de la consulta, darle a Intro, y obtener inmediatamente el mensaje:

"La expresión que introdujo tiene una sintaxis no válida."

Un saludo. Gracias,

Daniel
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
Imágen de perfil de Neckkito

¿Cómo puedo cambiar a cero un campo nulo de consulta?

Publicado por Neckkito (1104 intervenciones) el 10/12/2014 11:54:27
Hola!

Pues algo hay por ahí que no funciona como es debido. Te he preparado un ejemplo muy simple para que compruebes si te funciona (evidentemente a mí me funciona sin problemas).

El ejemplo te lo puedes bajar aquí: https://www.mediafire.com/?idjm7fyzdhx0cqc

Si no te fuera bien yo intentaría una reinstalación de Access, a ver si se te ha dañado algún archivo.

Ya me dirás qué tal.

Saludos,

Neckkito
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

¿Cómo puedo cambiar a cero un campo nulo de consulta?

Publicado por Daniel (5 intervenciones) el 11/12/2014 10:17:34
Buen día,
Cargué tu ejemplo y me funcionó, así que no es problema del Access.

Te adjunto tablas y consulta que estoy usando para poner a punto el programa, a ver si puedes decubrir dónde está el problema.

Un abrazo, y muchas gracias.

Daniel
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
Imágen de perfil de Neckkito

¿Cómo puedo cambiar a cero un campo nulo de consulta?

Publicado por Neckkito (1104 intervenciones) el 11/12/2014 11:28:56
Hola!

Le he echado un vistazo a tu ejemplo y no veo nada extraño. Te he preparado las modificaciones a la consulta para que puedas obtener el resultado que pedías. Te lo puedes descargar aquí: https://www.mediafire.com/?7sc7bug0nrepn3l

Si la BD revisada te funciona sin problemas intenta hacer lo siguiente en tu BD original (o en una copia, para mayor seguridad):

- Intenta escribir literalmente las expresiones de los campos calculados (ImporteDelPago y Deuda son los que te he cambiado)
- Intenta hacer un copy-paste de los campos calculados

Si en estos dos casos te da un error, de manera que en la BD revisada sí te funciona y en la BD, cuando lo escribes a mano o copias-pegas, te da error, entiendo yo que debe ser algún problema de tu Access (aunque parezca incomprensible -que lo es- que uno funcione y el otro no).

Puedes probar entonces de abrir el editor de VBE (con tu BD abierta pulsas la combinación de teclas ALT+F11) y te vas a Herramientas -> Referencias... y compruebas ahí si hay alguna de las referencias que tienen en check marcado que empiece por "FALTA:". Si es así miras qué referencia te dice que falta y la vuelves a registrar, a ver si así el problema se te corrige.

Si no es lo anterior pues... no sé qué decirte, salvo que, si tienes oportunidad, te lleves tu BD a otro ordenador y hagas la prueba de escribir el campo calculado a mano. Si en ese otro ordenador te funciona con toda probabilidad el problema está en el Access de tu PC. Solución: ¿volver a reinstalar Access? No sé si esa reinstalación solventaría el fallo.

Finalmente, y si la BD de ejemplo te funciona bien y en tu BD original no, puedes intentar, para parchear este caso, hacer lo siguiente:

- En tu BD original cambia el nombre de la consulta
- En tu BD original haces una importación de consulta -> Seleccionas la BD revisada -> Seleccionas la consulta -> Importas sólo esa consulta.
- Pruebas de nuevo si te funciona.

Y la verdad es que no sé qué más decirte ya... Resulta muy difícil ver dónde podría estar el error si no hay manera de recrearlo.

Ya me dirás si alguna de las acciones que te he propuesto ha funcionado.

Un saludo,

Neckkito
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

¿Cómo puedo cambiar a cero un campo nulo de consulta?

Publicado por Daniel (5 intervenciones) el 11/12/2014 14:25:16
Hola,
Bueno, es de locos. Como la consulta que modificaste era lisa y llanamente la que tenía en mi base, y lo que me enviaste me funcionaba en mi Access, para evitar toda posibilidad de error EXPORTÉ la consulta a mi base de datos. En la que me mandaste funciona, y en la mía me da "La función [SiInm] no está definida en la expresión.

Estoy pensando, en cuanto tenga tiempo, en exportar todos los formularios, tablas, etc., a la base que me has enviado, porque otra no veo.

Un saludo,
Daniel
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
Imágen de perfil de Neckkito

¿Cómo puedo cambiar a cero un campo nulo de consulta?

Publicado por Neckkito (1104 intervenciones) el 11/12/2014 15:33:53
Hola!

¿Has mirado si tenías las referencias en el VBE correctamente registradas (no te salía ninguna FALTA)?

Por otra parte, no sé si te será de utilidad, pero echa un vistazo a: http://www.todoexpertos.com/categorias/tecnologia-e-internet/consolas/dreamcast/respuestas/514571/siinm-no-esta-definida-en-la-expresion

Finalmente, si quieres pasarme tu BD para que le eche un vistazo, a ver si veo algo raro, mi correo es neckkito(ARROBA)gmail(PUNTO)com.

En fin... se me acaban los cartuchos...

Saludos,

Neckkito
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