Ir para conteúdo

POWERED BY:

Arquivado

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

pastoverdejante

[Resolvido] Erro em ASP - Microsoft VBScript runtime error '8

Recommended Posts

'Algum amigo poderia me dar uma dica de como eu posso eliminar este erro?

 

'Microsoft VBScript runtime error '800a01a8'

'Object required: ''

 

'/Resultado.asp, line 205

 

'205 objResultado.Close

 

 

 

 

 

 

<!-- #include file="Includes/BarraCima.asp" -->
<%
Dim StrSql, StrSql2, CodEstado, Cidade, CodSecao, objResultado
Dim VarPagina, IntI, TotaldePaginas, VarAct, BuscaVazia, PalavraChave

VarAct = Request.QueryString("Act")

If Request.QueryString("Pagina") = "" Then
	VarPagina = 1
Else
	VarPagina = Request.QueryString("Pagina")
	SELECT case VarAct
		Case "Anterior"
			VarPagina = VarPagina - 1
		Case "Proxima"
			VarPagina = VarPagina + 1
	End select
End If

CodEstado = Request.QueryString("Estado")
Cidade = Request.QueryString("Cidade")
CodSecao = Request.QueryString("Secao")
PalavraChave = Replace(Request.Querystring("Palavra"),"'","''")

If CodEstado="Selecione o estado" Then
	CodEstado="0"
End If

If Cidade = "Digite a cidade" OR Cidade = "" Then
	Cidade=""
end If

If CodSecao="Escolha a Seção" Then
	CodSecao=""
end If

If PalavraChave = "O que deseja procurar?" Then
	PalavraChave = ""
End If

If CodEstado="0" AND Cidade="" AND CodSecao="" AND PalavraChave="" Then
BuscaVazia = "1"
Else
If CodEstado="0" and Cidade="" AND PalavraChave="" Then
	StrSql="SELECT Cod, CodPlano, Foto1, NomeProduto, BreveDescricao, Valor FROM Anuncios WHERE CodSecao="&CodSecao&" AND Ativacao=1 AND Status=1 AND DataDe <= #"&FormataData(Date()) &"# AND DataAte >= #"&FormataData(Date()) &"#"
