Valor de campo dependiendo de valor de otro campo Access

En un formulario tengo un subformulario que recoge información de la factura pendiente por pagar del cliente. Hay clientes que no tienen facturas pendientes de pagar, por lo que el subformulario no muestra información.

Tengo un campo, [TotalFactura] en el formulario, que recoge el valor del campo [TotalFacturaSubf] del subformulario, pero cuando no muestra información (porque el cliente está al día de los pagos) el valor del campo da #Error.

Cómo podría indicar el valor del campo [TotalFactura] para que cuando el campo [TotalFacturaSubf] no exista tome el valor 0?

3 respuestas

Respuesta
1

Utilice NZ([TotalFacturaSubf])

Respuesta
1

Usa la función Nz por ejemplo

TextoB=nz([textoa])   si textoa es nulo TextoB=0

TextoB=nz([textoa],5), si textoA es nulo TextoB=5

TextoB=Nz([textoa],"Adios") si textoA es nulo Textob= Adios

Y eso es precisamente lo que te digo.

De todas formas no necesitas ese cuadro de texto del subformulario, pudiendo usar la propiedad Parent

Si quieres, dímelo y te mando un ejemplo.

Respuesta
1

Si en el subformulario no existen registros, no se crean los campos calculados, la función NZ quizás no logre resolver el problema.

Para circunstancias de este tipo están las funciones de error y asociadas, con ellas se puede simular a la función NZ, en particular para este caso utilizaría la que verifica si el contenido del objeto es un valor numérico.

= IIF(IsNumeric([TotalFacturaSubf]), [TotalFacturaSubf], 0)

Al final me ha servido la fórmula que incluye la referencia al subformulario, quedando así:

=SiInm(EsNum([PACalquilerControlRentasFacturasSubf].[Formulario]![TotalFacturaSubf]);([PACalquilerControlRentasFacturasSubf].[Formulario]![TotalFacturaSubf]);0)

por si a alguien le puede servir.

Gracias a todos por vuestra ayuda.

Un saludo.

La teoría es la correcta, su aplicación en la práctica siempre dependerá de los datos reales, tan valida es la referencia relativa como también lo sería su referencia absoluta (imprescindible desde otra ubicación externa al formulario).

En las repuestas que se han ofrecido se hace referencia directa al objeto (aun a sabiendas de que está ubicado en un subformulario), porque en parte alguna se menciona el nombre del subformulario (por ejemplo: publicando la expresión original comentándola como 'ahora tengo ...').

También está el detalle del separador de listas, la coma en VBA y en todas aquellas configuraciones regionales que no la utilicen como marcador decimal, por lo que en la configuración regional española (y fuera de VBA) se utiliza como separador el punto y coma (;) en su lugar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas