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

Como seleccionar varios codigos para realizar un "in()"

Estas en el tema de Como seleccionar varios codigos para realizar un "in()" en el foro de ASP Clásico en Foros del Web. Que tal a todos, desde MX Tengo la necesidad de realizar una consulta desde ASP realizando un Sql con la condicion IN() pero este deber ...
  #1 (permalink)  
Antiguo 02/10/2007, 13:02
 
Fecha de Ingreso: octubre-2007
Mensajes: 8
Antigüedad: 17 años, 6 meses
Puntos: 0
Como seleccionar varios codigos para realizar un "in()"

Que tal a todos, desde MX

Tengo la necesidad de realizar una consulta desde ASP realizando un Sql con la condicion IN() pero este deber ser seleccionado por el usuario.

Voy por partes viendo el SQL

select a.clave, a.trabajador, b.planta from usuarios a, plantas b, " & _
"where b.plancd in('"&planta1&"','"&planta2&"') and b.clave='"&cveusr&"'

aqui es donde no se como se podria asignar a las variable (planta1, planta2...etc) lo que el usuario quiere seleccionar si lo que muestro es un combo(o cuadro desplegable). o de que otra manera pudiera hacerlo.

Espero que alguien me pueda dar una idea... saludos.-
  #2 (permalink)  
Antiguo 02/10/2007, 13:31
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Re: Como seleccionar varios codigos para realizar un "in()"

Si es un <select multiple> se supone que puede elegir entre 1 y N opciones. Y como vienen separados por comas, yo haría lo siguiente:


Código:
select a.clave, a.trabajador, b.planta from usuarios a, plantas b, " & _
"where b.plancd in("& request.form("el_name_del_select") &") and b.clave='"&cveusr&"'
__________________
...___...
  #3 (permalink)  
Antiguo 02/10/2007, 14:06
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Re: Como seleccionar varios codigos para realizar un "in()"

Ah, veo que son string y no datos numéricos... entonces deberías hacer algo así:

Código:
plantas = request.form("el_name_del_select")
plantas = replace(plantas, ",", "','")
select a.clave, a.trabajador, b.planta from usuarios a, plantas b, " & _
"where b.plancd in('"& plantas &"') and b.clave='"&cveusr&"'
__________________
...___...
  #4 (permalink)  
Antiguo 02/10/2007, 16:04
 
Fecha de Ingreso: octubre-2007
Mensajes: 8
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Como seleccionar varios codigos para realizar un "in()"

que tal Al Zuwaga, gracias por contestar...

esta muy bien lo que me enviaste, ya estoy haciendo las pruebas, pero hay un detalle...
en la seleccion multiple indico la clave y nombre de la planta ejemplo:

PTA01, PLANTA DE AMONIACO 1
PTA02, PLANTA DE AMONIACO 2
PTA03, PLANTA DE POLIETILENO

estoces los asigno a la variable de la siguente manera

planta1 = left(request.form("pta01"),5) ..... etc (para tomar solo los 5 primeros digitos)

por que los datos los envio a la misma pagina y por medio de una condicion queda seleccionado todos lo que el usuario selecciono, sin embargo como puedo hacerle para que al recargar la misma pagina, tambien la opcion multiple quede seleccionado lo que el usuario eligio...?

saludos.-
  #5 (permalink)  
Antiguo 02/10/2007, 17:56
 
Fecha de Ingreso: octubre-2007
Mensajes: 8
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Como seleccionar varios codigos para realizar un "in()"

Considero que no es importante que la pagina se recargue con lo seleccionado, estoy usando la opcion Value para cachar la variable, pero ahora me deja un espacio al inicio de la segunda variable cuando aplico el replace que me indica, de esta manera:

a.plancd in('CA2E',' CA3A',' CA3B')

la solucion seria aplicar nuevamente replace a esta variable para eliminar los espacios.

planta = request("planta")
de_planta1 = replace(planta, ",","','")
de_planta = replace(de_planta1, " ","")

de esta manera funciona muy bien....

gracias por la ayuda. 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 04:47.