duplo clique dbgrid

Delphi

11/10/2004

queria saber como faço para abir o cadastro de um cliente apenas dando um duplo clique no dbgrid.

por exemplo - filtro todos os cliente que tenham o nome Marcelo da Tabela clientes(isso no formulario de pesquisa).

aparece 10 marcelos.

queria q atravez do form de pesquisa abrisse o cadastro de cliente ja no registro do cliente selecionado.

me ajudem por favor...

agradeço a todos atencipadamente...

Obrigado!!!


Marcelo_vms

Marcelo_vms

Curtidas 0

Respostas

Oscar Candido

Oscar Candido

11/10/2004

Amigo, diz qual banco de dados e quais componentes está usando.
:lol: :lol:


GOSTEI 0
Marcelo_vms

Marcelo_vms

11/10/2004

Foi mal colega!!!

Uso Banco de Dados paradox7 SQL, Table e um DbGrid.

sou iniciante no assunto...


Se puder me ajudar ficaria muito agradecido...


antecipadamente, Obrigado


GOSTEI 0
Oscar Candido

Oscar Candido

11/10/2004

Amigo, vou tentar te dizer mais ou menos como eu faria, usando um componente table e um Query;
No componete table, dê um duplo clique sobre ele e na janela que abrir, clique com o botão direito e depois em Add all Fields.Isso fara com que os campos da sua tuabela possam ser tratados como componentes no seu sistema.
Em um componente TQuery, que seria usado para a pesquisa, na propriedade SQL , vc pode usar o seguine código:
Select * from SuaTabela where Nome like :ParNome

Nesse código, o texto ´:ParNome´ é um parâmetro que vai receber o nome do seu cliente.
No evento OnDbClick do DbGrid vc pode usar
  Query1.CLose;
  Query1.ParamByName(´ParNome´).AsString := Table1Name.Value;
  Query1.Open;
  Form2.show;//Seu Formulário de pesquisa 

No seu formulário de pesquisa os componentes devem estar ligados ao componente Query.
Espro que vc tenha entendito tudo bem, e que eu não tenha exagerado nas explicações.
Caso haja mais duvidas é só postar de novo
Um Abraço
Espero ter ajudado


GOSTEI 0
Marcelo_vms

Marcelo_vms

11/10/2004

caro colega...

agradeço pela ajuda, mas esta com um probleminha...

quando vou mudar o campo active do query1 para true, surge a seguinte mensagem.

[i:4db7b320e5]´Query1: Field´ParNome´is of unknown Type´ [/i:4db7b320e5]

Será que poderia me ajudar...

quando executo o sistema sem ativar o query aparece a mesma mensagem quando dou um clique duplo sobre o nome selecionado...


Será que poderia me ajudar...

agradeço...


GOSTEI 0
Marcelo_vms

Marcelo_vms

11/10/2004

Alguem pode me ajudar


GOSTEI 0
Oscar Candido

Oscar Candido

11/10/2004

Amigo isso está acontecendo pq o parâmentro está vazio.Só abra seu query quando já estiver passado o valor pro parâmetro, deve funcionar assim.
Um Abraço


GOSTEI 0
Marcelo_vms

Marcelo_vms

11/10/2004

estou tentando aki colega ainda nao consegui mas agradeço a sua ajuda..

sou iniciante no assunto...kkkkkkk

obrigado...


GOSTEI 0
Rômulo Barros

Rômulo Barros

11/10/2004

Na sua query, Abra o [u:8db70ed2a4]editor de parâmetros[/u:8db70ed2a4] que está no [b:8db70ed2a4]Object Inspector[/b:8db70ed2a4] (propriedade Params), Selecione o seu parâmetro e configure as propriedades:

DataType    = ftString
ParamType = ftInput


:arrow: [color=blue:8db70ed2a4][b:8db70ed2a4]Agora, basta seguir os passos informados pelos amigos, anteriormente.[/b:8db70ed2a4][/color:8db70ed2a4]


GOSTEI 0
Marcelo_vms

Marcelo_vms

11/10/2004

ainda nao consegui fiz tudo que vcs me indicaram mas ainda nao consequi...

