COMANDO SQL COM MULTIPLAS CONSULTAS

PERCIFILHO 10/04/2012 09:45:45
#399432
Olá, amigos, estou precisando muito da ajuda de vocês.
No meu formulário, tenho vários campos para consulta, mas ocorre que o usuário vai querer filtrar a pesquisa por vários campos, e pode ser que às vezes ele queira pesquisar por apenas um dos campos.
Por exemplo: ele escolhe uma decrição e o programa mostra os dados No DataGridView. Aí ele escolhe o tipo de movimento de saída e o programa faz o filtro e mostra novamente no DataGridView, se tornando uma consuta bem [Ô]em tempo real[Ô], ou seja ele pode ir filtrando da maneira que quiser e o programa vai fazendo o filtro e mostrando os dados.
Minha dúvida é como montar o comando sql para realizar essa consulta?

Até mais.


MARCELOSN 10/04/2012 10:04:02
#399433
Resposta escolhida


Bom dia

No caso voce poderar montar a sua consulta normalmente no que se refere aos campo a mais para pesquisa faça uma validação com IF onde se verifica se esta preenchido e coloque na sua consulta SQL


Exemplo para uso em uma função no no botão do filtro:
==========================================================================================
Dim sSql As String = [Ô]SELECT Valor, Sequencia, Data FROM qry_Pesquisa [Ô]

[ô]Este campo por ser obrigatorio sempre será mantido
sSql +=[Ô] where (Data BETWEEN [Ô] & txtIdadeInicial.Text & [Ô] AND [Ô] & txtIdadeFinal.Text & [Ô]) [Ô]

[ô]Estes campos podm ser adicionado a medida que são preenchidos no formulario
If Len(txtEspecificacao.Text) > 0 Then sSql += [Ô] and (Especificacao LIKE N[ô]%[Ô] & txtEspecificacao.Text & [Ô]%[ô]) [Ô]
If Len(txtCodigo.Text) > 0 Then sSql += [Ô] and (Codigo LIKE N[ô]%[Ô] & txtCodigo.Text & [Ô]%[ô]) [Ô]
If CkMovimennto.Checked = True Then sSql+= [Ô] and (CkMovimennto=[ô]True[ô])[Ô]



Depois e so executar a sua nova consulta com os valores adiconados.


Neste caso voce podera montar os demais campos




Espero ter ajudado









PERCIFILHO 10/04/2012 12:17:03
#399445
Valeu, Marcelo, obrigado pelas dicas.

Até mais.
Tópico encerrado , respostas não são mais permitidas