Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FiReBrunOa

Pesquizar em um DBGrid

Recommended Posts

Olá pessoal,

 

Estou contruindo meu banco de dados access

 

E queria saber como faço para que o FindDialog Pesquise em um DBGrid.

 

Meu Form Completo

 

 

unit visualizarcadastro;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids;

type
  Tform1 = class(TForm)
	DBGrid1: TDBGrid;
	DBNavigator1: TDBNavigator;
	ADOConnection1: TADOConnection;
	ADOTable1: TADOTable;
	DataSource1: TDataSource;
  private
	{ Private declarations }
  public
	{ Public declarations }
  end;

var
  form1: Tform1;

implementation

{$R *.dfm}

end.

Preciso mudar alguma coisa?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo. Bom... o ideal seria criar 1 dataModule e usá-lo no formulario em que for usar.

 

No datamodule(IBExpress):

Componentes:

IBDatabase

IBTransaction

IBDataSet

IBQuery

 

ADO:

ADOConnection;

ADODataSet;

ADOQuery;

 

 

 

No formulário (Usando ADO):

 

unit Unit_Principal;

 

interface

 

uses

{

...

}

type

{

...

}

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

uses DM_Cliente;

 

{$R *.dfm}

 

procedure TForm1.bbtBuscarClick(Sender: TObject);

var

Consulta: String;

begin

Consulta:= editPesquisar.Text; //String Consulta recebe "valor" de pesquisa

 

with DataModule1.ADOQuery1 do

begin

Close; //Fecha conexao

SQL.Clear; //Limpa String SQL

SQL.Add('SELECT * FROM clientes WHERE nome LIKE' + QuotedStr('%' + Consulta + '%')); //Consulta SQL

Open; //Abre conexao

end;

 

end;

 

procedure TForm1.bbtLimparClick(Sender: TObject);

begin

editPesquisar.Text := ''; //Limpar Campo

editPesquisar.SetFocus; //retorna foco p. caixa de busca

end;

end.

 

 

//

 

Depois disso, use um DataSource no formulario da pesquisa e "ligue" o DBGrid ao DataSource, e o ADOQuery com o DataSource.

 

Espero ter ajudado.

Obs.: Ainda não testei esse codigo. Fiz algumas alterações pra ajudar no que você precisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voçê poderia exemplificar e organizar?

 

Porque

 

No datamodule(IBExpress):
Componentes:
IBDatabase
IBTransaction
IBDataSet
IBQuery

ADO:
ADOConnection;
ADODataSet;
ADOQuery;

Precisarei adicionar esses componentes?

 

Favor Explicar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho 1 aplicativo de exemplo.

1º Passo: Ter 1 formulario

2º - Criar 1 DataModule (Vá em "File>New>Data Module")

3º - Escolher o tipo de conexao.

>Caso for criar uma pesquisa com o InterBase,

>>Componentes necessários:

-IBDatabase

-IBTransaction

-IBDataSet

-IBQuery

>Se for criar uma pesquisa com o ADO(O que uso pra conectar com o BD Access),

>>Componentes necessários:

-ADOConnection;

-ADODataSet;

-ADOQuery;

4º - "Ligar" os componentes do DataModule, e definir o banco de dados.

5º - Selecione o formulário (o que você for usar pra realizar a pesquisa) e em seguida vá em "File>Use Unit". Selecione o form DataModule

*Dica: Nomeie todos os formularios antes de fazer isso.

6º - Vá na paleta "DataAcess" e coloque um DataSource no form. Ligue o DBGrid do form ao DataSource. Depois vá no DataModule e "ligue" o componente "Query" ao DataSource. e pronto.

 

Depois de tudo Ok, crie 1 botao para a pesquisa

 

Exemplo com conexao ADO

procedure TForm1.bbtBuscarClick(Sender: TObject);
var
Consulta: String;
begin
Consulta:= editPesquisar.Text; //String Consulta recebe "valor" de pesquisa

with DataModule1.ADOQuery1 do
begin
Close; //Fecha conexao
SQL.Clear; //Limpa String SQL
SQL.Add('SELECT * FROM clientes WHERE nome LIKE' + QuotedStr('%' + Consulta + '%')); //Consulta SQL
Open; //Abre conexao
end;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.