Dbgrid como pegar os dados?

Delphi

24/03/2004

Awe pessoal fmz?

Tipo Tava querendo sabe uma coisa

Tem um dbgrid com os dados de uma tabela
Dai eu queria que ele clicasse em um dos dados do dbgrid e ai eu ia mostra os dados relacionados em outro dbgrid

So que nao sei como pega que dado ele clico no dbgrid?
Nao soube explica mt bem mais acho que da pra entende

Alguem pode me ajuda?
vlw flw


Snipa

Snipa

Curtidas 0

Respostas

Fabio.hc

Fabio.hc

24/03/2004

Tente assim:

DBGrid1 -> Table1
DBGrid2 -> Query1 (´Select * from tabela where campo=:param1´)

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
   Query1.Close;
   Query1.Params[0].Value:=Table1Codigo.Value;
   Query1.Open;
end;



GOSTEI 0
Snipa

Snipa

24/03/2004

Mais o problema eh que os dados que tao na dbgrid1 sao de uma query
nao de uma table
entende?


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

24/03/2004

Colega,

O conceito é o mesmo, apenas troque os nomes dos objetos de acordo com sua necessidade.


GOSTEI 0
Snipa

Snipa

24/03/2004

Bom pessoal vlw ae a ajuda

Mais pelo que eu tentei aqui ele tah dando um erro estranhao
Enfim acho qeu to fazendo alguma coisa errada to fazendo assim:
procedure TFrmPesCond.DBGrid2CellClick(Column: TColumn);
var valor:integer;
begin
valor := QryCont.DataSource.DataSet.FieldList.Fields[0].Value;
with qrygastos do
begin
close;
Sql.Clear;
Sql.Add(´SELECT * FROM Contas WHERE CodCond = :PE´);
Parambyname(´PE´).AsInteger := valor;
Open;
end;
end;


O erro que aparece eh
Access violation at address 004C0701 in module admin.exe. Read of address 00000030

Entao se alguem soube ae fala ae :) vlw fui


GOSTEI 0
Vinicius2k

Vinicius2k

24/03/2004

Colega,

Acho q seu problema está aqui :
valor := QryCont.DataSource.DataSet.FieldList.Fields[0].Value;

O correto seria :
valor := QryCont.Fields[0].Value;

espero ter ajudado...

T+


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

24/03/2004

Colega, Acho q seu problema está aqui :
valor := QryCont.DataSource.DataSet.FieldList.Fields[0].Value;
O correto seria :
valor := QryCont.Fields[0].Value;
espero ter ajudado... T+


Na verdade, eu acho que QryCont é o nome da dbGrid e não seria o problema. Pela mensagem, talvez não exista algum objeto que está sendo manipulado no código.


GOSTEI 0
Fabio.hc

Fabio.hc

24/03/2004

Bom pessoal vlw ae a ajuda Mais pelo que eu tentei aqui ele tah dando um erro estranhao Enfim acho qeu to fazendo alguma coisa errada to fazendo assim:
procedure TFrmPesCond.DBGrid2CellClick(Column: TColumn);
var valor:integer;
begin
valor := QryCont.DataSource.DataSet.FieldList.Fields[0].Value;
with qrygastos do
begin
close;
Sql.Clear;
Sql.Add(´SELECT * FROM Contas WHERE CodCond = :PE´);
Parambyname(´PE´).AsInteger := valor;
Open;
end;
end;
O erro que aparece eh Access violation at address 004C0701 in module admin.exe. Read of address 00000030 Entao se alguem soube ae fala ae :) vlw fui


Olhando os codigos e nomes dos objetos:

qrycont esta linkado no DBGrid1 ?
qrygastos esta linkado no DBGrid2

é isto,
se for então este codigo que vc passou tem que estar no CellClick do DBGrid1 e não no CellClick do DBGrid2.


GOSTEI 0
Vinicius2k

Vinicius2k

24/03/2004

[quote:4f20c2982d=´Aroldo Zanela´]Na verdade, eu acho que QryCont é o nome da dbGrid e não seria o problema. Pela mensagem, talvez não exista algum objeto que está sendo manipulado no código.[/quote:4f20c2982d]
:roll: não sei Aroldo, mas me parece, pelo padrão de nomenclatura, que QryCont é a Query mesmo, mas é só um chute...
procedure TFrmPesCond.[color=red:4f20c2982d]DBGrid2CellClick[/color:4f20c2982d](Column: TColumn);

with [color=red:4f20c2982d]qrygastos[/color:4f20c2982d] do


T+


GOSTEI 0
Snipa

Snipa

24/03/2004

Awe pessoal fmz?
Bom o qrygastos eh uma query mesmo
E oque o aroldo zanela falou eu fiz e nao tah mais aparecendo a msg de erro

Mais tb nao tah aparecendo os dados no dbgrid
Mais enfim brigadao ao pessoal ae
vo ve mais tarde aqui pq agora tenho que i pra escola
Flw


GOSTEI 0
POSTAR