Buenas, como se puede ver por el titulo, me parece que no tengo ni claro lo que os quiero preguntar...
Tengo un buscador, en la pagina donde muestro los resultados, si haces click en uno de los resultados, te manda a otra pagina para verlo en detalle. Bueno, el botón manda algunas variables por la URL, concretamente una llamada "loc" que tiene el nombre del pueblo y que recoje del recordset correspondiente a donde se hace la consulta para mostrar resultados.
Ahora, en la siguiente pagina, donde muestro el resultado, actualmente lo que muestra es el mismo formulario de búsqueda pero a la hora de buscar por un pueblo, este pueblo lo pillo del QueryString("loc"), de modo que fuerzo a la gente a realizar búsquedas dentro de ese pueblo. Hasta aqui no hay problema.
Mi pregunta... quiero mostrar una especie de resumen de ese pueblo, justo antes del formulario, con datos de un recordset diferente con consultas diferentes, que eso sí, siempre tienen el campo de "pueblo" igual en todos los recordsets que estoy usando. Me gustaría saber, como puedo hacer que el ASP me compruebe que si el valor de "loc" es igual al valor de "rcset(PUEBLO)" me carge datos del recordset según ese valor, es decir, yo puedo efectivamente mostrar un valor, pero claro, me sale siempre el primer valor del campo PUEBLO del recordset... da igual el valor que tenga "loc". Aqui como tengo esto puesto:
Código ASP:
Ver original' esto es del botón de la pagina de resultados donde envio "loc"
<a href="test4.asp?mun=<% =municipio %>&loc=<% =rcset("MUNICIPIO") %>">
<img src="imagenes/img_botondetalles.gif" alt="ver detalles" border="0"/>
</a>
Código ASP:
Ver original' esto es de la pagina de pruebas donde intengo recoger el loc
<% If Request.QueryString("loc")<>rcgrup("MUNICIPIO") Then %>
<% =rcgrup("MUNICIPIO") %>
<% Else %>
<% Response.Write("NADA") %>
<% End If %>
Código ASP:
Ver original<%
Dim pueblo
Dim rcgrup
Dim rWhere
Dim qSQL
pueblo = Request.QueryString("loc")
Set rcgrup = Server.CreateObject("ADODB.Recordset")
qSQL = "SELECT pueblo.COD, exp.MUNICIPIO, Count(exp.id_tca) AS NExp FROM exp INNER JOIN pueblo ON exp.MUNICIPIO = pueblo.MUNICIPIO GROUP BY pueblo.COD, exp.MUNICIPIO "
rWhere = "HAVING (((exp.MUNICIPIO) = """ & pueblo & """)) "
qSQL = qSQL & rWhere
Response.Write("<p><b>Cadena SQL construida: </b> " & qSQL & "</p>")
call rcgrup.Open(qSQL, link)
%>
el error, que tal vez sea por como tengo la SQL, es:
Código ASP:
Ver originalMicrosoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 1.
Si bien, cuando hago un Response.Write para ver la cadena que formo, es correcta, y la pego en Access (esta todo montado sobre Access) y efectivamente funciona.
EDITADO: bueno al final he dado con la tecla parece... la culpa era de las comillas en el rWhere, ha funcionado todo al ponerlo de este modo:
Código ASP:
Ver originalrWhere = rWhere & " AND Exp.PUEBLO= '" & pueblo & "' "