Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-03-2008
gdlrinfo gdlrinfo is offline
Miembro
 
Registrado: may 2007
Posts: 131
Poder: 18
gdlrinfo Va por buen camino
Filtrado por fecha en access

Hola amigos tengo un programa completamente basado en access no hay sql ni nada por el estilo solo adotables y nada mas la pregunta es como puedo filtar en un dbgrid por fecha los datos en un ComboBox tengo los 12 meses quiero que cuando por ejemplo pongan enero me filtre todos los datos de el mes de enero en del dbgrid gracias y espero su respuesta saludos
Responder Con Cita
  #2  
Antiguo 22-03-2008
gdlrinfo gdlrinfo is offline
Miembro
 
Registrado: may 2007
Posts: 131
Poder: 18
gdlrinfo Va por buen camino
Question ?

?????????????????????????
Responder Con Cita
  #3  
Antiguo 22-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
no se como se manejan los filtros en acces, pero necesitaras algo asi:

suponiendo que nMes sea el numero del mes a filtrar, y nAyo el año:

Código Delphi [-]
var
   FechaIni, FechaFin: TDate;
begin
   FechaIni := EncodeDate(nAyo, nMes, 1);
   FechaIni := EncodeDate(nAyo, nMes, DaysinaMonth(nMes));
   Tabla.Filtered := False;
   Tabla.Filter := '(Fecha >= ' + QuotedStr(DatetoStr(FechaIni)) + ') and (Fecha <= ' + QuotedStr(DatetoStr(FechaIni)) + ')';
   Tabla.Filtered := True;
end;

Pero te repito no se si el formato de la fecha te dara error en el filtro, por eso es preferible el SQL y los parametros.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 22-03-2008
gdlrinfo gdlrinfo is offline
Miembro
 
Registrado: may 2007
Posts: 131
Poder: 18
gdlrinfo Va por buen camino
Ok

Amigo te cuento que lo pongo pero me tira error de conversion de datos que podra ser ???
Nesecito saber si esto se puede hacer con access desde ya muchas gracias

Última edición por gdlrinfo fecha: 22-03-2008 a las 11:39:14.
Responder Con Cita
  #5  
Antiguo 22-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
como te decia, no se como acces maneja las fechas asi que ese error es por el formato, ahora prueba esto:

Código Delphi [-]
var
   FechaIni, FechaFin: TDate;
begin
   FechaIni := EncodeDate(nAyo, nMes, 1);
   FechaIni := EncodeDate(nAyo, nMes, DaysinaMonth(nMes));
   Tabla.Filtered := False;
   Tabla.Filter := '(Fecha >= ' + DatetoStr(FechaIni) + ') and (Fecha <= ' + DatetoStr(FechaIni) + ')';
   Tabla.Filtered := True;
end;
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #6  
Antiguo 24-03-2008
gdlrinfo gdlrinfo is offline
Miembro
 
Registrado: may 2007
Posts: 131
Poder: 18
gdlrinfo Va por buen camino
hola

amigo como estas hay algo que no entiendo bien como hago yo para que en un combo box el programa se de cuenta de que mes elige y sepa que dias hay en ese mes eso es lo que nose como introducirlo a tu codigo gracias y espero tu respuesta saludos
Responder Con Cita
  #7  
Antiguo 24-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
si el combo box va de Enero a Diciembre podrias hacer

nMes := combobox.itemindex + 1;


y el año tambien debes darlo a elegir
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #8  
Antiguo 25-03-2008
gdlrinfo gdlrinfo is offline
Miembro
 
Registrado: may 2007
Posts: 131
Poder: 18
gdlrinfo Va por buen camino
Buenisimo

Gracias amigo ahora ya te entendi solo tengo un error es en DaysinaMonth me lo tira como no declarado lo declaro como variable y me dice que DaysinaMonth(nMes) no es un operador existente ?? que puede ser ?? gracias por todo y espero tu respuesta saludos!!!
Responder Con Cita
  #9  
Antiguo 25-03-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por gdlrinfo Ver Mensaje
Gracias amigo ahora ya te entendi solo tengo un error es en DaysinaMonth me lo tira como no declarado lo declaro como variable y me dice que DaysinaMonth(nMes) no es un operador existente ?? que puede ser ?? gracias por todo y espero tu respuesta saludos!!!
Hola gdlrinfo,
Como recomendación:
1. Cuando hables de errores, transcribe el mensaje textual. Por ello te invito a leer la guia de estilo. No somos adivinos, y conocer el error exacto que te produce es de importancia para saber como darle solución y/o investigación.
2. No copies código sin estudiar. Creería, que la función se llama DaysInMonth, y el código expuesto es DaysInAMonth. Una pequeña letra puede ser motivo de error... y esto me lleva a que cuando uno recibe el código lo mínimo que debe hacer es estudiarlo. ¿Buscaste en la ayuda sobre dicha función?
Yo diría que es posible que no tienes declarada en la sección uses la unit DateUtils.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #10  
Antiguo 25-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Mi querido Delphius esa funcion no es un error si existe, de hecho no la conocia, la descubri en este interesante hilo, leelo para que aprendas de que va la cosa, y tambien me inclino a pesar que para solucionar el error se debe incluir la uses dateutils
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #11  
Antiguo 26-03-2008
gdlrinfo gdlrinfo is offline
Miembro
 
