Resultados diferentes con Is Null

Dudas sobre código
Avatar de Usuario
leadrudi
Nivel 6
Mensajes: 213
Registrado: Sab Oct 14, 2017 7:55 am

Resultados diferentes con Is Null

Mensajepor leadrudi » Vie Sep 11, 2020 7:04 pm

Hola.
En este caso me genera una duda muy grande por qué con campos texto me devuelve que no halló nada (y sé sin lugar a dudas que hay valores nulos en ese vCampo), pero con vCampo asociados a fechas me devuelve resultados correctos.

Código: Seleccionar todo

vCriterio = "([tabEmpleados." & vCampo & "]) Is Null"
:?: :!: :idea: :arrow: :oops: :( :o :) :D :geek: :ugeek:

Jilo
Nivel 2
Mensajes: 39
Registrado: Mié Dic 02, 2015 11:05 am

Re: Resultados diferentes con Is Null

Mensajepor Jilo » Sab Sep 12, 2020 7:30 am

No comprendo bien lo que quieres hacer pero porqué no pruebas así:
If isnull(vCampo) or Trim(len(vCampo))=0 then
...
Seguro que sí el TextBox está vacio no pasa ;)

Avatar de Usuario
leadrudi
Nivel 6
Mensajes: 213
Registrado: Sab Oct 14, 2017 7:55 am

Re: Resultados diferentes con Is Null

Mensajepor leadrudi » Lun Sep 14, 2020 1:30 pm

Supuse que podría ser confuso pero no lo aclaré porque generalmente me enredo demasiado. En realidad el código genera un criterio para eliminar resultados. vTabEmpleados es una variable que tiene la tabla de la que tengo que obtener datos (datos de contacto, domicilio, datos propios, etc.) y vCampo es el campo que se usará para traer los datos.
Llevado a valores específicos, podría quedar:

Código: Seleccionar todo

'En bruto:
vCriterio = "([tabEmpleados." & vCampo & "]) Is Null"
'La variable vCriterio con datos:
vCriterio = "([tabDomicilios.CALLE]) Is Null"

Entonces, en el ejemplo, debería traerme todos los registros de la tabla tabDomicilios donde CALLE no tenga datos.
El tema es que con valores TEXTO (por ejemplo, sin calle) no me trae datos pero sí me trae resultados con FECHA nulos (o sea, sin fecha).
:?: :!: :idea: :arrow: :oops: :( :o :) :D :geek: :ugeek:

pitxiku
VIP
Reto02
Mensajes: 478
Registrado: Sab Sep 30, 2017 6:23 pm

Re: Resultados diferentes con Is Null

Mensajepor pitxiku » Mar Sep 15, 2020 10:25 am

En el diseño de la tabla, ¿Como tienes las propiedades Permitir longitud cero y Requerido de los campos de texto? Según los tengas, en los campos de texto se estarán guardando cadenas de longitud cero en vez de nulos, y por eso la consulta no devuelve datos.

- https://docs.microsoft.com/es-es/office ... h-property

DaniLopez1991
Nivel 4
Mensajes: 95
Registrado: Lun Sep 23, 2019 2:12 pm

Re: Resultados diferentes con Is Null

Mensajepor DaniLopez1991 » Mar Sep 15, 2020 10:25 am

puede que la instruccion sea:

Código: Seleccionar todo

vCriterio = "([tabDomicilios.CALLE]) Is Null" OR "([tabDomicilios.CALLE]) LIKE '' "


Esto supongo que lo quieres es hacer un recorset.filter = vCriterio, pero si es gestionarlo con codigo lo mejor seria:

-Abrir un recorset de domicilios y poner:

Código: Seleccionar todo

 
while rsDomicilios.EOF
   if isnull(rsDomicilios!calle) or rsDomicilios!calle="" then
      'gestion de ese registro con el campo null
   endif   
next
LOOP

Avatar de Usuario
leadrudi
Nivel 6
Mensajes: 213
Registrado: Sab Oct 14, 2017 7:55 am

Re: Resultados diferentes con Is Null

Mensajepor leadrudi » Sab Sep 19, 2020 1:12 am

pitxiku escribió:En el diseño de la tabla, ¿Como tienes las propiedades Permitir longitud cero y Requerido de los campos de texto? Según los tengas, en los campos de texto se estarán guardando cadenas de longitud cero en vez de nulos, y por eso la consulta no devuelve datos.

- https://docs.microsoft.com/es-es/office ... h-property


Nunca entendí la diferencia entre "longitud cero SÍ" y "longitud cero NO".
pero de todos modos, en las tablas no modifico nada de requisitos y tal. Solamente lo hago mediante formulario y uno que otro campo indexado sin duplicados y la cantidad máxima de caracteres del campo. Así que están en bruto, como se crean. De todos modos en la otra respuesta (XX = '') me permitió resolverlo. Quizá tenga que ver con eso de longitud cero, pero como no sé cómo funciona, no sé qué usar para el resultado que necesit. Voy a investigar, pero al menos = "" me funcionó. Muchas gracias.
:?: :!: :idea: :arrow: :oops: :( :o :) :D :geek: :ugeek:


Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados