Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/03/2011, 03:05
yonmacklein
 
Fecha de Ingreso: marzo-2011
Ubicación: Alcala de Guadaira
Mensajes: 8
Antigüedad: 13 años, 9 meses
Puntos: 0
relacionar QueryString a recordset

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
  1. ' esto es del botón de la pagina de resultados donde envio "loc"
  2. <a href="test4.asp?mun=<% =municipio %>&loc=<% =rcset("MUNICIPIO") %>">
  3. <img src="imagenes/img_botondetalles.gif" alt="ver detalles" border="0"/>
  4. </a>

Código ASP:
Ver original
  1. ' esto es de la pagina de pruebas donde intengo recoger el loc
  2. <% If Request.QueryString("loc")<>rcgrup("MUNICIPIO") Then %>
  3. <% =rcgrup("MUNICIPIO") %>
  4. <% Else %>
  5. <% Response.Write("NADA") %>
  6. <% End If %>

Código ASP:
Ver original
  1. <%
  2.            Dim pueblo
  3.            Dim rcgrup
  4.            Dim rWhere
  5.            Dim qSQL
  6.  
  7.            pueblo = Request.QueryString("loc")
  8.                    Set rcgrup = Server.CreateObject("ADODB.Recordset")
  9.  
  10.                   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 "
  11.                
  12.             rWhere = "HAVING (((exp.MUNICIPIO) = """ & pueblo & """)) "
  13.            
  14.            
  15.             qSQL = qSQL & rWhere
  16.             Response.Write("<p><b>Cadena SQL construida: </b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  " & qSQL & "</p>")
  17.            
  18.            call rcgrup.Open(qSQL, link)
  19.                    
  20. %>


el error, que tal vez sea por como tengo la SQL, es:

Código ASP:
Ver original
  1. Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
  2.  
  3. [Microsoft][Controlador ODBC Microsoft Access] Pocos par&#225;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 original
  1. rWhere = rWhere & " AND Exp.PUEBLO= '" & pueblo &  "' "

Última edición por yonmacklein; 19/03/2011 a las 04:45 Razón: solucionado