Campo nulo que no es considerado nulo

Cerrado
baldomero123 Mensajes enviados 9 Fecha de inscripción viernes, 25 de noviembre de 2011 Estatus Miembro Última intervención jueves, 26 de enero de 2012 - 11 dic 2011 a las 13:07
baldomero123 Mensajes enviados 9 Fecha de inscripción viernes, 25 de noviembre de 2011 Estatus Miembro Última intervención jueves, 26 de enero de 2012 - 11 dic 2011 a las 14:19
Buenos días:
Estoy haciendo una aplicación con una BD Access y en VB2010. La tabla se llamada Otrosvalores y hay un campo llamado depositoen que me interesa que unas veces esté lleno y otra, no (como los pimientos de Padrón, vamos).
Pero cuando quiero contar los registros con el campo lleno y NULL me da que siempre está el campo lleno.
Este campo en la tabla está como para admitir valores de extensión cero y en el programa cuando no entro nada, nada pasa al DataSet y nada pasa a la tabla. No hay nada de "si el campo está vacio... entonces entra...". NO.
Los registros de la tabla son 21, 20 con el campo lleno y 1 con el campo vacio, al que no he entrado nada, NULL, entiendo yo, ¿no?
'query = "SELECT COUNT(*) from otrosvalores where (Not IsDBNull(otrosvalores.depositoen))" 'Me da 21. como si no hubiera ningún campo nulo
'query = "SELECT count(*) FROM Otrosvalores WHERE not ISDBNULL(depositoen) " 'Igualmente me da 21
query = "SELECT COUNT(*) FROM Otrosvalores WHERE depositoen IS NULL" 'Me dice que no hay ningún campo NULL, me da cero.
Sin duda debe ser un error de sintaxis, pero me he repasado la amplia variedad que hay para tratar este asunto y ya no sé cuál debo aplicar.
Una cosa que podría hacer sería pedirle que me mostrara qué hay en ese campo al que no he entrado nada. A menos que simplemente con pasar por encima de él con el tabulador ya se haya metido un espacio y ya no esté NULL.
¿Me podréis ayudar? Mil gracias.

1 respuesta

baldomero123 Mensajes enviados 9 Fecha de inscripción viernes, 25 de noviembre de 2011 Estatus Miembro Última intervención jueves, 26 de enero de 2012
11 dic 2011 a las 14:19
Solucionado. No de la forma más elegante, pero funciona:
SELECT COUNT(*) FROM Otrosvalores WHERE LEN(Otrosvalores.depositoen) > 1
Esto es como el sargento que no consiguió que sus soldados distinguieran entre "derecha" e izquierda" a la hora de hacer la instrucción para que marcaran el paso y les puso zapatillas blancas en un pie y negras en la otra. Y en vez de decir "derecha", "izquierda" decía "la blanca", "la negra". De cualquier forma me gustaría conocer la forma más correcta de solucionar este filtro.
0