Contar campos vacíos, en el cual no hay insertado ningún dato.

En un formulario, tengo insertada la siguiente instrucción en un botón:

txtHombreA = DCount("SexoA", "TAltas", "Fecha Between Forms!FEstadistica1!txtfi.value and Forms!FEstadistica1!txtff.value and  [SEXOA] = 'Hombre'")

La cual me cuenta entre dos fechas el sexo, en este caso hombre. Me funciona bien

Ahora lo que quiero es que me cuente en el caso que el campo sexo se encuentre vacío, no tengo insertado nada, para lo cual he insertado la siguiente instrucción pero no me los cuenta.

txtsinespecificarA = DCount("SexoA", "TAltas", "Fecha Between Forms!FEstadistica1!txtfi.value and Forms!FEstadistica1!txtff.value and [SEXOA] = 'IsNull'")

Me podríais orientar como adapto la instrucción para que me cuente los campos que estén vacíos.

2 Respuestas

Respuesta
2

Tal como lo pones, te contará los campos en los que el campo sexoa tiene el valor "isnull"...

Para validar que sea nulo el campo, alguna de estás :

 ... and [SEXOA] =null")

... and [SEXOA] is Null")

... and nz([SEXOA],'')= '")

Acabo de caer en cual es el problema...

Al usar DCount() si indicas el nombre de un campo no tiene en cuenta los registros que contienen nulos en ese campo. Si los quieres tener en cuenta, has de usar el comodín * para hacer la cuenta.

Por tanto, si pones:

txtsinespecificarA = DCount("*", "TAltas", "Fecha Between Forms!FEstadistica1!txtfi.value and Forms!FEstadistica1!txtff.value and [SEXOA] Is Null")

o

txtsinespecificarA = DCount("*", "TAltas", "Fecha Between Forms!FEstadistica1!txtfi.value and Forms!FEstadistica1!txtff.value and IsNull([SEXOA])")

txtsinespecificarA = DCount("*", "TAltas", "Fecha Between Forms!FEstadistica1!txtfi.value and Forms!FEstadistica1!txtff.value and Nz([SEXOA],'')=''")

te tendría que funcionar (porque lo acabo de comprobar).

Un saludo.


Respuesta
2

Antonio: Prueba poniendo la parte final como ...

....And [SEXOA] IsNull"

Un saludo >> Jacinto

Gracias Jacinto  y Sveinbjorn por responder, pero he puesto lo que me dices (Jacinto) y me da error 3075, sintaxis (falta operador), también me respondió Sveinbjorn El Rojo y  he aplicado todas las soluciones y no me hace nada, es decir no me cuenta lo campos que están vacíos.

Decir por si sirve de ayuda que el campo sexo es un cuadro combinado y como origen de fila tiene hombre o mujer.

Un saludo. Para los dos

Antonio: Mis disculpas, ya que ahora al repasar me doy cuenta de que donde te pongo >>

IsNull debe ser Is Null

En cualquier caso y como citas, Sveinbjorn (un saludo), te da tres soluciones y es raro que no te funcione ninguna. Una es como la que te acabo de sugerir.

Quizá intentas contar Nulos y lo que tienes son cadenas vacías, por tanto prueba con>>

(And  [SEXOA] = Is Null Or [SEXOA] = "")

txtsinespecificarA = DCount("SexoA", "TAltas", "Fecha Between Forms!FEstadistica1!txtfi.value and Forms!FEstadistica1!txtff.value (And  [SEXOA] = Is Null Or [SEXOA] = ""))

Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas