Erro em Campo de Data em Tabela Paradox
Uso paradox e nesses campos de Data, se usuário preencher esses campos e futuramente quiser apagar a data, dá erro e não deixa mais o campo ficar sem preencher a data. Alguém já conseguiu achar como não acontecer isso?
Janete
Curtidas 0
Respostas
Marco Salles
22/09/2006
Alguém já conseguiu achar como não acontecer isso?
janete , eu lembro vagamente de um problema desse tipo , e acho que a solução esta nos evento OnsetText do campo
if text = ´´ Then
sender.clear
else
sender.asDatetime:=StrtoDate(Text);
acho que é isso... São tantos os problemas :cry: :cry:
GOSTEI 0
Janete
22/09/2006
Deu certo sua sugestão, mas tive q acrescentar uma função para ele colocar em formato de data e chamei a função no comando q voce me passou.
no evendo OnSetText
if text = ´´ Then
sender.clear
else
sender.asDatetime:=StrtoDate(ArrumaData(Text));
function ArrumaData (ValorData: String): String;
var
I: Integer;
S: String;
begin
S:=´´;
for I:=1 to Length(ValorData) do
begin
if (I = 3)or(I = 5)then
begin
if I=3 then
S:=S+´/´+ValorData[I];
if I=5 then
S:=S+´/´+ValorData[I];
end
else
S:=S+ValorData[I];
End;
if ValorData<>´´ then
Result:=S;
end;
no evendo OnSetText
if text = ´´ Then
sender.clear
else
sender.asDatetime:=StrtoDate(ArrumaData(Text));
function ArrumaData (ValorData: String): String;
var
I: Integer;
S: String;
begin
S:=´´;
for I:=1 to Length(ValorData) do
begin
if (I = 3)or(I = 5)then
begin
if I=3 then
S:=S+´/´+ValorData[I];
if I=5 then
S:=S+´/´+ValorData[I];
end
else
S:=S+ValorData[I];
End;
if ValorData<>´´ then
Result:=S;
end;
GOSTEI 0
Marco Salles
22/09/2006
Deu certo sua sugestão, mas tive q acrescentar uma função para ele colocar em formato de data e chamei a função no comando q voce me passou.
acho que num precisa fazer tudo isto , voce pode usar simplesmente o asstring
no evendo OnSetText
if text = ´´ Then
sender.clear
else
sender.asstring:=text;
acho que assim dá
GOSTEI 0
Janete
22/09/2006
[quote:ac044ced31=´Marco Salles´]
acho que num precisa fazer tudo isto , voce pode usar simplesmente o asstring
no evendo OnSetText
acho que assim dá[/quote:ac044ced31]
Fiz assim por q meus clientes não estão acostumados a digitar as barras entre a data __/__/__ pois eu usava mascara no campo, e por causa dessa mascara qdo quer q tirar a data já preenchida lá, dava erro, não aceitava, então eu colocando essa função junto, o usuário digita somente o número e depois eu coloco a mascará com a função, pois é um campo data e ele não aceita se não tiver as barrinhas... mas obrigado :)
Deu certo sua sugestão, mas tive q acrescentar uma função para ele colocar em formato de data e chamei a função no comando q voce me passou.
acho que num precisa fazer tudo isto , voce pode usar simplesmente o asstring
no evendo OnSetText
if text = ´´ Then
sender.clear
else
sender.asstring:=text;
acho que assim dá[/quote:ac044ced31]
Fiz assim por q meus clientes não estão acostumados a digitar as barras entre a data __/__/__ pois eu usava mascara no campo, e por causa dessa mascara qdo quer q tirar a data já preenchida lá, dava erro, não aceitava, então eu colocando essa função junto, o usuário digita somente o número e depois eu coloco a mascará com a função, pois é um campo data e ele não aceita se não tiver as barrinhas... mas obrigado :)
GOSTEI 0