Foros del Web » Programando para Internet » ASP Clásico »

Búsqueda dentro de búsqueda

Estas en el tema de Búsqueda dentro de búsqueda en el foro de ASP Clásico en Foros del Web. Hola. Os explico mi problemilla. Tengo una paginilla en la que se da a buscar unos caracteres, y donde se muestra todo lo que coincida ...
  #1 (permalink)  
Antiguo 11/01/2007, 09:31
 
Fecha de Ingreso: diciembre-2004
Mensajes: 25
Antigüedad: 20 años, 3 meses
Puntos: 0
Búsqueda dentro de búsqueda

Hola. Os explico mi problemilla. Tengo una paginilla en la que se da a buscar unos caracteres, y donde se muestra todo lo que coincida con lo que el usuario dice buscar.

Por ejemplo, ponemos para buscar H9 y nos aparece H90, H91, H92... H99, y todo lo que contenga H9 al principio, mitad o final. (ésto ya lo tengo)

Luego, cada caracter significa una cosa diferente. Ya tengo que te separe todos los caracteres por separado y los guarde en una variable. El primer caracter, por decir algo, es la ciudad; el segundo es el distrito... (también lo tengo).

Lo que no tengo, y es lo que necesitaría, es que muestre a qué corresponde la H estando el el primer carácter, o en el segundo... ... o en vez de la H, pues a qué corresponde el 4... ... cualquiera que haya, vamos.
_____

Tengo un access, en el que tengo una tabla con todas las posibles ciudades. En un campo, el carácter que la representa, y en el otro, el nombre. Por ejemplo, H: Huelva, 1: Barcelona, 2: Madrid, 3: Zaragoza... ... con todos los posibles valores.

Entonces, me tiene que mostrar un listado, si busco H, con todo lo que contenga H, y al lado de cada registro que tenga una H, decirme... Huelva

p.e.

H15 - Huelva - Distrito 1, calle 5
H18 - Huelva - Distrito 1, calle 8
H22 - Huelva - Distrito 2, calle 2
[...]
__________________________________________________ _____________

Entonces, mi duda, es que tengo que hacer una búsqueda, buscando la H (por decir), y luego, a medida que me muestra cada uno de los valores de la tabla, buscando la H, me ha de buscar en otra tabla del mismo access (sin que me cierre la primera consulta, puesto que al buscar H=HUELVA tiene que seguir con el siguiente registro que contenga H.

No sé si me explico.. .... ... pero a ver si alguien me entiende y me ayuda.

PD: Tengo lo de buscar todas las H en un campo de una tabla, y tb tengo lo de separar H18 y ponerlo en 3 variables diferentes: a=H; b=1; c=8. Lo único que me falta es buscar dentro de una búsqueda (sin anular la primera).

Pd2: Graciaaaas!!!

----------------editado:

Otro ejemplo de lo que quiero, que al igual queda mejor explicado: por ejemplo, buscamos "1", y nos tendría que aparecer:

B18 - Barcelona - Distrito 1, calle 8
B21 - Barcelona - Distrito 2, calle 1
H11 - Huelva - Distrito 1, calle 1
Z51 - Zaragoza - Distrito 5, calle 1
  #2 (permalink)  
Antiguo 17/01/2007, 03:22
 
Fecha de Ingreso: diciembre-2004
Mensajes: 25
Antigüedad: 20 años, 3 meses
Puntos: 0
Re: Búsqueda dentro de búsqueda

Bueno, lo solucioné de forma cutre... ... haciendo la primera búsqueda y luego, en la página ASP haciendo un SELECT CASE y, dependiendo del valor, poner HUESCA, BARCELONA... ...
  #3 (permalink)  
Antiguo 17/01/2007, 05:38
Avatar de Kamarada_Malkav  
Fecha de Ingreso: octubre-2005
Ubicación: Madrid
Mensajes: 70
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: Búsqueda dentro de búsqueda

Hola asauce

Por tenerlo un poco más "limpio" yo lo que haría sería meter todas esas correspondencias (B - Barcelona, H - Huesca, etc) en una tabla de la base de datos en plan diccionario, y una vez que tuvieras las iniciales hacer otra búsqueda sobre esa tabla.

Saludos.
  #4 (permalink)  
Antiguo 18/01/2007, 05:36
 
Fecha de Ingreso: diciembre-2004
Mensajes: 25
Antigüedad: 20 años, 3 meses
Puntos: 0
Re: Búsqueda dentro de búsqueda

Hola Kamarada.

Eso era lo que querría haber hecho pero lo que no sé es cómo hacer una búsqueda de los valores y, sin terminar ésta (dentro de ella), realizar otra búscqueda en otra tabla donde me diga a qué corresponde la H o la B. Más o menos ésto:

1. Buscar los valores que contengan 1 (por decir algo, el valor que ha introducido el usuario).

2. Ir a la tabla de "productos" (por decir algo) y buscar todos los productos que contengan 1.

3. El primer valor que contiene 1 (por decir), es H12... y me lo escribe en la pantalla.

4. Me vuelve a hacer una consulta en otra tabla donde está lo que corresponde a la H, a la B, a la Z, a la V... ... y H=Huesca.

5. Me escribe Huesca en la pantalla (H12 - Huesca).

6. Me sigue con la primera consulta buscando el siguiente producto que contenga "1".

7. While not EOF -> Go to 4

Esa era mi duda inicial, de cómo hacer una consulta, dentro de otra consulta diferente.
  #5 (permalink)  
Antiguo 18/01/2007, 05:52
Avatar de Kamarada_Malkav  
Fecha de Ingreso: octubre-2005
Ubicación: Madrid
Mensajes: 70
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: Búsqueda dentro de búsqueda

Tienes un error de concepto, no se va haciendo la búsqueda de la manera que piensas, son dos búsquedas distintas (una de ellas si se repite).

Primero haces la búsqueda sobre la tabla de productos de los valores que contengan ese 1 (o lo que sea). Esta consulta la tendrás almacenada en un recordset. Entonces recorres cada uno de los registros que te ha arrojado esa búsqueda en el recordset tomando la H, la B, la Z... para hacer la otra búsqueda en la otra tabla, que te arrojará el campo que buscas. La cosa sería algo asi:

1ª Busqueda:

Código:
sql = "SELECT * FROM Productos WHERE Campo1 LIKE '%1%' OR Campo2 LIKE '%1%'"
Eso arrojará una solución con varios registros que habrás almacenado en un recordset que, por ser originales llamaremos rs. Ahora tenemos que sacar los datos de la tabla diccionario para saber los nombres de las ciudades:

Código:
do while not rs.EOF 'Para hacerlo por cada uno de los registros'
  .....
  sql = "SELECT Nombre FROM Diccionario WHERE Codigo = " & rs.fields
  .....
  rs.movenext
loop
A ver si así he arrojado un poco de luz a tu problema, aunque con mis explicaciones tan buenas no creo jejejeje.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:10.