Ordernar DBGrid por data?
Galera, procurei em vários fórums e não achei a resposta.
É o seguinte, quero ordernar meu DBGrid por data; os outros campos eu ordenei da seguinte maneira, por exemplo, por cliente.
Ex.: AdoTable1.IndexFieldsName:='Cliente';
Ordenei todos os campos dessa maneira, porém quando vou ordernar a data, eu não consigo.
Se tiver uma data 10/05/2013 e uma 09/10/2013, a segunda data fica em primeiro lugar, pois o dia é menor.
Me ajudem galera!
É o seguinte, quero ordernar meu DBGrid por data; os outros campos eu ordenei da seguinte maneira, por exemplo, por cliente.
Ex.: AdoTable1.IndexFieldsName:='Cliente';
Ordenei todos os campos dessa maneira, porém quando vou ordernar a data, eu não consigo.
Se tiver uma data 10/05/2013 e uma 09/10/2013, a segunda data fica em primeiro lugar, pois o dia é menor.
Me ajudem galera!
Matheus Gomes
Curtidas 0
Respostas
Marco Salles
09/06/2013
Pádua (Rj), legal..
Como esta definido o tipo deste campo no Seu BD e qual é o seu BD ???
Como esta definido o tipo deste campo no Seu BD e qual é o seu BD ???
GOSTEI 0
Matheus Gomes
09/06/2013
É, já veio aqui em Pádua? ;)
Bom... Tenho um banco de dados em access e usei o AdoConnection para ligá-lo ao Formulário. Adicionei um AdoTable que está ligado a um DataSource, junto a um DBGrid.
Coloquei as opções de entrada como, por exemplo, Cliente, Endereço, Data de Entrada, etc.
Preencho esses campos, salvo e o DBGrid os armazena.
Coloquei um MainMenu com opções para ordernar, assim:
Ordernar por
Cliente
Endereço
Data de Entrada
Para ordernar por cliente usei esse código
mas não estou conseguindo ordernar por data.
No access, o campo Data de Entrada está no formato Texto, e no formato Data/Hora também não dá certo.
No formulário, para digitar a Data eu uso um DBEdit com márcara.
Espero ter passado todas as informações necessárias. Me ajudem, por favor!
Bom... Tenho um banco de dados em access e usei o AdoConnection para ligá-lo ao Formulário. Adicionei um AdoTable que está ligado a um DataSource, junto a um DBGrid.
Coloquei as opções de entrada como, por exemplo, Cliente, Endereço, Data de Entrada, etc.
Preencho esses campos, salvo e o DBGrid os armazena.
Coloquei um MainMenu com opções para ordernar, assim:
Ordernar por
Cliente
Endereço
Data de Entrada
Para ordernar por cliente usei esse código
AdoTable1.IndexFieldNames:='Cliente';
mas não estou conseguindo ordernar por data.
No access, o campo Data de Entrada está no formato Texto, e no formato Data/Hora também não dá certo.
No formulário, para digitar a Data eu uso um DBEdit com márcara.
Espero ter passado todas as informações necessárias. Me ajudem, por favor!
GOSTEI 0
Marco Salles
09/06/2013
formato data/Hora não dá certo ??? Verifique esta informação , pois o Delphi trata data como números e certamente o
numero com a data maior corresponde a um número maior que a Data menor
No caso de texto tb esta correto a ordenação ... porque primeiro ele entende que o Um da data 10/05/2013 e maior que o Zero da data 09/10/2013 ...
Não sei o Acess pois não utilizo , não sei se um cast do formato em data String para o Formato Data resolveria
Logo sugiro refazer o teste com o formato do Campo em Data mesmo , pois esta estranho vc dizer que não deu certo
numero com a data maior corresponde a um número maior que a Data menor
No caso de texto tb esta correto a ordenação ... porque primeiro ele entende que o Um da data 10/05/2013 e maior que o Zero da data 09/10/2013 ...
Não sei o Acess pois não utilizo , não sei se um cast do formato em data String para o Formato Data resolveria
Logo sugiro refazer o teste com o formato do Campo em Data mesmo , pois esta estranho vc dizer que não deu certo
GOSTEI 0
Matheus Gomes
09/06/2013
Se eu deixar como texto ele ordena, porém somente pelo dia.
Por exemplo, se eu tiver as datas 11/05/2013 e 09/06/2013, ele coloca primeiro a data 09/06/2013.
Alterei o campo no access para Data/Hora, mas no Delphi apareceu o seguinte erro:
"ADOTable1: Type mistatch for field 'Data de Entrega', expecting: WideString actual: DateTime."
Mudando o campo no access preciso mudar algo no Delphi também?
Por exemplo, se eu tiver as datas 11/05/2013 e 09/06/2013, ele coloca primeiro a data 09/06/2013.
Alterei o campo no access para Data/Hora, mas no Delphi apareceu o seguinte erro:
"ADOTable1: Type mistatch for field 'Data de Entrega', expecting: WideString actual: DateTime."
Mudando o campo no access preciso mudar algo no Delphi também?
GOSTEI 0
Marco Salles
09/06/2013
Não é pelo dia .. ele não sabe que se trata de um dia .. Ele interpreta como String e ordena como String
sim , precisa remover os fields e adiciona-los novamente
Mudando o campo no access preciso mudar algo no Delphi também?
sim , precisa remover os fields e adiciona-los novamente
GOSTEI 0
Matheus Gomes
09/06/2013
Cara, deu certinho aqui como o campo como Data/Hora.
O problema é que eu não estava removendo e adicionando novamente os campos.
Muito obrigado, fico te devendo essa. =]
O problema é que eu não estava removendo e adicionando novamente os campos.
Muito obrigado, fico te devendo essa. =]
GOSTEI 0
Marco Salles
09/06/2013
Falou Gomes ..Um abç e sdç
GOSTEI 0