Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Filtro DBGrid - Delphi + Access


mrkcristiano

Pergunta

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 para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...