Fórum Dbgrid como pegar os dados? #222180

24/03/2004

0

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

Responder

Posts

24/03/2004

Fabio.hc

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;



Responder

Gostei + 0

24/03/2004

Snipa

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


Responder

Gostei + 0

24/03/2004

Aroldo Zanela

Colega,

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


Responder

Gostei + 0

24/03/2004

Snipa

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


Responder

Gostei + 0

24/03/2004

Vinicius2k

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+


Responder

Gostei + 0

25/03/2004

Aroldo Zanela

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.


Responder

Gostei + 0

25/03/2004

Fabio.hc

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.


Responder

Gostei + 0

25/03/2004

Vinicius2k

[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+


Responder

Gostei + 0

25/03/2004

Snipa

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


Responder

Gostei + 0

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

Aceitar