Mascara em DbGrid

22/05/2003

5

Bom, irei direto com o meu problema.É o seguinte, criei uma base de dados em Access, e dentro desta base de dados criei um banco de dados com dois campos do tipo Data/Hora. Um campo se chama Data e outro HoraInicial. Após criar estes dois campos configurei o formato corretamente, Data abreviada - para o campo Data, e Hora abreviada - para o campo HoraInicial. O problema é o seguinte:
Quando eu salvo no campo Data uma data qualquer, ele me mostra no DBGrid a data + a Hora, o que não deveria aparecer! O que deveria aparecer era somente a Data (sem aparecer a hora junto). Intendeu uma das minhas dúvidas?
Segunda Dúvida...
Quando salvo no campo HoraInicial uma hora do tipo 00:00, o que me aparece no DBGrid é uma data = a 30/12/1899 ... ??? Vai saber o que é esta data sendo que no meu campo quero mostrar apenas a minha Hora(que foi registrada como 00:00, mas não sei o Porque está aparecendo como uma data do tipo 30/12/1984).

Por favor, se vc sabe como realmente resolver este problema, me Ajude Please..

Desde ja, fico muito mais do que Agradecido!!!


APROVEITEI A SUGESTÃO DE TÍTULO DO OKAM AO EDITAR ESTE AQUI.
OBRIGADO OKAMA
ZOOM


Responder

Posts

22/05/2003

Ildefonso

Olá...

Já foi respondido em sua questão ´Máscara no Access´.

Muito cordialmente...


Responder

22/05/2003

Flavio Sanches

O que meu colega disse é que:

a data e hora, na verdade não existem separadamente. Agora são 10:11 do dia 22 de maio de 2003, ou seja: No seu campo data inicial, se vc pegar a data do sistema ele virá no formato data/hora daí vc não precisa do campo hora inicial porque já estará armazenado no outro campo, daí vc precisa só mostrar no seu form o mesmo campo no edit, por exemplo, data com a mascara correta que fará aparecer no formato que vc escolher 22/05/03, 22-05-03,22/mai/2003, quita-feira, 22 de maio de 2003, etc. e no edit hora vc vai mostrar o mesmo campo com a mascara que fará aparecer somente a hora no formato que vc escolher. A vantagem disso é que vc poderá fazer cálculos de intervalo de tempo de maneira muito mais precisa.
Agora dê uma olhada na resposta mencionada pelo colega sobre máscaras no access.

valeu...


Responder

22/05/2003

Netcrusher

O meu problema não está em um DBEDit.. e sim no DBGrid..
como ja falei, o campo Data e o campo HoraInicial são campos totalmente distintos.. um não tem nada a ver com o outro. Porém, o meu problema não é este, e sim o seguinte.
Para ser mais específico, vou dizer o que eu estou fazendo..
É um módulo de reserva de computadores...
Lá, existem os seguintes campos:
Nome(nome do cara que irá alugar)
Data(Data na qual será feito o aluguél)
HoraInicial(Hora na qual o cara irá pegar o computador para usa-lo)
HoraFinal(Hora de devolucao)
Funcionario(quem liberou o pc)
DataAtual(Dia de hj)
HoraAtual(Hora em que foi feita a reserva)

O Meu problema está nos seguintes campos...HOraInicial, horaFinal e HoraAtual...
Bom.. se eu usar o componente DBEdit.. com certeza eu ja teria resolvido o problema, mas não é este componente que eu estou usando.
O componente é o DBGrid.
Eu ja criei as máscaras.. tudo nos conformes.. até configurei a máscara da Data, na qual os campos referentes a uma Data eestão funcionando muito bem, ou seja.. mostrando seus devidos valores corretamente(22/05/2003)... agora, o que eu gostaria que vcs intendesses é o campo relacionado a HOras.. Quando eu salvo o registro inserido.. no meu DBGrid aparece assim:

[b:3b691eddc1]Nome Data HoraIncial HoraFinal[/b:3b691eddc1]
Daniel 22/05/2006 30/12/1899 17:24:34 30/12/1899 13:00:00

Será que agora vcs conseguiram intender???
Se puderem criar uma base de dados.. e colocar um campo do tipo Data/Hora, mas que naquele campo somente seja armazenado a Hora e não a data, e puderem me ajudar com esta solução.. ficarei muito grato..

Desde Já, fico agradecido pela Resposta

Atenciosamente, Daniel
_______________________
NetCrusher Developes - Softwares


Responder

22/05/2003

Okama

Será que agora vcs conseguiram [u:73ae4b9874]intender[/u:73ae4b9874]??? Se puderem criar uma base de dados.. e colocar um campo do tipo Data/Hora, mas que naquele campo somente seja armazenado a Hora e não a data, e puderem me ajudar com esta solução.. ficarei muito grato..


Vejo que seu problema é com a Exibição da Hora somente.

Crie um campo varchar Texto no Access com 5 posições ´00:00´.


Responder

22/05/2003

Okama

Não coloque mais tópicos como ´Vocês são bons ou não ?´ substitua por ´Exibição de Campo Data/Hora´ ou ´Mascara em DbGrid´ sendo objetivo você conseguirá mais rápido uma solução, sem desafiar nossos colegas.


Ninguém é tão bom que não possa aprender, nem tão ruim que não possa ensinar.

Um Abraço.


Responder

22/05/2003

Rafael Heise

Bom... pelo que eu entendi .. você tem um campo para data, outro campo para hora, mas os dois tem data e hora, e quando você mostra aparece para a hora 31/12/1899 10:50:03 e para data 21/05/2003 00:00:00 .. bom ...
se você usa query, no after open faça
(Query.FieldByName(´CAMPODATA´) as TNumericField).DisplayFormat := ´dd/mm/yyyy´ para data
e para hora
(Query.FieldByName(´CAMPOHORA´) as TNumericField).DisplayFormat := ´hh:nn´
ou
(Query.FieldByName(´CAMPOHORA´) as TNumericField).DisplayFormat := ´hh:nn:ss´
(sem ou com segundos)
ou se os dois estão juntos
faça que o campo receba ´dd/mm/yy hh:nn:ss´
ou como quiser...
apenas lembresse :
d para dia 1,2,3.. 21,22..
dd para dia sendo 01, 02, 03.. 20, 22..
m para mes 1,2,..10,11..
mm para mes 01,02..10,11
yy para 99,00,01...
yyyy para 1999,2000,2001
e o mesmo para hora (hh ou h) e para minutos (n ou nn) e para segundos (s ou ss) ... e assim por diante.. no help tem tudo ....

abraços...


Responder