algum de vcs teriam um simples sisteminha, ou qualquer exemplo para me enviar para que eu possa aprender...

se alguem tiver ou puder me ajudar agradeço...


antecipadamente...obrigado...


GOSTEI 0
Oscar Candido

Oscar Candido

11/10/2004

Amigo, diz exatamente o erro que esta acontecendo, e poste o seu código SQL, pode ser algo nisso tb.
Não desiste não, no final tudo da certo :lol:


GOSTEI 0
Marcelo_vms

Marcelo_vms

11/10/2004

colega agradeço mesmo a sua boa vontade e paciencia comigo.

mas vamos la entao...

Tenho um query, datasource2
Tenho um table1, datasource1

Dbgrid com todos os campos

No dbduploclick tem o seguinte codigo
begin
Query1.CLose;
Query1.ParamByName(´ParNome´).AsString := Table1Nome.Text;
Query1.Open;
Tabsheet2.TabIndex;
end;

No Query1 o parametro na propriedade SQL:

Select * from SuaTabela where Nome like :ParNome

No editor de parametros da query:
DataType = ftString
ParamType = ftInput


quando vou mudar o campo active do query1 para true, surge a seguinte mensagem.

´Query1: Field´ParNome´is of unknown Type´

quando dou um duplo click no grid aparece a seguinte mensagem:

Query1: Field´ParNome´ not found.


agradeço a todos a ajuda....

muito obrigado


GOSTEI 0
Marcelo_vms

Marcelo_vms

11/10/2004

corrigindo...

No duploclick do grid tem o seguinte codigo:
begin
Query1.CLose;
Query1.ParamByName(´ParNome´).AsString := Table1Nome.Text;
Query1.Open;
FrmClientes.show;


obrigado...pela atenção colegas...


GOSTEI 0
Oscar Candido

Oscar Candido

11/10/2004

Amigo, Algumas observações:
[list:ada26fae33]A menos que o nome da tabela seja ´SuaTabela´, existe um erro na seu código do Query

Select * from [color=red:ada26fae33]SuaTabela [/color:ada26fae33]where [color=green:ada26fae33]Nome [/color:ada26fae33]like :ParNome


No lugar do texto em vermelho, vc deve colocar o nome da tabela que vc criou pra guardar seus registros, e no lugar do texto em verde o nome do campo onde está o nome do seu cliente.

Em tempo de projeto não é necessário mudar o active do Query pra true, no momento em que vc usa o ´Query1.Open´ no duplo clique do dbgrid é como se vc mudasse o Active do componente pra true, sendo assim, vc pode deixa-lo com false mesmo em tempo de projeto.[/list:u:ada26fae33]
Amigo, espero que funcione assim, caso contrário não deixa de postar de novo :D
Um Abraço


GOSTEI 0
Marcelo_vms

Marcelo_vms

11/10/2004

ola colega sou eu de novo

realmente nos campos suatabela e nome estao corretos, no projeto nome seria o nome do cliente.

suatabela seria clientes.


sera que o problema é porque nao uso datamodulo nos meus projetos ou nao tem nada a ver...

sempre aparece aquela mensagem parNome not found.

teria que declarar esse parnome em algum lugar?

agradeço novamente colega a paciencia e a atençao...


GOSTEI 0
Rômulo Barros

Rômulo Barros

11/10/2004

Amigo, ,vamos tentar acessar o parametro pelo seu index. Segue:

No duploclick do grid tem o seguinte codigo: begin Query1.CLose; Query1.Params[0].AsString := Table1Nome.Text; Query1.Open; FrmClientes.show;



GOSTEI 0
Marcopolo5

Marcopolo5

11/10/2004

Se você não quiser selecionar o registro corrente através de um select que fica mais fácil e de menor custo para o sistema você deve utilizar uma variável do tipo TBookMark ex.:
var
BookMarkList : TBookmark;
begin
BookMarkList := Query.GetBookMark;

quando vc quizer retornar no formulário vc deve fazer
frmFormulario.Query.Gotobookmark(BookMarkList);

// obs as duas queryes devem ser rigorosamente iguais


GOSTEI 0
POSTAR