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

Asignar, pero como?

Estas en el tema de Asignar, pero como? en el foro de ASP Clásico en Foros del Web. Que tal Sres: Tengo la siguiente tabla "Tabla1" en access: dom num cliente 1 10 cliente1 2 10 cliente1 1 20 cliente2 2 20 cliente2 ...
  #1 (permalink)  
Antiguo 04/03/2003, 17:55
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 4 meses
Puntos: 1
Asignar, pero como?

Que tal Sres:

Tengo la siguiente tabla "Tabla1" en access:

dom num cliente
1 10 cliente1
2 10 cliente1
1 20 cliente2
2 20 cliente2
3 20 cliente2

La idea es hacer un sql que levante num=20 (en este caso 3 reg.). Luego con un while (se me ocurre asi) quiero asignar cada valor de cada campo a un textbox de modo que quede como "editado", cambiar algun valor y luego enviar a la base los datos corregidos.
Alguien me puede orientar como generar dinamicamente los textbox con los valores dentro, de acuerdo a los registros que encuentre el sql?. Ademas deberia darle un size distinto para cada textbox ya que cada campo alberga desde numeros enteros hasta cadenas de texto de no mas de 23 caracteres.

Gracias.
__________________
Carlunchos

Última edición por carlunchos; 04/03/2003 a las 17:58
  #2 (permalink)  
Antiguo 04/03/2003, 18:35
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 4 meses
Puntos: 1
Me temo que tendre que contar los registros que hay (recordcount), usar un for I de 1 to rst.Recordcount ó trabajar con una matriz?.

No me sale nada.

Saludos.
__________________
Carlunchos
  #3 (permalink)  
Antiguo 04/03/2003, 21:04
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
carlunchos... te pediría si te podés explicar mejor ya que, según creo, te entendí algo que realmente me parece absurdo:

meter los valores de los 3 campos en sólo un textbox para luego, al editar cualquiera de los 3 campos, estos se guarden en su respectiva ubicación en la BD (no es imposible, pero si algo raro )
  #4 (permalink)  
Antiguo 04/03/2003, 21:15
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 4 meses
Puntos: 5
Lo que quieres hacer (si entiendo bien) es un GRID, busca esta palabra en el foro, recuerdo haber visto algun par de mensajes en los ultimos meses sobre ese tema...

Saludos!
__________________
Manoloweb
  #5 (permalink)  
Antiguo 04/03/2003, 21:26
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
manolo, disculpá que te contradiga... pero eso no es un GRID (al menos no de los habituales!!!)

A ver... dijo:

Cita:
quiero asignar cada valor de cada campo (o sea, todos los campos del recordset) a un textbox (o sea, a SOLO 1 TEXTBOX)

Reitero.. no es imposible, pero si medio "loco"... o al menos un GRID demasiado rebuscado


(si te entendí mal, favor de corregir)
  #6 (permalink)  
Antiguo 05/03/2003, 05:35
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 4 meses
Puntos: 1
Sres, evidentemente la oratoria no es mi fuerte, asi que paso a tratar de explicar mejor lo que quise decir:

si el sql encuentra los 3 reg (num=20) , debo generar 3 filas de textbox's cada fila (uno para dom , otro para num y otro para cliente cada fila).
De esta manera cada textbox contendrá un valor de acuerdo a lo encontrado por el sql.
Por otra parte debo tener en cuenta que el sql puede encontrar mas de 3 reg ó menos ó ninguno, es decir que la generacion de textbox's dinamicos sera en funcion del valor del recordset.

Espero haber sido mas explicito y por sobre todo que puedan orientarme.

Saludos.
__________________
Carlunchos
  #7 (permalink)  
Antiguo 05/03/2003, 08:41
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 4 meses
Puntos: 5
Bueno, reitero que para mi gusto lo que buscas es un GRID... O sea que tus datos puedas verlos y editarlos en una rejilla parecida a un excel, y con un solo click actualizar todo lo que hayas modificado, independientemente de la cantidad de registros...

Checa esto: www.aspgrid.com

Y si es lo que buscas, tal vez en www.sourceforge.net o en www.hotscripts.com puedas encontrar algo similar pero gratuito.


Saludos!
__________________
Manoloweb

Última edición por Manoloweb; 05/03/2003 a las 08:52
  #8 (permalink)  
Antiguo 05/03/2003, 10:09
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 4 meses
Puntos: 1
Asi resolví parcialmente el problema (esto es parte de lo que tengo que hacer):

response.write "<td align=center><font color=blue face=arial size=1>Dom</td>"
response.write "<td align=center><font color=blue face=arial size=1>CodCalle</td>"
response.write "<td align=center><font color=blue face=arial size=1>Provincia</td>"

