Ir para conteúdo

POWERED BY:

Arquivado

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

Ivan.Teles

Aplicar um filtro a um resultado de Select

Recommended Posts

Muito Bom dia Galera do Forum.

 

Fiz uma pagina com o seguinte select:

sql = "SELECT id, estatus, Caso, N_EC, data_cadastro, finalizado, data_alteracao, uf, CNPJ FROM dados ORDER BY data_cadastro DESC, estatus DESC"

 

Até ai tudo perfeito, ele me resulta todos os dados da tabela dados.

 

Agora na mesma página eu adicionei um form com os campos seguintes.

nome, ec, uf, cnpj, fiz um request

 

var_nome = Trim(Request.Form("nome"))

var_ec = Trim(Request.Form("ec"))

var_uf = Trim(Request.Form("uf"))

var_cnpj = Trim(Request.Form("cnpj"))

 

e mudei meu select para

 

sql = "SELECT id, estatus, Caso, N_EC, data_cadastro, finalizado, data_alteracao, uf, CNPJ FROM dados WHERE nome = '"& var_nome &"' OR ec = '"& var_ec &"' OR uf = '"& var_uf &"' OR CNPJ = '"& var_cnpj &"' ORDER BY data_cadastro DESC, estatus DESC"

 

So que eu queria q quando os campos nome, ec, uf e cnpf estivessem vazio ele retornasse todos os dados.

 

ou seja se niguem aplicar a busca ele retornava todos, e se aplicar ele mostrar somente o resultado.

 

Obs: ASP, banco de dados ACCESS, todos os campos na tabela tem como propriedade TEXTO.

 

 

 

Tentei fazer assim:

If (var_nome = "") OR (var_ec = "") OR (var_uf = "UF") OR (var_cnpj = "")Then

Set rs = Server.CreateObject("ADODB.Recordset")

sql = "SELECT id, estatus, Caso, N_EC, data_cadastro, finalizado, data_alteracao, uf, CNPJ FROM dados ORDER BY data_cadastro DESC, estatus DESC"

rs.MaxRecords = 20

rs.Open sql,conconexao,3

Else

Set rs = Server.CreateObject("ADODB.Recordset")

sql = "SELECT id, estatus, Caso, N_EC, data_cadastro, finalizado, data_alteracao, uf, CNPJ FROM dados WHERE nome = '"& var_nome &"' OR ec = '"& var_ec &"' OR uf = '"& var_uf &"' OR CNPJ = '"& var_cnpj &"' ORDER BY data_cadastro DESC, estatus DESC"

rs.MaxRecords = 20

rs.Open sql,conconexao,3

End If

 

Mesmo assim ele não aplica o filtro quando é submetido a página.

 

-------------------------------------------------------------------------------------

Explicando melhor

 

If (var_caso = "") Then

var_caso = O que eu defino aqui se caso estiver vazio pra pegar todos os registros da tabela

End if

If (var_ec = "") Then

var_ec = O que eu defino aqui se caso estiver vazio pra pegar todos os registros da tabela

End if

If (var_uf = "") Then

var_uf = O que eu defino aqui se caso estiver vazio pra pegar todos os registros da tabela

End if

If (var_cnpj = "") Then

var_cnpj = O que eu defino aqui se caso estiver vazio pra pegar todos os registros da tabela

End if

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha,voce tem diversas formas de fazer isso uma delas é fazendo assim:If LEN(var_nome) > 0 OR LEN(var_ec) > 0 OR LEN(var_uf) > 0 OR LEN(var_cnpj) > 0 Thensql = "SELECT id, estatus, Caso, N_EC, data_cadastro, finalizado, data_alteracao, uf, CNPJ FROM dados WHERE nome = '"& var_nome &"' OR ec = '"& var_ec &"' OR uf = '"& var_uf &"' OR CNPJ = '"& var_cnpj &"' ORDER BY data_cadastro DESC, estatus DESC"ELSEsql = "SELECT id, estatus, Caso, N_EC, data_cadastro, finalizado, data_alteracao, uf, CNPJ FROM dados ORDER BY data_cadastro DESC, estatus DESC"END IF rs.Open sql,conconexao,3e por ai vai!!testa assim ve o que da!!se nao a gente vai pra segunda forma!!falous ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

marcelinho, obrigado amigo.

 

mas so pra eu ficar por dentro.

 

você poderia dar uma explicação basica sobre o LEN

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.