Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Filtro DBGrid - Delphi + Access


mrkcristiano

Question

E ai galera.. beleza?

seguinte... tenho aqui um AdoConnection e um banco do Access, e to tentando fazer com que o dbgrid mostre apenas os registros que o campo ArteMarcial for igual ao item selecionado da ComboBox, to usando um Adodataset, mas ele ta me retornando o erro, por exemplo, se eu selecionar na combo uma arte marcial que não tem nenhum usuário cadastrado nela, ele me retorna "O parametro Boxe não tem o valor padrão".

Se eu colocar uma arte marcial que já possui um ou mais usuários cadastrados ele me retorna "Erro de sintaxe (operador faltando) na expressão de consulta 'Arte Marcial = Muay Thai'

Segue o código do botão 'filtrar':

ADODataSet1.Close;
  ADODataSet1.CommandText := 'SELECT * FROM Alunos WHERE ArteMarcial = '+ComboBox1.Text;
  ADODataSet1.Active := True;
  ADODataSet1.Open;

agradeço desde já!

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
Em 20/11/2011 at 13:48, mrkcristiano disse:

E ai galera.. beleza?

 

seguinte... tenho aqui um AdoConnection e um banco do Access, e to tentando fazer com que o dbgrid mostre apenas os registros que o campo ArteMarcial for igual ao item selecionado da ComboBox, to usando um Adodataset, mas ele ta me retornando o erro, por exemplo, se eu selecionar na combo uma arte marcial que não tem nenhum usuário cadastrado nela, ele me retorna "O parametro Boxe não tem o valor padrão".

Se eu colocar uma arte marcial que já possui um ou mais usuários cadastrados ele me retorna "Erro de sintaxe (operador faltando) na expressão de consulta 'Arte Marcial = Muay Thai'

 

Segue o código do botão 'filtrar':

 

 

 

ADODataSet1.Close;
  ADODataSet1.CommandText := 'SELECT * FROM Alunos WHERE ArteMarcial = '+ComboBox1.Text;
  ADODataSet1.Active := True;
  ADODataSet1.Open;

 

 

 

agradeço desde já!

como faz no dbexpress preciso disso tambem 

Link to comment
Share on other sites

  • 0
  • 0

Eu particularmente gosto de passar os valores por parâmetros, ex:

if (ADOQuery1.Active) then
    ADOQuery1.Close;

  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT * FROM Tabela WHERE Campo = :ArteMarcial');
  ADOQuery1.Parameters.ParamByName('ArteMarcial').Value := QuotedStr(ComboBox1.Text);
  ADOQuery1.Open;

Acho que o código fica com maior legibilidade.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...