Else
	If Cidade="" and CodSecao="" AND PalavraChave="" then
		StrSql="SELECT Cod, CodPlano, Foto1, NomeProduto, BreveDescricao, Valor FROM Anuncios WHERE CodEstado="&CodEstado&" AND Ativacao=1 AND Status=1 AND DataDe <= #"&FormataData(Date()) &"# AND DataAte >= #"&FormataData(Date()) &"#"
	Else
		If Cidade="" AND PalavraChave="" then
			StrSql="SELECT Cod, CodPlano, Foto1, NomeProduto, BreveDescricao, Valor FROM Anuncios WHERE CodEstado="&CodEstado&" and CodSecao="&CodSecao&" AND Ativacao=1 AND Status=1 AND DataDe <= #"&FormataData(Date()) &"# AND DataAte >= #"&FormataData(Date()) &"#"
		Else
			If CodSecao="" AND PalavraChave="" Then
				StrSql="SELECT Cod, CodPlano, Foto1, NomeProduto, BreveDescricao, Valor FROM Anuncios WHERE CodEstado="&CodEstado&" and Cidade='"&Cidade&"' AND Ativacao=1 AND Status=1 AND DataDe <= #"&FormataData(Date()) &"# AND DataAte >= #"&FormataData(Date()) &"#"
			Else
				If CodEstado="0" and Cidade="" and CodSecao="" Then
					StrSql="SELECT Cod, CodPlano, Foto1, NomeProduto, BreveDescricao, Valor FROM Anuncios WHERE (NomeProduto LIKE '%"&PalavraChave&"%' OR BreveDescricao LIKE '%"&PalavraChave&"%' OR Descricao LIKE '%"&PalavraChave&"%') AND Ativacao=1 AND Status=1 AND DataDe <= #"&FormataData(Date()) &"# AND DataAte >= #"&FormataData(Date()) &"#"
				Else
					If CodEstado="0" and Cidade="" Then
						StrSql="SELECT Cod, CodPlano, Foto1, NomeProduto, BreveDescricao, Valor FROM Anuncios WHERE (NomeProduto LIKE '%"&PalavraChave&"%' OR BreveDescricao LIKE '%"&PalavraChave&"%' OR Descricao LIKE '%"&PalavraChave&"%') AND CodSecao="&CodSecao&" AND Ativacao=1 AND Status=1 AND DataDe <= #"&FormataData(Date()) &"# AND DataAte >= #"&FormataData(Date()) &"#"
					Else
						If Cidade="" and CodSecao="" Then
							StrSql="SELECT Cod, CodPlano, Foto1, NomeProduto, BreveDescricao, Valor FROM Anuncios WHERE (NomeProduto LIKE '%"&PalavraChave&"%' OR BreveDescricao LIKE '%"&PalavraChave&"%' OR Descricao LIKE '%"&PalavraChave&"%') AND CodEstado="&CodEstado&" AND Ativacao=1 AND Status=1 AND DataDe <= #"&FormataData(Date()) &"# AND DataAte >= #"&FormataData(Date()) &"#"
						Else
							If Cidade="" Then
								StrSql="SELECT Cod, CodPlano, Foto1, NomeProduto, BreveDescricao, Valor FROM Anuncios WHERE (NomeProduto LIKE '%"&PalavraChave&"%' OR BreveDescricao LIKE '%"&PalavraChave&"%' OR Descricao LIKE '%"&PalavraChave&"%') AND CodEstado="&CodEstado&" and CodSecao="&CodSecao&" AND Ativacao=1 AND Status=1 AND DataDe <= #"&FormataData(Date()) &"# AND DataAte >= #"&FormataData(Date()) &"#"
							Else
								If PalavraChave="" Then
									StrSql="SELECT Cod, CodPlano, Foto1, NomeProduto, BreveDescricao, Valor FROM Anuncios WHERE CodEstado="&CodEstado&" and Cidade='"&Cidade&"' and CodSecao="&CodSecao&" AND Ativacao=1 AND Status=1 AND DataDe <= #"&FormataData(Date()) &"# AND DataAte >= #"&FormataData(Date()) &"#"
								Else
									If CodSecao="" Then
										StrSql="SELECT Cod, CodPlano, Foto1, NomeProduto, BreveDescricao, Valor FROM Anuncios WHERE (NomeProduto LIKE '%"&PalavraChave&"%' OR BreveDescricao LIKE '%"&PalavraChave&"%' OR Descricao LIKE '%"&PalavraChave&"%') AND CodEstado="&CodEstado&" and Cidade='"&Cidade&"' AND Ativacao=1 AND Status=1 AND DataDe <= #"&FormataData(Date()) &"# AND DataAte >= #"&FormataData(Date()) &"#"
									Else
										If CodEstado="0" and Cidade="" and CodSecao="" Then
											StrSql="SELECT Cod, CodPlano, Foto1, NomeProduto, BreveDescricao, Valor FROM Anuncios WHERE (NomeProduto LIKE '%"&PalavraChave&"%' OR BreveDescricao LIKE '%"&PalavraChave&"%' OR Descricao LIKE '%"&PalavraChave&"%') AND Ativacao=1 AND Status=1 AND DataDe <= #"&FormataData(Date()) &"# AND DataAte >= #"&FormataData(Date()) &"#"
										Else
											StrSql="SELECT Cod, CodPlano, Foto1, NomeProduto, BreveDescricao, Valor FROM Anuncios WHERE (NomeProduto LIKE '%"&PalavraChave&"%' OR BreveDescricao LIKE '%"&PalavraChave&"%' OR Descricao LIKE '%"&PalavraChave&"%') AND CodEstado="&CodEstado&" and CodSecao="&CodSecao&" and Cidade='"&Cidade&"' AND Ativacao=1 AND Status=1 AND DataDe <= #"&FormataData(Date()) &"# AND DataAte >= #"&FormataData(Date()) &"#"
										End If
									End If
								End If
							End If
						End If
					End If
				End If
			End If
		End If
	End If
