Fórum Abrir form em determinado registro #227546
22/04/2004
0
obs.: A tabela do form2 lógicamente tb tem o campo ID.
valeu e muito obrigado.
Edkardoso
Curtir tópico
+ 0Posts
22/04/2004
Vinicius2k
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
22/04/2004
Lucas Silva
// 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
22/04/2004
Vinicius2k
Form2.Table2.Locate(´ID´, Table1.ID.Value,[]´);
Leia-se :
Form2.Table2.Locate(´ID´, Table1.ID.Value,[]);
T+
Gostei + 0
22/04/2004
Edkardoso
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
22/04/2004
Vinicius2k
O projeto compila?
Qual a excessão levantada? (mensagem)
T+
Gostei + 0
22/04/2004
Edkardoso
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
22/04/2004
Sgubert
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
22/04/2004
Lucas Silva
eu tambem acho bem mais simples desta forma.
Gostei + 0
22/04/2004
Edkardoso
eu tambem acho bem mais simples desta forma.[/quote:5178093c7c]
e como eu passo o parâmetro ?
Gostei + 0
22/04/2004
Vinicius2k
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
Clique aqui para fazer login e interagir na Comunidade :)