GARANTIR DESCONTO

Fórum DateTimePicker #283289

30/05/2005

0

como eu faço pra usar um DateTimePicker para trocar data de um campo da tabela??

Um amigo me falou para fazer assim:

procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
Table1.FieldByName(´ANIVER´).asDate := DateTimePicker1.Date;
end;

mas não ta dando certo

obrigado! :wink:


_dibexs_

_dibexs_

Responder

Posts

30/05/2005

Marcio.theis

Fiz da seguinte forma e deu certo:

tbl.Edit;
tbl.FieldByName(´DTNASC´).Value:=DateTimePicker1.Date;
tbl.Post;


Onde que o meu campo DTNASC é do tipo Date


Responder

Gostei + 0

30/05/2005

_dibexs_

Não deu certo acho não...

ele compila mas não leva os dados pra tabelas... :cry:


Responder

Gostei + 0

31/05/2005

Marcio.theis

Tem certeza de que antes você esta dando um .Edit e depois um .Post ??? Pois é estranho de não carregar....
Ou coloca aki o que realmente você esta executando.....


Responder

Gostei + 0

31/05/2005

_dibexs_

Dessa maneira q tu colocou compila e executa sem erros, porém a data selecionada não vai para a tabela. Uma outra maneira que me falaram é colocar assim:

procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
ShortDateFormat := ´yyyy-mm-dd´;
Table1.FieldByName(´ANIVER´).asDateTime := DateTimePicker1.Date;
end;


Porém tb está dando erro. Compila só que na hora de rodar o programa qdo vou selecionar a data aparece este erro:

http://img16.echo.cx/img16/4224/telaerro1ai.jpg


Responder

Gostei + 0

31/05/2005

Marcio.theis

Esta informando que a sua tabela não esta em modo de inserção nem edição, por isto gera o erro....

coloque

Table1.Edit;
Table1.FieldByName(´ANIVER´).Value:=DateTimePicker1.Date;
Table1.Post;


Pois você deve antes colocar em modo de edição, para depois atribuir o valor desejado....


Responder

Gostei + 0

31/05/2005

_dibexs_

Tem razão, ele grava na tabela sim... o que não ta acontecendo é qua quando eu acesso o registro ele não mostra ali o valor que ta na tabela...


Responder

Gostei + 0

01/06/2005

_dibexs_

tentei assim

procedure TForm1.DateTimePicker1Enter(Sender: TObject); 
begin 
DateTimePicker1.Date := Table1.FieldByName(´ANIVER´).asDateTime ; 
end; 


mas não deu,,, mals as perguntas bobas, mas to iniciando aghora em programação..

valeu pela ajuda de voces..

Obrigado...


Responder

Gostei + 0

02/06/2005

Marcio.theis

Você pode fazer isto no evento ´AfterScroll´ da sua tabela... ficando assim:

procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin
DateTimePicker1.Date := Table1.FieldByName(´ANIVER´).asDateTime ;
end;



Responder

Gostei + 0

11/11/2005

Vagner.oliveira

