Jump to content
Fórum Script Brasil
  • 0

Sistema De Busca


Guest - Marcio -

Question

Guest - Marcio -

Pessoal,

Estou tentando fazer um sistema de busca em meu adm onde ira buscar apenas por tipo de empresa, nome da empresa e estado(UF), montei um comando mas não sei se é o correto, portanto vou posta-lo e junto vou colocar o erro que eta dando. Como faria para retornar o resultado na mesma pg onde lista as empresas?

ERRO

Objeto necessário: 'objConn'

/adm/busca.asp, line 9

COMANDO

<%

Tipo_Empresa = Request.Form("Tipo_Empresa")

Nome_Fantasia = Request.Form("Nome_Fantasia")

UF = Request.Form("UF")

%>

<%

Set rs = objConn.Execute("SELECT Tipo_Empresa, Nome_Fantasia FROM Cad_Empresa WHERE Tipo_Empresa = '" &Tipo_Empresa& "', Nome_Fantasia = '" &Nome_Fantasia& "' ORDER BY Nome_Fantasia ASC")

If not rs.EOF Then

Do until rs.eof

%>

<% rs.MoveNext

Loop

Else

Response.Write("Não Foram encontrados registros com esses dados!")

End if

%>

Obrigado

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

<%
Tipo_Empresa = Request.Form("Tipo_Empresa")
Nome_Fantasia = Request.Form("Nome_Fantasia")
UF = Request.Form("UF")

Set rs = Server.CreateObject("ADODB.RECORDSET")
objConn.Execute("SELECT Tipo_Empresa, Nome_Fantasia FROM Cad_Empresa WHERE Tipo_Empresa = '" &Tipo_Empresa& "', Nome_Fantasia = '" &Nome_Fantasia& "' ORDER BY Nome_Fantasia ASC") 
If not rs.EOF Then
Do until rs.eof

rs.MoveNext
Loop
Else
Response.Write("Não Foram encontrados registros com esses dados!")
End if
rs.close
set rs = nothing
%>

tente assim, mas o que acontece é que ele não ta encontrando o objconn, que deve ser o objeto que voc~e cria de conexão... que voc~e ter fechado ou não crio nesta pagina.... mas tenta com o que modifiquei e posta ae =)

Abraços

Link to comment
Share on other sites

  • 0
Guest - Marcio -

Cara, continua dando o mesmo erro de objconn, é o seguinte, para eu efetuar essa busca no BD teria que abrir a conexão OK, ou seja, tenho uma pg onde lista as empresas cadastradas e gostaria que ao efetuar a busca o resultado aparecesse nesta mesma pg, pois já criei outra pg de resultado da busca mas não tive sucesso, como faço para ter o resultsdo na mesma pg, teria que colocar o SQL dentro do form de busca? Esta pg já tem a conexao aberta.

Grato

Link to comment
Share on other sites

  • 0

Bem para exibir a busca na mesma página basta você enviar uma variável qualquer na hora que enviar o formulário com a consulta do tipo ?t=busca

Então antes de começar o seu script de busca você faz uma verificação se a variável existe ou não, se sim executa o script, se não pula e executa o restante da página.

Não esqueça de fazer a mesma verificação no corpo da página para ver o que vai ser apresentado.

Com relação a conexão objeto objConn coloque ela fora dos scripts, ou seja no início da página assim ela servirá para os dois scripts.

Já o erro que está apresentando pode ser de que você tenha fechado o objConn antes de executar a busca, veja onde está localizado os comandos

objConn.close

set objConn = nothing

e mova isto para o final da página depois da tag </html>

Link to comment
Share on other sites

  • 0
Guest - Marcio -

Então, com este sistema aparentemente parece estar buscando as informações nos campos correspondentes, só que quando radado da este erro de sintax:

Microsoft JET Database Engine (0x80040E14)

