Ordernar DBGrid por data?

Delphi

09/06/2013

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!
Matheus Gomes

Matheus Gomes

Curtidas 0

Respostas

Marco Salles

Marco Salles

09/06/2013

Pádua (Rj), legal..

Como esta definido o tipo deste campo no Seu BD e qual é o seu BD ???
GOSTEI 0
Matheus Gomes

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
 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

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
GOSTEI 0
Matheus Gomes

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?
GOSTEI 0
Marco Salles

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

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

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. =]
GOSTEI 0
Marco Salles

Marco Salles

09/06/2013

Falou Gomes ..Um abç e sdç
GOSTEI 0
POSTAR