Registrado: may 2007
Posts: 131
Poder: 18
gdlrinfo Va por buen camino
Smile Hola amigo

Como estas te cuento el problema es otro ahora agrege el dateutils te pongo el codigo mas abajo el tema es asi cuando uso el combo box no me muestra nada en el dbgrid nose que estoy haciendo mal pero se queda en blanco.
Código Delphi [-]
procedure TLegajo.ComboBox1Change(Sender: TObject);
var
   FechaIni, FechaFin: TDate;
   nmes, nayo : Word;
begin
   nMes := combobox1.itemindex + 1;
   nayo:=2008;
   FechaIni := EncodeDate(nAyo, nMes, 1);
   FechaIni := EncodeDate(nAyo, nMes, DaysInMonth(nMes));
   Table1.Filtered := False;
   Table1.Filter := '(Fecha >= ' + DatetoStr(FechaIni) + ') and (Fecha <= ' + DatetoStr(FechaIni) + ')';
   Table1.Filtered := True;
end;
end.

POr otro lado una duda que no tiene nada que ver yo cuando hacia que el programa corriera paso a paso antiguamente ponia el cursor del mouse sobre la variable y me mostraba el valor que contenia ahora no lo miuestra alguna idea de esto tambien cabe destacar que uso el delphi 10 lite gracias y espero su respuesta!! saludos!!

Última edición por gdlrinfo fecha: 26-03-2008 a las 01:54:22.
Responder Con Cita
  #12  
Antiguo 26-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
y seguro que hay items que cumplan con la condicion??, otra cosa, porq no das a elegir el año??
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #13  
Antiguo 26-03-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por eduarcol Ver Mensaje
Mi querido Delphius esa funcion no es un error si existe, de hecho no la conocia, la descubri en este interesante hilo, leelo para que aprendas de que va la cosa, y tambien me inclino a pesar que para solucionar el error se debe incluir la uses dateutils
La verdad es que la desconocía.

Gracias Eduardo... gracias por presentarmela. A ver si en algún momento se me hace la dificil

Por otro lado, veo que el código expuesto por gdlrinfo habla de DaysInMonth, y como tu dices es DaysInAMonth. ¿Se trata de un error de tipeo por parte de gdlrinfo?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #14  
Antiguo 26-03-2008
gdlrinfo gdlrinfo is offline
Miembro
 
Registrado: may 2007
Posts: 131
Poder: 18
gdlrinfo Va por buen camino
buenas

Hola amigos si los items cumplen con las funciones mira el año no lo doy a elegir porque lo uso para pobrar luego de que vea que esto funciona ok el año lo voy a hacer tambien con un combo box.

Te paso a explicar como tengo todo armado la base de datos la conecto por medio de una coneccion udl despues pongo el dbgrid con un data source haciendo coneccion a la base de datos y despues la filtro como vos me decis en la base de datos solo tengo la fecha nombre y apellido nada mas yo solo quiero que me indique los datos del mes que pongo.

Te comento que yo ya he filtrado otros dbgrid pero solo datos de personas te muestro a abajo pero eso no me sirve para lo que quiero:

Código Delphi [-]
procedure TMenuPrincipal.Edit1Change(Sender: TObject);
var
   Filtro : String;
begin
   If (Edit1.Text <> '') then
   begin
      Table1.Filtered := False;
      If combobox1.Text  = 'Nombre' then Filtro := 'Nombre Like'''+Edit1.Text + '*'''
        else If combobox1.Text = 'Apellido' then Filtro := 'apellido Like '''+ Edit1.Text + '*'''
         else If combobox1.Text = 'Nro Cliente' then Filtro := 'Ncliente Like '''+ Edit1.Text + '*''';
      Table1.Filter := Filtro;
      Table1.Filtered := True
   end
   else Table1.Filtered := False;
end;


bueno gracias y espero tu respuesta y si me podrias mandar algun ejemplo asi lo entiendo mejor te lo agradeceria mi mail es gdlrinfo@yahoo.com.ar
Responder Con Cita
  #15  
Antiguo 28-03-2008
gdlrinfo gdlrinfo is offline
Miembro
 
Registrado: may 2007
Posts: 131
Poder: 18
gdlrinfo Va por buen camino
??????????

????????????????
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
Buscar fecha en una tabla access dmassive Tablas planas 5 24-01-2008 19:24:07
Campo fecha en access rbeltran Conexión con bases de datos 1 12-01-2005 21:39:31
Campo fecha en access rbeltran Conexión con bases de datos 0 16-12-2004 19:46:34
campo fecha con access fearlex Conexión con bases de datos 2 14-07-2004 22:36:53
Consultas por fecha en access Mashabak Conexión con bases de datos 2 16-06-2004 19:33:17


La franja horaria es GMT +2. Ahora son las 01:07:23.


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