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

Myakire o alguien que pueda ayudarme please help!!!!!!

Estas en el tema de Myakire o alguien que pueda ayudarme please help!!!!!! en el foro de ASP Clásico en Foros del Web. -------------------------------------------------------------------------------- hola, tengo estas dos consultas que lo que hacen es : la primera sleccionar el valor de un campo llammado "Valor" de la tabla ...

  #1 (permalink)  
Antiguo 17/08/2004, 08:42
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
Pregunta Myakire o alguien que pueda ayudarme please help!!!!!!

--------------------------------------------------------------------------------

hola, tengo estas dos consultas que lo que hacen es :
la primera sleccionar el valor de un campo llammado "Valor" de la tabla llamada "Tabla2 "donde el valor a recuperar depende de una lista llamada subcatagory de un form. La segunda consulta inserta los valores del formulario + el el valor del campo de la primer consulta.

sql1 = "SELECT Valor FROM Tabla2 Where subcatagory = '"&request("subcatagory")&"'"
response.write sql1
rs.Open sql1, conexion, 3, 3

sql11 = "INSERT INTO Mesa1 (TK, subcatagory, Mesa, Cantidad, Valor) VALUES ("&request("TK")&", '"&request("subcatagory")&"', "&request("Mesa")&", "&request("Cantidad")&", "&rs("Valor")&")"
response.write sql11
rs1.Open sql11, conexion, 3, 3

Ahora el problema es si de la lista subcatagory del form seleccionan mas de un item, ya uqe precisaria que por cada item seleccionado genere un registro con su respectivo valor que es traido de un campo en una tabla(este se encarga de hacerlo la consulta sql1 pero solo funciona para un item) se que tengo que usar un for each pero no se como aplicarlo con estas dos consultas
  #2 (permalink)  
Antiguo 17/08/2004, 08:45
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
jejeje, vaya forma de llamar la atención .
A ver, chaca esta respuesta anterior y dime si algo de eso te sirve: http://www.forosdelweb.com/f15/recuperar-valores-varios-selects-222821/

Saludos
  #3 (permalink)  
Antiguo 17/08/2004, 09:04
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
el tema que en el ejemplo del vinculo que me indicastes el menu de lista tiene dos opciones si y no y el mio tiene muchos y encima por cada valor seleccionado en la lista tiene que traer otro valor de una tabla, (ya estoy mareado)la verdad no se aplicarlo.
creo que seria algo asi