End If
End If

If Not BuscaVazia = "1" Then
Set objResultado = Server.CreateObject("ADODB.RecordSet")
objResultado.CursorLocation = adUseClient
objResultado.CursorType = adOpenStatic
objResultado.CacheSize = TotalPorPagina
objResultado.Open StrSql, Conn, , , adCmdText
End If
%>
  <tr>
	<td valign="top">
	<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
	  <tr>
		<td width="150" align="center" valign="top" bgcolor="#F9F9F9"><!-- #include file="Includes/BarraEsq.asp" --></td>
		<td align="center" valign="top" bgcolor="#FFFFFF">
		  <table width="468" border="0" cellspacing="0" cellpadding="0">
		  <tr>
			<td height="10"><img src="Imagens/Blank.gif" width="1" height="1"></td>
		  </tr>
		  <tr>
			<td align="center" class="TituloCinzaMedio">RESULTADO DA PESQUISA </td>
		  </tr>
		  <tr>
			<td align="center"> </td>
		  </tr>
		  <%
			If BuscaVazia = "1" Then
			  Response.Write "<tr><td align='center' class='TextoCinzaEscuro'>Escolha no mínimo um critério para a busca.</td></tr><tr><td align=center><br>"&voltar&"</td></tr>"
			Else
			%>
		  <tr>
			<td height="20" align="right" class="TextoCinzaEscuro">Foram encontrados <%=objResultado.RecordCount%> resultados.</td>
		  </tr>
		  <%=LinhaHorizontal3%>
		  <%
			  objResultado.PageSize = TotalPorPagina
			
			If objResultado.EOF Then
				  Response.Write "<tr><td align='center' class='TituloVermelho'>Não há resultado para sua pesquisa.</td></tr>"&LinhaHorizontal3&"<tr><td align=center>"&voltar&"</td></tr>"
			  Else
			
			  objResultado.AbsolutePage = VarPagina
			  TotaldePaginas = objResultado.PageCount
			
			  For intI = 1 to objResultado.PageSize
			
			Dim objPlano
			Set objPlano = Conn.Execute("SELECT Destaque FROM Planos WHERE Cod="&objResultado("CodPlano"))
			%>
		  <tr>
			<td align="center" <% If objPlano("Destaque")=True Then Response.Write CorDestaque End If %>>
			<table width="100%" border="0" cellspacing="0" cellpadding="0">
			  <tr>
				<td width="64"><a href="MaisAnuncio.asp?CodProduto=<%=objResultado("Cod")%>"><img src="<%=LocalFoto&objResultado("Foto1")%>" width="64" border="0"></a></td>
				<td valign="top">
				  <table width="100%" border="0" cellspacing="3" cellpadding="0">		  
					  <tr>
					<td class="TituloCinzaEscuro"><%=objResultado("NomeProduto")%></td>
					  </tr>
					  <tr>
					<td class="TextoCinzaEscuro"><%=objResultado("BreveDescricao")%></td>
					  </tr>
					  <tr>
					<td class="TituloCinzaEscuro">Preço: <%=FormatCurrency(objResultado("Valor"), 2)%></td>
					</tr>			  
				</table>
				</td>
				<td width="70" align="center" valign="bottom" class="TextoCinzaEscuro"><a href="MaisAnuncio.asp?CodProduto=<%=objResultado("Cod")%>" class="TextoCinzaEscuro">Mais info</a></td>
			  </tr>
			</table>
			</td>
		  </tr>
		  <tr>
			  <td height="18" colspan="3"><img src="Imagens/LinhaBarras.gif" width="100%" height="1"></td>
			</tr>
		  <%
			  objResultado.MoveNext
	
			  If objResultado.EOF Then Exit For
			  Next
			%>
		  <tr>
			<td colspan="3">
			<table width="100%" border="0" cellspacing="0" cellpadding="0">
	   		  <tr>
		   		<td width="35%" class="TextoCinzaEscuro">Página <%=VarPagina%> de <%=TotaldePaginas%></td>
		   		<td width="65%" align="right">
				<%
				If VarPagina > 1 Then
				Response.Write "<a href='" & Request.ServerVariables("SCRIPT_NAME") &"?Pagina="& VarPagina &"&Act=Anterior&Estado="&CodEstado&"&Cidade="&Cidade&"&Secao="&CodSecao&"&Palavra="&PalavraChave&"' class='TextoCinzaEscuro'>Anterior</a> | "
				End if
		
				If VarPagina <> TotaldePaginas Then
				Response.Write "<a href='" & Request.ServerVariables("SCRIPT_NAME") &"?Pagina=" & VarPagina &"&Act=Proxima&Estado="&CodEstado&"&Cidade="&Cidade&"&Secao="&CodSecao&"&Palavra="&PalavraChave&"' class='TextoCinzaEscuro'>Próxima</a>"
				End If
				%>
		   		</td>
		 	  </tr>
	   		</table>
			</td>
			</tr>
		  <%
		  End If
		  End If
		  %>
		</table>
		</td>
		<td width="150" align="center" valign="top" bgcolor="#F8F8F8"><!-- #include file="Includes/BarraDir.asp" --></td>
	  </tr>
	</table>
	</td>
  </tr>
