Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ver un DBGrid con un campo fecha vacio... (https://www.clubdelphi.com/foros/showthread.php?t=54617)

Delphitest 25-03-2008 16:09:40

Ver un DBGrid con un campo fecha vacio...
 
Buenas tardes a tod@s,

estoy haciendo un sistema de busqueda con Delphi 7 muy sencillo para una aplicación que tiene una base de datos de Access.

El caso es que he metido un RadioGroup en el cual alguna opción debe filtrar un DBGrid de tal manera que muestre los registros cuyo campo Fecha1 (por llamarlo de alguna manera) este vacía.

Creo que me estoy liando ya que no soy capaz de filtrar la DB con esa condicion.

El campo Fecha1 logicamente tiene un formato fecha y no le puesto ninguna mascara cuando esta vacio, aunque a la hora de meter datos en el lo hago a traves de un MaskEdit con formato __/__/____ .

Estoy intendando utilizar:

Tabla.Filter := 'Fecha1 Like ' + ...

Para otro tipo de campo si que me está funcionando y aqui creo que me falla algo por el tipo de datos.

He probado:

Código:


Tabla.Filter := 'Fecha1 Like ' + '29/02/2008';
Tabla.Filtered := True;

y funciona sin problema para los registros cuya fecha sea esa pero no soy capaz de mostrar las vacias.

¿Alguna sugerencia que me sirva?

Gracias de antemano

duilioisola 25-03-2008 16:25:20

Puede ser que una fecha vacía sea 0 (cero).
Cero en una fecha corresponde a 01/01/1899 (o algo asi)

Por lo tanto, mi sugerencia es que filtres por las fechas que sean menores a 01/01/1900.

Código Delphi [-]
Tabla.Filter := 'Fecha1 <' + '01/01/1900';
Tabla.Filtered := True;

Delphitest 25-03-2008 17:09:19

Gracias por tu rápida respuesta.

He probado y aunque no da ningun error el filtro que aplica no es el de la fecha vacia ya que no aparecen los registros con esa condición.

Llego a la conclusión que lo que necesito es algo parecido a esto pero que sea válido par el formato de fecha ya que si lo pongo así me da error de tipo de datos.

Código:

Tabla.Filter := 'Fecha1 = ' +  '  ';

El caso es que el contenido del campo esta totalmente en blanco.

keyboy 25-03-2008 17:20:28

Prueba así:

Código Delphi [-]
Table1.Filter := 'fecha = null';

Bye

Delphitest 25-03-2008 18:13:54

Muchas gracias Keyboy,

funciona perfectamente.

Ya que estoy metido con las fecha y los filtros quizas me podais ayudar con unos errores que me aparecen, no se si hago bien en ponerlo en el mismo hilo, pero si esta relacionado con este tema.

A parte del radiogroup que me filtra en general la BD tengo un MaskEdit donde puedo hacer que el filtro sea por una fecha concreta o usando 2 MaskEdit a parte consigo un filtrar un determinado rango.

Si pongo las fechas completas y válidas no tengo ningun problema, pero si se da el caso que la fecha esta incompleta, por ejemplo si pongo solo el día o tambien poniendo una fecha no válida, el 23/43/2008 por decir algo, me salta un error logicamente y me detiene el programa.

Me gustaria conseguir en estos casos que el error estuviese "controlado", es decir que se avise al usuario que la fecha no es válida y poder seguir en el mismo MaskEdit pudiendo poner la fecha correcta y salir normalmente del programa. Tambien en el caso de poner solo el día en el MaskEdit lo ideal es que el mes y el año se rellenaran solos con los actuales.

Ufff, no se si me estoy explicando bien.

Gracias de todos modos.


La franja horaria es GMT +2. Ahora son las 21:41:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi