Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Vamos lá que é meio complicado de explicar... :rolleyes:
Tenho uma página de consulta de subcategorias. Sendo que uma subcategoria pode pertencer a uma categoria.
Abaixo a imagem de como são as duas tabelas (categorias e subcategorias):
Tendo essas informações, acontece o seguinte: os relacionamentos feitos são nos campos CATEGORIAS.IdCategoria = SUBCATEGORIAS.IdCategoria.
Até aí tudo bem... mas na tabela que exibe o código da subcategoria, a categoria (não o código, seria o nome), o título e a descrição da subcategoria, como eu faria justamente pra, ao invés de exibir o código (número) da categoria pertencente a subcategoria, exibisse o nome da categoria a qual a subcategoria pertence.
Sei que com o SQL abaixo já consegueria:
select * from SUBCATEGORIAS INNER JOIN CATEGORIAS ON CATEGORIAS.IdCategoria = SUBCATEGORIAS.IdCategoria
Mas o seguinte erro é exibido na página ASP:
Tipo de erro:
>
ADODB.Recordset (0x800A0CC1)
O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.
/pizzariaverdun/admin/consulta_subcategoria.asp, line 83
Se alguem puder me ajudar, agradeço muito.
Segue abaixo o código de toda a página:
<!-- #include file = "funcoes.asp" -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html;" />
<title>Consultar Categorias</title>
<link href="css/padrao_admin_secoes_produtos.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<fieldset id="subcategorias_filtro">
<legend id="subcategorias_legenda">
<font color="#cf0800">Filtro </font>
</legend>
<form name="subcategorias_form" method="post" >
<span>Filtrar por:</span>
<select name="filtro">
<option disabled="disabled" selected="selected">Selecione</option>
<option value="codigo">Código</option>
<option value="categoria">Categoria</option>
<option value="titulo">Título</option>
</select>
<input name="filtro_valor" type="text" />
<button name="pesquisar" TYPE="submit" VALUE="Pesquisar" >
<img src="images/icone_pesquisar.png" style="vertical-align: middle;" width="16px" height="16px" />
Pesquisar
</button>
</form>
</fieldset>
<%
dim filtrosub, filtrosub_valor, SQLfiltradoSub, SQLsub, SQLcategorias
filtrosub= request.Form("filtro")
filtrosub_valor= request.Form("filtro_valor")
'Chama a conexão com o banco de dados
call abre_conexao
%>
<table id="subcategorias_tabela">
<tr><th>Código</th>
<th>Categoria</th>
<th>Título</th>
<th>Descrição</th></tr>
<%
if filtrosub="" or filtrosub_valor="" then 'Se os campos de filtro estiverem vazios
'Atribui a variável SQLsub a condição que lista todos as subcategorias
SQLsub= "select * from SUBCATEGORIAS"
'Atribui a variavél SQLcategorias a condição que lista a qual categoria pertence a subcategoria
SQLcategorias= "select * from SUBCATEGORIAS INNER JOIN CATEGORIAS ON CATEGORIAS.IdCategoria = SUBCATEGORIAS.IdCategoria"
'Executa comando SQL que lista todas subcategorias cadastradas
set rs= conexao.Execute(SQLsub)
while not rs.eof 'Enquanto não for o fim da tabela do banco de dados
response.write "<a href='altera_subcategoria.asp?codigo="
response.write UCase(rs("IdSubCategoria"))
response.write "'"
response.write "<tr>"
response.write "<td>"
response.write UCase(rs("IdSubCategoria"))
response.write "</td>"
'Executa o comando SQL que lista a qual categoria pertence a subcategoria
set rx= conexao.Execute(SQLcategorias)
response.write "<td>"
response.write UCase(rs("Titulo"))
response.write "</td>"
response.write "<td>"
response.write UCase(rs("SUBCATEGORIAS.Titulo"))
response.write "</td>"
response.write "<td>"
response.write UCase(rs("Descricao"))
response.write "</td>"
response.write "</tr>"
response.write "</a>"
rs.movenext
wend
else if filtrosub="codigo" then 'Se o campo de filtro está selecionado a opção Código
'Atribui a variável SQL a condição que lista o código digitado (busca exata)
SQLfiltradoSub= "select * from SUBCATEGORIAS where IdSubCategoria = "&filtrosub_valor&""
'Executa comando SQL que lista o código da subcategoria digitado
set rs= conexao.Execute(SQLfiltradoSub)
while not rs.eof 'Enquanto não for o fim da tabela do banco de dados
response.write "<a href='altera_subcategoria.asp?codigo="
response.write UCase(rs("IdSubCategoria"))
response.write "'"
response.write "<tr>"
response.write "<td>"
response.write UCase(rs("IdSubCategoria"))
response.write "</td>"
response.write "<td>"
response.write UCase(rs("IdCategoria"))
response.write "</td>"
response.write "<td>"
response.write UCase(rs("Titulo"))
response.write "</td>"
response.write "<td>"
response.write UCase(rs("Descricao"))
response.write "</td>"
response.write "</tr>"
response.write "</a>"
rs.movenext
wend
rs.close
filtrosub=""
filtrosub_valor=""
SQLfiltradoSub=""
else if filtrosub="categoria" then 'Se o campo de filtro está selecionado a opção Categoria
'Atribui a variável SQL a condição que lista a categoria da subcategoria digitada (busca aproximada)
SQLfiltradoSub= "select * from SUBCATEGORIAS INNER JOIN CATEGORIAS ON CATEGORIAS.IdCategoria = SUBCATEGORIAS.IdCategoria WHERE CATEGORIAS.Titulo like '%"&filtrosub_valor&"%'"
'Executa comando SQL que lista o título da categoria digitada
set rs= conexao.Execute(SQLfiltradoSub)
while not rs.eof 'Enquanto não for o fim da tabela do banco de dados
response.write "<a href='altera_subcategoria.asp?codigo="
response.write UCase(rs("IdSubCategoria"))
response.write "'"
response.write "<tr>"
response.write "<td>"
response.write UCase(rs("IdSubCategoria"))
response.write "</td>"
response.write "<td>"
response.write UCase(rs("IdCategoria"))
response.write "</td>"
response.write "<td>"
response.write UCase(rs("Titulo"))
response.write "</td>"
response.write "<td>"
response.write UCase(rs("Descricao"))
response.write "</td>"
response.write "</tr>"
response.write "</a>"
rs.movenext
wend
rs.close
filtrosub=""
filtrosub_valor=""
SQLfiltradoSub=""
else if filtrosub="titulo" then 'Se o campo de filtro está selecionado a opção Título
'Atribui a variável SQL a condição que lista o título da subcategoria digitado (busca aproximada)
SQLfiltradoSub= "select * from SUBCATEGORIAS where Titulo like '%"&filtrosub_valor&"%'"
'Executa comando SQL que lista o código da subcategoria digitado
set rs= conexao.Execute(SQLfiltradoSub)
while not rs.eof 'Enquanto não for o fim da tabela do banco de dados
response.write "<a href='altera_subcategoria.asp?codigo="
response.write UCase(rs("IdSubCategoria"))
response.write "'"
response.write "<tr>"
response.write "<td>"
response.write UCase(rs("IdSubCategoria"))
response.write "</td>"
response.write "<td>"
response.write UCase(rs("IdCategoria"))
response.write "</td>"
response.write "<td>"
response.write UCase(rs("Titulo"))
response.write "</td>"
response.write "<td>"
response.write UCase(rs("Descricao"))
response.write "</td>"
response.write "</tr>"
response.write "</a>"
rs.movenext
wend
rs.close
filtrosub=""
filtrosub_valor=""
SQLfiltradoSub=""
end if
end if
end if
end if
%>
</table>
<p>
<%
call fecha_conexao
%>
</p>
<p> </p>
</body>
</html>Carregando comentários...