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

Problemas com IF no recordset


Guest Aline Kelly

Pergunta

Guest Aline Kelly

Salve galera...

Tenho uma página d ebusca com os seguintes dados:

<table width="99%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFE8">

<tr>

<td width="49%"><label>

<input name="busca" type="text" id="busca" />

</label></td>

<td width="33%"><label>

<select name="criterio" id="criterio">

<option value="CLIENTE">Cliente</option>

<option value="EMPRESA1">Empresa 1</option>

<option value="TELEFONE">Telefone Coml.</option>

<option value="CPF">CPF</option>

<option value="CNPJ">CNPJ</option>

<option value="ENDERECO">Endereço</option>

<option value="EMAIL">E-Mail</option>

</select>

</label></td>

<td width="18%"><label>

<input name="buscar" type="submit" id="buscar" value="Buscar" />

</label></td>

</tr>

</table>

Na página de resultados, com a ajuda do pessoal daqui do Forum, fiz o seguinte Recordset, a idéia é que o SELECT da página anterior, defina qual em qual campo da tabela será feito a busca.

<%

Dim Sql

Set BdWeb = Server.CreateObject("ADODB.Connection")

Sql = "SELECT * FROM CLIENTES"

If Request.QueryString("criterio") = "CLIENTE" Then

Sql = Sql & " WHERE CLIENTE LIKE '%" & Request.QueryString("busca") & "%'"

End If

If Request.QueryString("criterio") = "EMPRESA1" Then

Sql = Sql & " WHERE EMPRESA1 LIKE '%" & Request.QueryString("busca") & "%'"

End If

If Request.QueryString("criterio") = "ENDERECO" Then

Sql = Sql & " WHERE ENDERECO LIKE '%" & Request.QueryString("busca") & "%'"

End If

If Request.QueryString("criterio") = "TELEFONE" Then

Sql = Sql & " WHERE TELEFONE LIKE '%" & Request.QueryString("busca") & "%'"

End If

If Request.QueryString("criterio") = "EMAIL" Then

Sql = Sql & " WHERE EMAIL LIKE '%" & Request.QueryString("busca") & "%'"

End If

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

%>

MAs acho que fiz algo, errado, pois uso o código abaixo para tentar imprimir o resultado:

<% Response.Write(RsWeb.Fields.Item("CLIENTE").Value)%>

MAs dá o seguinte erro:

QUOTE

Tipo de erro:

ADODB.Fields (0x800A0CC1)

O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.

/crm/resultado.asp, line 133

alguém tem idéia de onde estou errando.

valeu

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom dia Minha linda,

Só vim dar uma dica.

Na sua instrução você usou vários IF's, desta forma o interpretador tem de entrar em todos eles antes de montar o código. Você pode fazer com que quando algo seja verdadeiro ele so entre na tal condição, assim seu código fica mais limpo e robusto.

Dim criterio, campo
criterio = Request.QueryString("criterio")

If (criterio = "CLIENTE") Then

 campo = "CLIENTE"

elseif (criterio = "EMPRESA1") Then

 campo = "EMPRESA1"

elseif (criterio = "ENDERECO") Then

 campo = "ENDERECO"

elseif (criterio = "TELEFONE") Then

 campo = "TELEFONE"

elseif (criterio = "EMAIL") Then

 campo = "EMAIL"

End If


'=== SQL pronto em uma linha
Sql = "SELECT * FROM CLIENTES WHERE "& campo &" LIKE '%" & Request.QueryString("busca") & "%'"

Espero que não leve a mal.

Mas estas práticas de programação ajudam na hora de dar manutenção.

Editado por marcos_804
Link para o comentário
Compartilhar em outros sites

  • 0

E aí pessoal,

Aline Kelly, falta uma coisa no código que você postou: associar o recordset à conexão, algo do tipo...

Set RsWeb = BdWeb.Execute(Sql)
ou criando o ADODB.RecordSet, como você fez... nesse caso ele deve ser aberto, por exemplo:
Set RsWeb = Server.CreateObject("ADODB.Recordset")
RsWeb.Open Sql, BdWeb

Como não foi associado nenhum dado ao recordset, ele não possui nenhum campo e qualquer tentativa de recuperar dados com ele, nessa situação, resultará em erro.

Espero que isso ajude! :rolleyes:

[]'s a todos!

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...