Access - Controlar nulos en Consulta / Informe

   
Vista:

Controlar nulos en Consulta / Informe

Publicado por gollar (1 intervención) el 12/05/2014 12:53:38
Hola:

Tengo una BBDD en Access, que tiene varias consultas e informes que obtienen los totales de diferente información.

Esos totales, luego los muevo a un formulario y los muestro en cuadro de textos, o cuadros de lista.

Cuando saco información por fechas amplias, no hay problema porque generalmente hay valores para todas las casuisticas, el problema viene cuando consulto datos para un día, porque no hay datos, por tanto las consultas no sacan registros, y los informes que obtienen los totales fallan porque no hay datos...

Cual es la solcuión menos costosa, ya que tengo muchos campos? Se me ocurren algunas opciones:

- Meter una validación por código en cada cuadro de texto, en el evento "Antes de actualizar" para validar si el campo es nulo, entoces que ponga 0 (Lo malo es que son muchos campos..)

- Crear una especie de" registros básicos", que siempre existan, y luego restarlos de los totales.. (Muy engorroso..)

- Ponerles un valor por defecto, probé poniendo 0 en Valor predeterminado, pero no me funcionó..

Muchas 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 Norberto

Controlar nulos en Consulta / Informe

Publicado por Norberto (432 intervenciones) el 13/05/2014 08:55:29
Hola.

No entiendo si el problema se da cuando no existen registros que cumplen las condiciones o que, cuando dejas un cuadro de texto en blanco, no lo considera como cualquier valor; o que los cuadros de texto en blanco quieres que los tome como 0.

Para el primer caso, puedes hacer que si no hay datos a mostrar, no se abra el informe con el siguiente código en el evento Al no haber datos:

1
2
3
Private Sub Report_NoData(Cancel As Integer)
    Cancel = True
End Sub

La segunda opción es más complicada de enteder o de explicar, pero lo intento:

En las consultas, lo que hacemos para comparar un campo con un control de un formulario dado es poner el campo en la celda correspondiente al mismo y en la celda Criterios, la referencia al control del formulario con la expresión [Formularios]![Nombre del formulario]![Nombre del control]. Si el control lo dejamos en blanco, no habrá ningún registro que cumpla la condición. Para hacer que en ese caso entienda que son todos debemos invertir el tema. Es decir: en la fila campo ponemos la referencia al control en el formulaio ([Formularios]![Nom...) y en la casilla Criterios ponemos [NombreDelCampo] O Es Nulo.

No se si se entiende.

Tercer caso:
Para referirnos a un control y que tome valor 0 si está en blanco, podemos usar la función Nz([Campo]; 0)

Un saludo,

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