do while not rst.EOF

response.write "<td><input type='text' name='txtnum1' size=1 value="&rst("num")&"></td>"
response.write "<td><input type=text name='txtcodcalle1' size=5 value="&rst("codcalle")&"></td>"
response.write "<td><input type=text name='txtprov1' size=23 value="&rst("prov")&"></td>"

rst.movenext
loop
rst.close

asi genero la cantidad de textbox que necesite de acuerdo al valor del recordset. Pero ahora me encontre con un problema: si hay mas de un registro encontrado como le asigno un numero distinto a los "name" de cada textbox?. Para el primer registro sera txtnum1, txtcodcalle1 y txtprov1. Como asigno dinamicamente txtnum2, txtcodcalle2, etc y asi segun la cantidad de reg encontrados.
Esto se me plantea porque la pagina que recibe los contenidos de los textbox debe tener la posibilidad de recibir mas de un registro.
Alguna idea?

Manoloweb, Dazuaga o alguien, espero una orientacion.
__________________
Carlunchos
  #9 (permalink)  
Antiguo 05/03/2003, 10:38
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535

i = 1
do while not rst.EOF

response.write "<input type='hidden' name='txtID" & i & "' value="&rst("ID_DEL_REGISTRO")&">"
response.write "<td><input type='text' name='txtnum" & i & "' size=1 value="&rst("num")&"></td>"
response.write "<td><input type=text name='txtcodcalle" & i & "' size=5 value="&rst("codcalle")&"></td>"
response.write "<td><input type=text name='txtprov" & i & "' size=23 value="&rst("prov")&"></td>"

i = i + 1
rst.movenext
loop

' y acá agregaría un input oculto para simplificar luego
' el procedimiento al hacer el update en la otra página:

response.write "<input type='hidden' name='cantidad' value="& i &">





luego, en la página que hace el update...


Registros = Request.Form("cantidad") 'ya sabés cuantos son

For i = 1 to Registros

ID = Request.Form("txtID" & i)
Dom = Request.Form("txtnum" & i)
Codcalle = Request.Form("txtcodcalle" & i)
Prov = Request.Form("txtprov" & i)

SQL = "UPDATE Tabla SET Dom = '"&Dom&"', Codcalle = '"&Codcalle&"', Prov = '"&Prov&"' WHERE ID_DEL_RTEGISTRO = " & ID
Next
  #10 (permalink)  
Antiguo 05/03/2003, 10:42
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 4 meses
Puntos: 1
Hola Dazu, lo veo y te comento.
Ta'logo.
__________________
Carlunchos
  #11 (permalink)  
Antiguo 05/03/2003, 10:44
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Fijate que también agregué un hidden con el ID del registro... sinó, como sabrías cuál modificar?

Y si, manolo... era un GRID no más
  #12 (permalink)  
Antiguo 05/03/2003, 12:53
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 4 meses
Puntos: 5
Asi es...


Por otro lado...
Muuuy simple y funcional el resultado final, los felicito!!
__________________
Manoloweb
  #13 (permalink)  
Antiguo 05/03/2003, 17:34
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 4 meses
Puntos: 1
Dazuaga, como no tengo ID en la tabla hago un sql con un valor que viene volando de otra pagina, si el recordset no es null o vacio ejecuta lo que me pasaste. Pero hete aqui que el registro no se actualiza. Revise cada una de las variables que van a la pagina que hace el update, revise los valores, revise el sql que ejecuta el update.
Lo raro es que no hay cartel de error.
Hice un response.write de i, imprimiendo cada ciclo del for.

Alguna sugerencia?.

Manoloweb te adelantaste con las felicitaciones en lo que a mi respecta. Todo el credito para el Maestro Dazuaga.

Hasta luego.
__________________
Carlunchos
  #14 (permalink)  
Antiguo 05/03/2003, 17:46
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
carlunchos, quiero creer que no usaste mi ejemplo así como viene sin hacerle las modificaciones pertinentes

Luego de la SQL y antes del NEXT (por cada ciclo del FOR) hay que ejecutar la consulta de actualización! (además de tener una conexión ya definida)

ComoSeLlameTuConexion.Execute(SQL)
  #15 (permalink)  
Antiguo 06/03/2003, 12:18
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 4 meses
Puntos: 1
Gracias Dazuaga, ya esta funcionando a pleno. Me faltaba darle no requerido a 2 campos de la tabla para poder ingresarlo.

Saludos.
__________________
Carlunchos
  #16 (permalink)  
Antiguo 06/03/2003, 12:44
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Genial
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 23:32.