Saludos a los miembros del foro
tengo el siguiente problema, en una consulta SQL quisiera resaltar en el resultado la palabra que usé para desencadenar la consulta. He intentado con el objeto response pero siempre me devuelve error.
¿como puedo atacar este problema?
Y podes poner
<%
Response.Write("<B>") etiqueta de apertura para negrita en HTML
Response.Write(registro) este es el registro que queres resaltar
Response.Write("</B>") etiqueta de cierre para negrita en HTML
%>
o si no podes poner
<B> <%response.Write(Registro)%> </B>
Bueno espero que entiendas...
No se si es eso lo que queres hacer...
Me pareció interesante el tema así que he estado trabajando en ello
Mi solución es esta
<html>
<head>
</head>
<body>
<table border="1">
<%
nombre_buscar = Request.Form("nombre")
tema_buscar = Request.Form("tema")
if nombre_buscar = "" AND tema_buscar = "" then
Response.Write("<tr><td>No ha expecificado ningún parametro de busqueda</td></tr></table>")
Response.End
else
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(".FORO.mdb"))
set RS = Server.CreateObject("ADODB.Recordset")
set RSb = Server.CreateObject("ADODB.Recordset")
sSQL="Select Cuerpo, IdMensaje From MENSAJES WHERE Cuerpo LIKE '%"& Request.Form("nombre") &"%'"
sSQLb="Select Tema, IdMensaje From MENSAJES WHERE Tema = '"& tema_buscar &"'"
RS.Open sSQL, Conn,3,1
RSb.Open sSQLb, Conn,3,1
if (RS.EOF) and (RSb.EOF) then
Response.Write("<tr><td>La busqueda no ha tenido exito</td></tr></table>")
Response.End
elseif (RS.EOF) and tema_buscar = "" then
Response.Write("<tr><td>La busqueda no ha tenido exito</td></tr></table>")
Response.End
elseif (RSb.EOF) and nombre_buscar = "" then
Response.Write("<tr><td>La busqueda no ha tenido exito</td></tr></table>")
Response.End
elseif nombre_buscar <> "" and tema_buscar <> "" then
Do While Not RS.EOF
cadena = RS("Cuerpo")
largo = Len(cadena) 'largo de la cadena
cadena1 = nombre_buscar 'palabra que sustraemos de la cadena
valor1 = InStr(1, cadena, cadena1, 1) 'valor de la cadena
cadena2 = Len(cadena1) 'largo de cadena1
suma= valor1 + cadena2
subcadena=Mid(cadena, valor1, cadena2) 'caracteres que sacamos de la cadena
valor2 = valor1 -1
subcadena1=Mid(cadena, 1, valor2) 'caracteres que sacamos de la cadena
subcadena2=Mid(cadena, suma, largo) 'caracteres que sacamos de la cadena
%>
<tr><td>
<a href="./mostrar.asp?id=<%=RS("IdMensaje")%>"><%=Cortar (subcadena1, 30)%><span style="color:red;font-weight:bold;"><%=subcadena%></span><%=Cortar (subcadena2, 30)%></a>
</td></tr>
<%
RS.MoveNext
Loop
Do While Not RSb.EOF
cadenab = RSb("Tema")
largob = Len(cadenab)
cadena1b = tema_buscar
valor1b = InStr(1, cadenab, cadena1b, 1)
cadena2b = Len(cadena1b)
sumab= valor1b + cadena2b
subcadenab=Mid(cadenab, valor1b, cadena2b)
valor2b = valor1b -1
subcadena1b=Mid(cadenab, 1, valor2b)
subcadena2b=Mid(cadenab, sumab, largob)
%>
<tr><td>
<a href="./mostrar.asp?id=<%=RSb("IdMensaje")%>"><%=Cortar (subcadena1b, 30)%><span style="color:red;font-weight:bold;"><%=subcadenab%></span><%=Cortar (subcadena2b, 30)%></a>
</td></tr>
<%
RSb.MoveNext
Loop
Response.Write("</table>")
elseif nombre_buscar <> "" and tema_buscar = "" then
Do While Not RS.EOF
Dim cadena, largo, cadena1, valor1, cadena2, suma, subcadena, valor2, subcadena1, subcadena2
cadena = RS("Cuerpo")
largo = Len(cadena) 'largo de la cadena
cadena1 = nombre_buscar 'palabra que sustraemos de la cadena
valor1 = InStr(1, cadena, cadena1, 1) 'valor de la cadena
cadena2 = Len(cadena1) 'largo de cadena1
suma= valor1 + cadena2
subcadena=Mid(cadena, valor1, cadena2) 'caracteres que sacamos de la cadena
valor2 = valor1 -1
subcadena1=Mid(cadena, 1, valor2) 'caracteres que sacamos de la cadena
subcadena2=Mid(cadena, suma, largo) 'caracteres que sacamos de la cadena
%>
<tr><td>
<a href="./mostrar.asp?id=<%=RS("IdMensaje")%>"><%=Cortar (subcadena1, 30)%><span style="color:red;font-weight:bold;"><%=subcadena%></span><%=Cortar (subcadena2, 30)%></a>
</td></tr>
<%
RS.MoveNext
Loop
Response.Write("</table>")
elseif tema_buscar <> "" and nombre_buscar = "" then
Do While Not RSb.EOF
Dim cadenab, largob, cadena1b, valor1b, cadena2b, sumab, subcadenab, valor2b, subcadena1b, subcadena2b
cadenab = RSb("Tema")
largob = Len(cadenab)
cadena1b = tema_buscar
valor1b = InStr(1, cadenab, cadena1b, 1)
cadena2b = Len(cadena1b)
sumab= valor1b + cadena2b
subcadenab=Mid(cadenab, valor1b, cadena2b)
valor2b = valor1b -1
subcadena1b=Mid(cadenab, 1, valor2b)
subcadena2b=Mid(cadenab, sumab, largob)
%>
<tr><td>
<a href="./mostrar.asp?id=<%=RSb("IdMensaje")%>"><%=Cortar (subcadena1b, 30)%><span style="color:red;font-weight:bold;"><%=subcadenab%></span><%=Cortar (subcadena2b, 30)%></a>
</td></tr>
<%
RSb.MoveNext
Loop
Response.Write("</table>")
end if
RS.Close
Set RS = Nothing
RSb.Close
Set RSb = Nothing
Conn.Close
Set Conn = Nothing
end if
' -------------------------------------------------
Function Cortar (str, longitud)
if Len(str) => longitud then
Cortar=Left(str, longitud)&".."
else
Cortar=str
end if
End Function
' --------------------------
%>
</body>
</html>
A cuantos mas casillas tenga el form mas sentencias SQL tendrás que crear. Esto está hecho para dos parametros.
Suerte!!
Si te solucionó el problema pulsa en G+1