Fórum Ordernar DBGrid por data? #445009

09/06/2013

0

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

Responder

Posts

09/06/2013

Marco Salles

Pádua (Rj), legal..

Como esta definido o tipo deste campo no Seu BD e qual é o seu BD ???
Responder

Gostei + 0

09/06/2013

Matheus Gomes

É, 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!
Responder

Gostei + 0

09/06/2013

Marco Salles

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
Responder

Gostei + 0

09/06/2013

Matheus Gomes

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

Gostei + 0

09/06/2013

Marco Salles

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
Responder

Gostei + 0

09/06/2013

Matheus Gomes

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. =]
Responder

Gostei + 0

09/06/2013

Marco Salles

Falou Gomes ..Um abç e sdç
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar