DateTimePicker
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:
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_
Curtidas 0
Respostas
Marcio.theis
30/05/2005
Fiz da seguinte forma e deu certo:
Onde que o meu campo DTNASC é do tipo Date
tbl.Edit; tbl.FieldByName(´DTNASC´).Value:=DateTimePicker1.Date; tbl.Post;
Onde que o meu campo DTNASC é do tipo Date
GOSTEI 0
_dibexs_
30/05/2005
Não deu certo acho não...
ele compila mas não leva os dados pra tabelas... :cry:
ele compila mas não leva os dados pra tabelas... :cry:
GOSTEI 0
Marcio.theis
30/05/2005
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.....
Ou coloca aki o que realmente você esta executando.....
GOSTEI 0
_dibexs_
30/05/2005
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:
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
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
GOSTEI 0
Marcio.theis
30/05/2005
Esta informando que a sua tabela não esta em modo de inserção nem edição, por isto gera o erro....
coloque
Pois você deve antes colocar em modo de edição, para depois atribuir o valor desejado....
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....
GOSTEI 0
_dibexs_
30/05/2005
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...
GOSTEI 0
_dibexs_
30/05/2005
tentei assim
mas não deu,,, mals as perguntas bobas, mas to iniciando aghora em programação..
valeu pela ajuda de voces..
Obrigado...
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...
GOSTEI 0
Marcio.theis
30/05/2005
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;
GOSTEI 0
Vagner.oliveira
30/05/2005
Tenho um componente [b:768e401a01]DateTimePicker[/b:768e401a01] e no evento [b:768e401a01]On Change[/b:768e401a01] ele faz a seguinte instrução:
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]
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]
GOSTEI 0
Vagner.oliveira
30/05/2005
Tenho um componente [b:b2b603beb3]DateTimePicker[/b:b2b603beb3] e no evento [b:b2b603beb3]On Change[/b:b2b603beb3] ele faz a seguinte instrução:
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]
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;
sobe
GOSTEI 0
Martins
30/05/2005
[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:
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]
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;
sobe[/quote:5003570464]
E se vc colocasse no OnEnter não funcionaria da forma como vc quer?
GOSTEI 0
Vagner.oliveira
30/05/2005
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:
se alguem souber :oops:
GOSTEI 0