Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-03-2008
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
Delphitest Va por buen camino
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
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
  #2  
Antiguo 25-03-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
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;
Responder Con Cita
  #3  
Antiguo 25-03-2008
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
Delphitest Va por buen camino
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.
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
  #4  
Antiguo 25-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Prueba así:

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

Bye
Responder Con Cita
  #5  
Antiguo 25-03-2008
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 18
Delphitest Va por buen camino
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.
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
comparacion de un campo del DBGRID con Fecha. pmpisani Conexión con bases de datos 2 24-07-2007 22:41:05
un campo memo vacio? NSL94 SQL 1 25-04-2007 13:05:35
Llenar un DateTimePicker con un campo vacio CamiloU OOP 10 10-02-2006 13:58:11
Insertar un campo TimeStamp vacío?????? cybergerman SQL 1 29-09-2004 16:17:36
Consulta con campo fecha vacio jgutti Firebird e Interbase 1 12-05-2003 17:50:38


La franja horaria es GMT +2. Ahora son las 07:32:27.


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
Copyright 1996-2007 Club Delphi