Erro de sintaxe (operador faltando) na expressão de consulta 'Tipo_Empresa = 'Jornal' OR Nome_Fantasia = 'editoras' OR UF = 'RS' WHERE OR (Tipo_Empresa) =Jornal OR (Nome_Fantasia)=editoras OR (UF)=RSORDER BY Nome_Fantasia ASC'.

/adm/resultado_busca.asp, line 21

O que será que esta errado em meu codigo?

<!--#include file="includ/conex.asp"-->

<%

Tipo_Empresa =Request.Form("Tipo_Empresa")

Nome_Fantasia =Trim(Request.Form("Nome_Fantasia"))

UF = Request.Form("UF")

call abreconexao

Set rs = Server.CreateObject("adodb.recordset")

SQL = "SELECT Tipo_Empresa, Nome_Fantasia, UF FROM Cad_Empresa WHERE Tipo_Empresa = '" &Tipo_Empresa& "' OR Nome_Fantasia = '" &Nome_Fantasia& "' OR UF = '" &UF& "' "

SQL = SQL & " WHERE "

if Request.form ("Tipo_Empresa") <> "" Then SQL = SQL & " OR (Tipo_Empresa) =" & Request.form ("Tipo_Empresa")

if Request.form ("Nome_Fantasia") <> "" Then SQL = SQL & " OR (Nome_Fantasia)=" & Request.form ("Nome_Fantasia")

if Request.form ("UF") <> "" Then SQL = SQL & " OR (UF)=" & Request.form ("UF")

SQL = SQL & "ORDER BY Nome_Fantasia ASC"

set rsCad_Empresa=conexao.execute(sql)

'rsCad_Empresa.Open SQL

%>

<% Do until rsCad_Empresa.EOF%>

%>

<%=rsCad_Empresa("Tipo_Empresa")%><p align="center"><font size="2" face="MS Sans Serif"><br>

<%=rsCad_Empresa("Nome_Fantasia")%>, <%=rsCad_Empresa("Nome_Fantasia")%><br>

<%=rsCad_Empresa("UF")%> - <%=rsCad_Empresa("UF")%><br>

<%

rsCad_Empresa.movenext

loop

call fechaconexao

%>

Estamos quase lá!!!!

Obrigado

Link to comment
Share on other sites

  • 0

você ta dando dois WHERE ali ou é impressão minha ? rs

você ta fazendo 2 wheres aparentemente e não pode e faça veirifcações (if) antes é melhor exemplo

if campo <> "" then

junta = junta & " campo='" & campo & "'"

end if

if campo2 <> "" then

junta = junta & " campo2='" & campo2 & "'"

end if

SQL="SELECT campos FROM tabela WHERE " & junta

só um exemplo, fica mais organizado wink.gif

abraços

Link to comment
Share on other sites

  • 0
Guest - Marcio -

Galera, para finalizar esse tópico....

Meu sistema de busca agora esta funcionando, graças a vocês pelos toques!

O unico problema é que não consigo filtrar individualmente, ou seja, tenho 3 campos para busca e se eu preencho os 3, OK busca certinho; se eu preencho o campo "Seguimento e Estado", OK tb; mas se preenchido apenas 1 desses 3 campos retorna a informação que eu criei quando não há registros cadastrados.

Será o tal do END ou OR no SQL?

MEU SQL:

<%

' Recuperando as variáveis do formulário

Busca_Nome = Request.Form("Busca_Nome")

Tipo = Request.Form("Tipo")

Estado = Request.Form("Estado")

' Abrindo a conexao com o BD e passando os parâmetros da consulta

call abreconexao

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

SQL = "SELECT * FROM Cad_Empresa WHERE Nome_Fantasia LIKE '%" & Busca_Nome & "%' and Tipo_Empresa = '" & Tipo & "' and UF = '" & Estado & "' order by Nome_Fantasia"

set rsCad_Empresa=conexao.execute(SQL)

%>

Só mais essa pessoal!!!!

Valeu

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
      651.8k
×
×
  • Create New...