Abrir form em determinado registro
Tenho um form (form1) que contém um dbgrid. Este dbgrid mostra uma tabela que contém os campos: Contrato, ID, Referência. Tenho um botão que abre outro form (form2), contudo gostaria que ele abrisse no registro correspondente ao que foi selecionado no dbgrid do form1.
obs.: A tabela do form2 lógicamente tb tem o campo ID.
valeu e muito obrigado.
obs.: A tabela do form2 lógicamente tb tem o campo ID.
valeu e muito obrigado.
Edkardoso
Curtidas 0
Respostas
Vinicius2k
22/04/2004
Colega,
Supondo : no Form1 => Table1 no Form2 => Table2, no OnClick do botão vc entra com o código antes do método Form2.ShowModal :
Espero ter ajudado...
T+
Supondo : no Form1 => Table1 no Form2 => Table2, no OnClick do botão vc entra com o código antes do método Form2.ShowModal :
Form2.Table2.Locate(´ID´, Table1.ID.Value,[]´);
Espero ter ajudado...
T+
GOSTEI 0
Lucas Silva
22/04/2004
Dê uma olhada no código
Se você tiver alguma dúvida ai, me dá o toque.
// isso é na hora de chamar o form2; with qry_do_dbgrid do begin Close; Sql.Clear; SQl.Add(´select * from tabela where ID = ´´´+edtid.text+´´´ ´); // supondo que o id esteja no "edtid" Open; // blz, agora a query já esta apontada p/ o registo. end; form2 := TForm2.Create;
Se você tiver alguma dúvida ai, me dá o toque.
GOSTEI 0
Vinicius2k
22/04/2004
Desculpe-me,
Leia-se :
T+
Form2.Table2.Locate(´ID´, Table1.ID.Value,[]´);
Leia-se :
Form2.Table2.Locate(´ID´, Table1.ID.Value,[]);
T+
GOSTEI 0
Edkardoso
22/04/2004
Colega,
Supondo : no Form1 => Table1 no Form2 => Table2, no OnClick do botão vc entra com o código antes do método Form2.ShowModal :
Espero ter ajudado...
T+
Form2.Table2.Locate(´ID´, Table1.ID.Value,[]´);
Infelizmente não deu certo amigo, pode ser q eu esteja cometendo algum erro. O meu código está assim:
procedure TfrmFat.BitBtn1Click(Sender: TObject);
begin
Application.CreateForm(TfrmFaturamento, frmFaturamento);
frmFaturamento.atDados.Locate(´IDdoFaturamento´,frmFat.ADOTable1IDdoFaturamento.Value,[]);
frmFaturamento.ShowModal;
end;
Dá um erro de excessão.
obs:
frmFat = Form1
frmFaturamento=Form2
Valeu!
GOSTEI 0
Vinicius2k
22/04/2004
Colega,
O projeto compila?
Qual a excessão levantada? (mensagem)
T+
O projeto compila?
Qual a excessão levantada? (mensagem)
T+
GOSTEI 0
Edkardoso
22/04/2004
Colega,
O projeto compila?
Qual a excessão levantada? (mensagem)
T+
Compila perfeitamente.
A excessão é a seguinte:
´Access violation at address 004FC87B in modelu ´prjfat.exe´. Read of address 00000304. Process stopped. Use step ou run to continue.
Brigadão!
obs.: Te cadastrei no meu Messenger.
GOSTEI 0
Sgubert
22/04/2004
Eu faria da seguinte forma:
Colocaria no form2 uma query com um parametro :id.
no evento on show do form pego a lina que esta selecionada no form1 passo o id como parametro para a query e abro ela......pronto, o que vc precisa estara lá.....
abraço
Colocaria no form2 uma query com um parametro :id.
no evento on show do form pego a lina que esta selecionada no form1 passo o id como parametro para a query e abro ela......pronto, o que vc precisa estara lá.....
abraço
GOSTEI 0
Lucas Silva
22/04/2004
Eu faria da seguinte forma:
Colocaria no form2 uma query com um parametro :id.
no evento on show do form pego a lina que esta selecionada no form1 passo o id como parametro para a query e abro ela......pronto, o que vc precisa estara lá.....
abraço
eu tambem acho bem mais simples desta forma.
GOSTEI 0
Edkardoso
22/04/2004
[quote:5178093c7c=´Lucas Alves Silva´]
eu tambem acho bem mais simples desta forma.[/quote:5178093c7c]
e como eu passo o parâmetro ?
Eu faria da seguinte forma:
Colocaria no form2 uma query com um parametro :id.
no evento on show do form pego a lina que esta selecionada no form1 passo o id como parametro para a query e abro ela......pronto, o que vc precisa estara lá.....
abraço
eu tambem acho bem mais simples desta forma.[/quote:5178093c7c]
e como eu passo o parâmetro ?
GOSTEI 0
Vinicius2k
22/04/2004
Colegas,
Concordo que seria a melhor forma se o que o edkardoso quisesse fosse um filtro... mas no meu entender ele deseja apenas posicionar o cursor na segunda [color=red:4c6be1e2fa]tabela[/color:4c6be1e2fa].
edkardoso, normalmente, as exceções de Access Violation ocorrem quando se tenta acessar um objeto que não existe...
Os nomes do campos estão corretos?
o método locate : Locate(´Campo_para_localizar´,Valor_a_localizar,[]´);
vc pode tentar também desta forma :
T+
Concordo que seria a melhor forma se o que o edkardoso quisesse fosse um filtro... mas no meu entender ele deseja apenas posicionar o cursor na segunda [color=red:4c6be1e2fa]tabela[/color:4c6be1e2fa].
edkardoso, normalmente, as exceções de Access Violation ocorrem quando se tenta acessar um objeto que não existe...
Os nomes do campos estão corretos?
o método locate : Locate(´Campo_para_localizar´,Valor_a_localizar,[]´);
vc pode tentar também desta forma :
frmFaturamento.atDados.Locate(´IDdoFaturamento´,frmFat.ADOTable1.FieldByName(´IDdoFaturamento´).Value,[]);
T+
GOSTEI 0