for i in request.form(subcatagory)
sql11 = Insert......Values ("&request("i")&"')
next
o no, pero encima como especifico que tambien tomo el valor del campo "Valor" correspondiente al item seleccionado ayer lo pudimos hacer para uno como hacerlo para n item seleccionados
  #4 (permalink)  
Antiguo 17/08/2004, 12:59
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
La idea no era que vieras el funcionamiento del select, sino de los checks.
Los códigos en Internet rara vez son exactamente lo que ocupamos, tenemos que modificarlos, y para ello tenemos que comprenderlos.
El ejemplo que encontraras al final del link muestra una lista de 10 checks (facilmente eso se puede cambiar a n checks) y dependiendo de los que se marquen, imprime ese mismo número de inserts.
¿Qué tiene de diferente la lista que el otro usuario manejó a la que tú manejas?
  #5 (permalink)  
Antiguo 17/08/2004, 13:04
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
disculpa que no haya entendido tus ejemplos, pero intentando uno y otra se me ocurrio hacer esto, es posible de realizarlo asi:
Dim i
TK = Request.Form("TK")
Mesa = Request.Form("Mesa")
Cantidad = Request.Form("Cantidad")

For Each i in Request.Form("subcatagory")

sql1 = "SELECT Valor FROM Tabla2 Where subcatagory = '"&request("i")&"'"
rs1.Open sql1, conexion, 3, 3

Valor = ("&rs1("Valor")&")

sql11 = "SELECT * FROM Mesa1"
rs.Open sql11, conexion, 3, 3

rs.addnew
rs("subcatagory") = i
rs("TK") = TK
rs("Mesa") = Mesa
rs("Cantidad") = Cantidad
rs("Valor") = Valor
rs.update
Next
solo que lo pruebo y me da error en la linea Valor = ("&rs1("Valor")&") donde me dice se esperaba ')'
  #6 (permalink)  
Antiguo 17/08/2004, 13:09
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
No he entendido para que sirve, pero el error se corrige asi: Valor = "("&rs1("Valor")&")"
  #7 (permalink)  
Antiguo 17/08/2004, 13:18
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
en realidad habia cambiado sql1 = "SELECT Valor FROM Tabla2 Where subcatagory = '"&request("subcatagory")&"'"
response.write sql1
rs.Open sql1, conexion, 3, 3

sql11 = "INSERT INTO Mesa1 (TK, subcatagory, Mesa, Cantidad, Valor) VALUES ("&request("TK")&", '"&request("subcatagory")&"', "&request("Mesa")&", "&request("Cantidad")&", "&rs("Valor")&")"
response.write sql11
rs1.Open sql11, conexion, 3, 3



por lo anterior para comprender mejor el for each pero no resulta
  #8 (permalink)  
Antiguo 17/08/2004, 14:27
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
a ver....¿podrías postear todo el código que tienes hasta ahora?, vamos a hechar a andar ese programita, jejeje

PD. Don't Worry, and sorry me.
  #9 (permalink)  
Antiguo 17/08/2004, 14:42
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
no problem, It's oK

el codigo es el sgte:

TK = Request.Form("TK")
Mesa = Request.Form("Mesa")
Cantidad = Request.Form("Cantidad")
subcatagory = Request.Form("subcatagory")

sql1 = "SELECT Valor FROM Tabla2 Where subcatagory = '"&request("subcatagory")&"'"
response.write sql1
rs.Open sql1, conexion, 3, 3

sql11 = "INSERT INTO Mesa1 (TK, subcatagory, Mesa, Cantidad, Valor) VALUES ("&request("TK")&", '"&request("subcatagory")&"', "&request("Mesa")&", "&request("Cantidad")&", "&rs("Valor")&")"
response.write sql11
rs1.Open sql11, conexion, 3, 3


probe con el for each pero no consigo mas que errores, ahora lo volvi a dejar como estaba antes (recuerdas que tu me ayudastes a ser esto)

le ponga el bucle a subcatagory pero no me doy cuenta de como hacerlo para la primer consulta que trae el valor de un campo de una tabla correspondiente al item que se selecciona en una lista de un form
  #10 (permalink)  
Antiguo 17/08/2004, 14:42
Avatar de mesiasdiabolico  
Fecha de Ingreso: agosto-2004
Mensajes: 33
Antigüedad: 19 años, 9 meses
Puntos: 0
1ero que nada, que te parece intentar con jscript en lugar de vbscript?

el equivalente es

for (x in collection)
__________________
Como mata el viento norte...
  #11 (permalink)  
Antiguo 17/08/2004, 14:46
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
el problema es que no se nada de javascript y estoy empezando con asp
  #12 (permalink)  
Antiguo 17/08/2004, 14:47
Avatar de mesiasdiabolico  
Fecha de Ingreso: agosto-2004
Mensajes: 33
Antigüedad: 19 años, 9 meses
Puntos: 0
esta bien np...

disculpa podrias explicar en que cosniste el formulario q usas y que deberia hacer?

asi te paso algun codigo generico que deberia funcionarte....
__________________
Como mata el viento norte...
  #13 (permalink)  
Antiguo 17/08/2004, 14:53
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Voy a salir cosa de una o dos horas, ahorita regreso, te dejo algo que hice así de rapido para que fueras jugando con ello. Solo hay que copiarlo tal cual y correrlo.
En cuento regre se conector y te envio el código restante:

Código:
TK = Request.Form("TK")
Mesa = Request.Form("Mesa")
Cantidad = Request.Form("Cantidad")
subcatagory = Request.Form("subcatagory")

response.write "TK:" & TK & "<br>"
response.write "Mesa:" & Mesa & "<br>"
response.write "cantidad:" & Cantidad & "<br>"
response.write "SubCategoria:" & subcatagory & "<br>"

vector = split (subcatagory,",")
for i=0 to UBound(vector)
    response.write("Valor "&i&"="&vector(i))&"<br>"
Next

%>

<form name=form2 method=post action='checks2.asp'>
<table border=1 width='70%'>
<td align=center><select name=subcatagory multiple="multiple">
<%for i=1 to 10%>
<option value=<%=i%>><%=i%></option>
<%Next%>
<select></td>
<td align=left>TK:<input type=text name=TK><br>
							 Mesa:<input type=text name=Mesa><br>
							 Cantidad:<input type=text name=Cantidad><br>
</tr>
<tr>
<td colspan=4 align=center><br><input type=submit name=submit2 value='Ver Inserts generados'></td>
<input type=hidden name=hidTotElementos value=10><!-- Este campo oculto es para saber cuantos registros de imprimieron, habia que cambiar el 10 por algñun contador -->
</form>
  #14 (permalink)  
Antiguo 17/08/2004, 14:55
Avatar de mesiasdiabolico  
Fecha de Ingreso: agosto-2004
Mensajes: 33
Antigüedad: 19 años, 9 meses
Puntos: 0
esta bien...

de todas formas me gustaria que me comentes mas "conceptualemnte" que es lo que quieres lograr... es la mejor manera que te proponga un codigo que funciona

podria ser?

solo en pocas palabras

salu2
__________________
Como mata el viento norte...
  #15 (permalink)  
Antiguo 17/08/2004, 15:21
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
tengo dos consultas( que estan descripta mas arriba) una que recoge el valor de un campo de una tabla que depende de lo que seleccionastes en un menu de lista que hay en un form
y la otra consulta inserta los datos del formulario mas el campo de la consulta anterio que esta relacionado con el list del form en una tabla en un mismo registro

el tema que lo que quiero hacer ahora es cuando seleccionan mas de un item en el menu de lista del form que se generen tantos ragistros por opcion selecionado en el menu de lista pero tambien que traiga el valor correspondiente a cada item de seleccionado (que es lo que hace la primer consulta pero para un solo item)
  #16 (permalink)  
Antiguo 18/08/2004, 01:46
 
Fecha de Ingreso: agosto-2004
Mensajes: 41
Antigüedad: 19 años, 10 meses
Puntos: 0
Hola a todos. Yo tengo el mismo problema (básicamente consiste en insertar tantos registros como opciones seleccione un usuario). Por lo que he ido mirando de momento he conseguido obtener los valores de cada objeto del formulario escribiendo esto tal cual:

<%
for each sel in request.form
response.write sel&"="&request.form(sel)&"<br>"
next
%>

esto me devuelve:

Campo1=Valor **Los valores son los introducidos en el campo (ya sea textbox, select, etc.)
Campo2=Valor
Campo3=Valor
etc.

Pero una vez tengo esto, falta saber como insertar los registros con los valores de los campos (que ya los tengo).
  #17 (permalink)  
Antiguo 18/08/2004, 07:31
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Ya te quedaría mas o menos así (para que lo pruebes y veas los resultados, solo copialo tal cual, lo pegas en un archivo .asp y lo corres):

Código:
<%
TK = Request.Form("TK")
Mesa = Request.Form("Mesa")
Cantidad = Request.Form("Cantidad")
subcatagory = Request.Form("subcatagory")

response.write "TK:" & TK & "<br>"
response.write "Mesa:" & Mesa & "<br>"
response.write "cantidad:" & Cantidad & "<br>"
response.write "SubCategoria:" & subcatagory & "<br>"

vector = split (subcatagory,",")
for i=0 to UBound(vector)
		sql1 = "SELECT Valor FROM Tabla2 Where subcatagory = '"&vector(i)&"'" & "<br>"
    response.write sql1
'    rs.Open sql1, conexion, 3, 3
'    sql11 = "INSERT INTO Mesa1 (TK, subcatagory, Mesa, Cantidad, Valor) VALUES ('"&TK&"', '"&vector(i)&"', '"&Mesa&"', "&Cantidad&", "&rs(""ValorDeLaOtraConsulta"")&")" & "<br>"
    sql11 = "INSERT INTO Mesa1 (TK, subcatagory, Mesa, Cantidad, Valor) VALUES ('"&TK&"', '"&vector(i)&"', '"&Mesa&"', "&Cantidad&", rs(""ValorDeLaOtraConsulta""))" & "<br>"
    response.write sql11
'    rs1.Open sql11, conexion, 3, 3
    response.write "<br>"
Next

%>

<form name=form2 method=post action='checks2.asp'>
<table border=1 width='70%'>
<td align=center><select name=subcatagory multiple="multiple">
<%for i=1 to 10%>
<option value=<%=i%>><%=i%></option>
<%Next%>
<select></td>
<td align=left>TK:<input type=text name=TK><br>
							 Mesa:<input type=text name=Mesa><br>
							 Cantidad:<input type=text name=Cantidad><br>
</tr>
<tr>
<td colspan=4 align=center><br><input type=submit name=submit2 value='Ver Inserts generados'></td>
<input type=hidden name=hidTotElementos value=10><!-- Este campo oculto es para saber cuantos registros de imprimieron, habia que cambiar el 10 por algún contador -->
</form>
Le quitas los comentarios, borras los request.write, agregas el código de conexción y listo. Pruebalo y me cuentas.

Por cierto, que no te condundan: ASP se puede escribir tanto con sintaxis VBScript como con JScript, es mas, se pueden mezclar las dos en el mismo archivo .asp, siempre y cuando se distinga muy claramente el código que corre en el servidor (etiqueta <script RUNAT=server language="uno de los dos" o marcas <%%>) del que corre en el cliente (etiqueta <script language="uno de los dos">).

Saludos
  #18 (permalink)  
Antiguo 18/08/2004, 07:39
Avatar de mesiasdiabolico  
Fecha de Ingreso: agosto-2004
Mensajes: 33
Antigüedad: 19 años, 9 meses
Puntos: 0
lo q no me gusta es eso de recuperar el valor en un recordset y usarlo en el otro...

recomiendo hacer todo en la misma instruccion usando los INNER JOIN adecuados...

despues recorrer las opciones elegidas es simple:

for (ptrSub in Request.Form("subcatagory"))
instruccion_sql(ptrSub)


salu2
__________________
Como mata el viento norte...
  #19 (permalink)  
Antiguo 18/08/2004, 07:49
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Pues si, pero este problema tiene que ser sacado de la forma mas simple posible. No intentemos en este momento optimizar relaciones.

Saludos
  #20 (permalink)  
Antiguo 18/08/2004, 08:28
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
hola, Myakire hice lo que me pediste con algunas modificaciones por unos error de que se esperaba fin de instruccion o se esperaba ')' etc

y me quedo esto

TK = Request.Form("TK")
Mesa = Request.Form("Mesa")
Cantidad = Request.Form("Cantidad")
subcatagory = Request.Form("subcatagory")

response.write "TK:" & TK & "<br>"
response.write "Mesa:" & Mesa & "<br>"
response.write "cantidad:" & Cantidad & "<br>"
response.write "SubCategoria:" & subcatagory & "<br>"

vector = split (subcatagory,",")
for i=0 to UBound(vector)

sql1 = "SELECT Valor FROM Tabla2 Where subcatagory = '"&vector(i)&"'"
rs.Open sql1, conexion, 3, 3

sql11 = "INSERT INTO Mesa1 (TK, subcatagory, Mesa, Cantidad, Valor) VALUES ("&TK&", '"&vector(i)&"', "&Mesa&", "&Cantidad&", "&rs("Valor")&")"
rs1.Open sql11, conexion, 3, 3

Next

%>


llegue al error de que en la consulta sql11 "ocurrio una excepcion" seguramente algo estoy obviando en el codigo pero no se que es
  #21 (permalink)  
Antiguo 18/08/2004, 08:49
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
perdon el error era que me habia equivocado en la consulta
quedo asi
igual pero cambiando la consulta sql11
sql11 = "INSERT INTO Mesa1 (TK, subcatagory, Mesa, Cantidad, Valor) VALUES ("&request("TK")&", '"&vector(i)&"', "&request("Mesa")&", "&request("Cantidad")&","&rs("Valor")&")"

ahora no me da error pero tampoco inserta ningun valor en la db
  #22 (permalink)  
Antiguo 18/08/2004, 08:54
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
¿En que linea marca el error?

sql11 = "INSERT INTO Mesa1 (TK, subcatagory, Mesa, Cantidad, Valor) VALUES ("&TK&", '"&vector(i)&"', "&Mesa&", "&Cantidad&", "&rs("Valor")&")"

TK, Mesa, Cantidad y rs("Valor") los consideras numéricos, ¿es correcto?
  #23 (permalink)  
Antiguo 18/08/2004, 08:57
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
ahora no me marca error directamente no inserta ningun registro en DB

TK, Mesa, Cantidad y rs("Valor"), si son todos valores numericos
  #24 (permalink)  
Antiguo 18/08/2004, 09:01
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
el error antas lo marcaba en sql11(ocurrio una excepcion)luego lo modifique un poco ahora no marca error pero no inserta ningun valor
  #25 (permalink)  
Antiguo 18/08/2004, 09:04
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Si no inserta los registros es por que no entra al for i=0 to UBound(vector), y esto puede ser por que no tenga valores, esto es que no se ha seleccionado nada de la lista. Por un response.write subcatagory antes del for para verificar que lleguen datos.
  #26 (permalink)  
Antiguo 18/08/2004, 09:08
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
con el response.write me muestra los valores de TK, Cantidad y mesa pero no el de subcatagory ni tampoco obviamente el campo "valor" de la tabla relacionado con el item seleccionado en subcatagory
lo esoty probando en mi asp por el contenido de subcatagory que los item son texto y estan en la misma tabla de donde debe relacionarce con el valor.
  #27 (permalink)  
Antiguo 18/08/2004, 09:15
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
A ver, pon el código del Formulario
  #28 (permalink)  
Antiguo 18/08/2004, 09:18
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
el codigo quedo asi:

Dim conexion
Dim rs
Dim rs1

Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Mode=3
conexion.Open("Provider=Microsoft.Jet.OLEDB.4.0;Da ta Source=" & Server.MapPath("db2.mdb"))
Set rs = Server.createobject("ADODB.Recordset")
Set rs1 = Server.createobject("ADODB.Recordset")

sql="insert into NTK (TK) values ('" & request("TK") & "')"
conexion.Execute(sql)

TK = Request.Form("TK")
Mesa = Request.Form("Mesa")
Cantidad = Request.Form("Cantidad")

vector = split (subcatagory,",")
for i=0 to UBound(vector)

sql1 = "SELECT Valor FROM Tabla2 Where subcatagory = '"&vector(i)&"'"
rs.Open sql1, conexion, 3, 3

sql11 = "INSERT INTO Mesa1 (TK, subcatagory, Mesa, Cantidad, Valor) VALUES ("&TK&", '"&vector(i)&"', "&Mesa&", "&Cantidad&", "&rs("Valor")&")"
rs1.Open sql11, conexion, 3, 3

response.write sql11

Next
conexion.close
set conexion=nothing
  #29 (permalink)  
Antiguo 18/08/2004, 09:25
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Fata esto:
...
Cantidad = Request.Form("Cantidad")
subcatagory = Request.Form("subcatagory")
vector = split (subcatagory,",")
for i=0 to UBound(vector)
  #30 (permalink)  
Antiguo 18/08/2004, 09:50
 
Fecha de Ingreso: agosto-2004
Mensajes: 81
Antigüedad: 19 años, 10 meses
Puntos: 0
vector = split (subcatagory,",")
for i=0 to UBound(vector)

sql1 = "SELECT Valor FROM Tabla2 Where subcatagory = '"&vector(i)&"'"
rs.Open sql1, conexion, 3, 3


TK = Request.Form("TK")
Mesa = Request.Form("Mesa")
Cantidad = Request.Form("Cantidad")
subcatagory = Request.Form("subcatagory")


sql11 = "INSERT INTO Mesa1 (TK, subcatagory, Mesa, Cantidad, Valor) VALUES ("&TK&", '"&vector(i)&"', "&Mesa&", "&Cantidad&", "&rs("Valor")&")"
rs1.Open sql11, conexion, 3, 3

response.write sql11

tuve que acomodarlo asi si no me dice "La operación no está permitida si el objeto está abierto" sobre rs.Open sql1, conexion, 3, 3

pero tampoco inserta nada
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 11:39.