<%

' finaliza/destroi os objetos
objResultado.Close
Set objResultado = Nothing

%>

<!-- #include file="Includes/Rodape.asp" -->

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um dos motivos que faz com que esse erro ocorra é tentar utilizar a propriedade ou executar uma ação em um objeto quando o mesmo ainda não foi criado. Por exemplo, caso você tentar finalizar a instância de um objeto sem ter criando: conn.Close(). Esse tipo de ação gera o erro de número 800A01A8. Antes de finalizar a instância do objeto o mesmo deve ser criado. (Set conn = Server.CreateObject("ADODB.Connection"))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa fazer algumas alterações no seu código.

 

Veja:

1) Aqui você só cria o objeto se a variável for igual a 1.

If Not BuscaVazia = "1" Then
Set objResultado = Server.CreateObject("ADODB.RecordSet")
objResultado.CursorLocation = adUseClient
objResultado.CursorType = adOpenStatic
objResultado.CacheSize = TotalPorPagina
objResultado.Open StrSql, Conn, , , adCmdText
End If

2) Logo abaixo você faz a comparação que contradiz a condição acima, pois logo abaixo faz acesso ao objeto. Sugestão: ao invés de igual coloque diferente <>

If BuscaVazia = "1" Then
			  Response.Write "<tr><td align='center' class='TextoCinzaEscuro'>Escolha no mínimo um critério para a busca.</td></tr><tr><td align=center><br>"&voltar&"</td></tr>"
			Else

3) Na linha com erro terá que usar a mesma condição do inicio:

If Not BuscaVazia = "1" Then
objResultado.Close
Set objResultado = Nothing
End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa fazer algumas alterações no seu código.

 

Veja:

1) Aqui você só cria o objeto se a variável for igual a 1.

If Not BuscaVazia = "1" Then
Set objResultado = Server.CreateObject("ADODB.RecordSet")
objResultado.CursorLocation = adUseClient
objResultado.CursorType = adOpenStatic
objResultado.CacheSize = TotalPorPagina
objResultado.Open StrSql, Conn, , , adCmdText
End If

2) Logo abaixo você faz a comparação que contradiz a condição acima, pois logo abaixo faz acesso ao objeto. Sugestão: ao invés de igual coloque diferente <>

If BuscaVazia = "1" Then
			  Response.Write "<tr><td align='center' class='TextoCinzaEscuro'>Escolha no mínimo um critério para a busca.</td></tr><tr><td align=center><br>"&voltar&"</td></tr>"
			Else

3) Na linha com erro terá que usar a mesma condição do inicio:

If Not BuscaVazia = "1" Then
objResultado.Close
Set objResultado = Nothing
End If
Amigão muito obrigado pela grande ajuda!

 

Resolvido o problema! :):):):):):):):):):):):)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom ter resolvido. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Só um detalhe, não poste uma nova dúvida em um tópico já resolvido.

 

Dividi o tópico e poderá continuar a discussão aqui.

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.