Tenho um componente [b:768e401a01]DateTimePicker[/b:768e401a01] e no evento [b:768e401a01]On Change[/b:768e401a01] ele faz a seguinte instrução:
procedure Tf_visualizarordem.CBDiaChange(Sender: TObject);
begin
// Filtra os dias
F_Principal.QAgenda.Close;
F_Principal.QAgenda.sql.Clear;
F_Principal.QAgenda.SQL.Add(´Select * From CadClientes´);
F_Principal.QAgenda.SQL.Add(´Where hora=´+ ´´´´+ CBHora.Text +´´´´ + ´ and dia=´+ ´´´´+ Formatdatetime(´dd/mm/yyyy´, CBDia.Date) + ´´´´);
F_Principal.QAgenda.Prepare;
F_Principal.QAgenda.Open;

        begin
        if not (F_Principal.QAgenda.FieldByName(´Dia´).IsNull) then
                begin
                Application.MessageBox(´Horário ocupado,´ +#13 +´Altere a hora ou o dia, ou NÃO SERÁ salva esta descrição´, ´Agendamentos´, MB_ICONEXCLAMATION);
                Exit;
                end else
F_principal.TClientes.FieldByName(´Dia´).AsString:=FormatDateTime(´dd/mm/yyyy´,CBDia.Date);
        end;
end;


Só que aparece 2 vezes a mensagem ´Horário ocupado....´
Gostaria de saber o que está errado :?:

[b:768e401a01]OBS: coloquei aqui, pois está dando erro para postar uma mensagem[/b:768e401a01]


Responder

Gostei + 0

17/11/2005

Vagner.oliveira

Tenho um componente [b:b2b603beb3]DateTimePicker[/b:b2b603beb3] e no evento [b:b2b603beb3]On Change[/b:b2b603beb3] ele faz a seguinte instrução:
procedure Tf_visualizarordem.CBDiaChange(Sender: TObject);
begin
// Filtra os dias
F_Principal.QAgenda.Close;
F_Principal.QAgenda.sql.Clear;
F_Principal.QAgenda.SQL.Add(´Select * From CadClientes´);
F_Principal.QAgenda.SQL.Add(´Where hora=´+ ´´´´+ CBHora.Text +´´´´ + ´ and dia=´+ ´´´´+ Formatdatetime(´dd/mm/yyyy´, CBDia.Date) + ´´´´);
F_Principal.QAgenda.Prepare;
F_Principal.QAgenda.Open;

        begin
        if not (F_Principal.QAgenda.FieldByName(´Dia´).IsNull) then
                begin
                Application.MessageBox(´Horário ocupado,´ +#13 +´Altere a hora ou o dia, ou NÃO SERÁ salva esta descrição´, ´Agendamentos´, MB_ICONEXCLAMATION);
                Exit;
                end else
F_principal.TClientes.FieldByName(´Dia´).AsString:=FormatDateTime(´dd/mm/yyyy´,CBDia.Date);
        end;
end;
Só que aparece 2 vezes a mensagem ´Horário ocupado....´ Gostaria de saber o que está errado :?: [b:b2b603beb3]OBS: coloquei aqui, pois está dando erro para postar uma mensagem[/b:b2b603beb3]

sobe


Responder

Gostei + 0

17/11/2005

Martins

[quote:5003570464=´vagner.deoliveira´]Tenho um componente [b:5003570464]DateTimePicker[/b:5003570464] e no evento [b:5003570464]On Change[/b:5003570464] ele faz a seguinte instrução:
procedure Tf_visualizarordem.CBDiaChange(Sender: TObject);
begin
// Filtra os dias
F_Principal.QAgenda.Close;
F_Principal.QAgenda.sql.Clear;
F_Principal.QAgenda.SQL.Add(´Select * From CadClientes´);
F_Principal.QAgenda.SQL.Add(´Where hora=´+ ´´´´+ CBHora.Text +´´´´ + ´ and dia=´+ ´´´´+ Formatdatetime(´dd/mm/yyyy´, CBDia.Date) + ´´´´);
F_Principal.QAgenda.Prepare;
F_Principal.QAgenda.Open;

        begin
        if not (F_Principal.QAgenda.FieldByName(´Dia´).IsNull) then
                begin
                Application.MessageBox(´Horário ocupado,´ +#13 +´Altere a hora ou o dia, ou NÃO SERÁ salva esta descrição´, ´Agendamentos´, MB_ICONEXCLAMATION);
                Exit;
                end else
F_principal.TClientes.FieldByName(´Dia´).AsString:=FormatDateTime(´dd/mm/yyyy´,CBDia.Date);
        end;
end;
Só que aparece 2 vezes a mensagem ´Horário ocupado....´ Gostaria de saber o que está errado :?: [b:5003570464]OBS: coloquei aqui, pois está dando erro para postar uma mensagem[/b:5003570464]

sobe[/quote:5003570464]

E se vc colocasse no OnEnter não funcionaria da forma como vc quer?


Responder

Gostei + 0

21/11/2005

Vagner.oliveira

não, ja tentei e não acusa o erro. mas fiz de outra forma, coloquei no evento onclose do form e está funcionando bem. (não do jeito que eu queria hehe)

se alguem souber :oops:


Responder

Gostei + 0

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

Aceitar