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

Actualizar Datos

Estas en el tema de Actualizar Datos en el foro de ASP Clásico en Foros del Web. Que tal, Reciba un cordial saludo. Tengo una duda, Yo cuento con una pagina para actualizar datos en mi base de datos, pero en mi ...
  #1 (permalink)  
Antiguo 21/07/2003, 11:45
Avatar de GUAPOBEN  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico DF
Mensajes: 204
Antigüedad: 21 años, 7 meses
Puntos: 1
Exclamación Actualizar Datos

Que tal, Reciba un cordial saludo.

Tengo una duda, Yo cuento con una pagina para actualizar datos en mi base de datos, pero en mi pagina me muestra un campo desplegable donde seleccione el nombre que voy a editar, y el otro campo esta vacio para llenarlo con lo que le voy a cambiar, es posible que en el segundo campo me aparesca el contenido del mismo y sobre el contenido modificar. ejemplo.

(ACTUAL asi lo tengo.)

Nombre (Campo Desplegable) Juanito
Apellido: (Campo Vacio) Aqui ingreso el apelleido correcto (suponiendo)

(Como me gustaria que quedara)

Nombre (Campo Desplegable) Juanito
Apellido Peres (Aqui me esta apareciendo el contenido del campo y sobre este mismo modifico de Peres a Perez).

Ojala y me puedan ayudar.

Muchas GRACIAS
__________________
Guapo Ben
Servidor y Amigo :adios:
  #2 (permalink)  
Antiguo 21/07/2003, 13:15
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 7 meses
Puntos: 4
La mejor opción no sería, en mi opinión, utilizar directamente ASP sino Javascript.

En concreto se trataría de cargar en matrices los nombres y apellidos que se van a desplegar. Si bien, esto lo haces desde ASP y una consulta a base de datos, el truco consiste en trabajar luego con esa información contenida en las matrices.

Te dejo un enlace a una FAQ de Javascript donde se explica cómo hacerlo.

Un saludo.

Kar, no te mosquees, que ya sé que quizás esta no es la mejor respuesta.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #3 (permalink)  
Antiguo 21/07/2003, 14:54
Avatar de GUAPOBEN  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico DF
Mensajes: 204
Antigüedad: 21 años, 7 meses
Puntos: 1
Vi el ejemplo, pero no es lo que estoy buscando o necesitando
__________________
Guapo Ben
Servidor y Amigo :adios:
  #4 (permalink)  
Antiguo 21/07/2003, 16:17
 
Fecha de Ingreso: julio-2003
Ubicación: Cochabamba Bolivia
Mensajes: 300
Antigüedad: 20 años, 11 meses
Puntos: 14
Estoy completamente de acuerdo contigo no es lo que quieres, te mando el enlace de aspfacil donde supongo esta lo que quieres, con la diferencia que no funciona con un select y un text, si no con dos selects, el codigo no lo cambies mucho a menos que conosca bien javascript y asp, por que maneja los dos, pero lo que tienes que hacer es cambiar el segundo select por un text y ya.
espero te sirva el enlace es el siguiente:
http://www.aspfacil.com/codigo/listasdependientes.asp
alli mismo te explica un poco y puedes bajarte el codigo fuente o un zip para insertalo o modificarlo.
Suerte
__________________
:policia: Uno para todos y todos para uno.
  #5 (permalink)  
Antiguo 22/07/2003, 08:04
Avatar de GUAPOBEN  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico DF
Mensajes: 204
Antigüedad: 21 años, 7 meses
Puntos: 1
Muchas GRACIAS Sander¡¡¡¡
__________________
Guapo Ben
Servidor y Amigo :adios:
  #6 (permalink)  
Antiguo 22/07/2003, 08:25
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 7 meses
Puntos: 0
Recibes con el ID del registro a editar (me imagino)

En el formulario que estas haciendo los cambios solo debes colocar value="<%=rst("apellido")%>", y eso es todo ya lo tienes para modificarlo...

si es un select (a pesar que no lo justifico, si estas colocando solo el nombre)
solo debes hacer un loop antes de llamar al campo...


<option><%=rst("nombre")%></option>


Slds.
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #7 (permalink)  
Antiguo 22/07/2003, 12:46
Avatar de GUAPOBEN  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico DF
Mensajes: 204
Antigüedad: 21 años, 7 meses
Puntos: 1
UNIVERCITY muchas gracias por el tip, de hecho como me lo indicas ya lo habia intentado hacer, pero me manda este error:

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'rst'

/skytel/bases/actualizar1.asp, line 51

Mi codigo es este:

<HTML>
<HEAD>
<TITLE>Actualizar1.asp</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Actualizar un registro</h1>
<br>

<%
'Instanciamos y abrimos nuestro objeto conexion
Dim Conn,strSQL, objRS

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Ctro Mensajes.mdb"))
%>

<!--webbot BOT="GeneratedScript" PREVIEW=" " startspan --><script Language="JavaScript"><!--
function FrontPage_Form1_Validator(theForm)
{

if (theForm.Nombre.selectedIndex == 0)
{
alert("La primera opción \"Seleccionar\" no es válida. Elija una de las otras opciones.");
theForm.Nombre.focus();
return (false);
}
return (true);
}
//--></script><!--webbot BOT="GeneratedScript" endspan --><FORM METHOD="POST" ACTION="actualizar2.asp" onsubmit="return FrontPage_Form1_Validator(this)" name="FrontPage_Form1">
Nombre
<%
'Creamos la sentencia SQL y la ejecutamos
sSQL="Select Nombre From Nextel Order By Nombre ASC"
set RS = Conn.Execute(sSQL)
%>
<!--webbot bot="Validation" S-Display-Name="Seleccionar"
B-Disallow-First-Item="TRUE" -->
<select name="Nombre" size="1" tabindex="1">
<option selected>Seleccione</option>
&nbsp;
<%
'Generamos el menu desplegable
Do While not RS.eof%>
<option><%=RS("Nombre")%> <%RS.movenext
Loop
%>
</select>
<br>
Nombre Completo
<INPUT NAME="pal" size="20" tabindex="2" value="<%=rst("apellido")%>">
<p><br>
<INPUT TYPE="SUBMIT" value="Actualizar" tabindex="3">
<input type="reset" value="Cancelar" name="Borrar" tabindex="4"></p>
</FORM>
</div>

</BODY>
</HTML>


En que esta mal??

GRACIAS por su ayuda.
__________________
Guapo Ben
Servidor y Amigo :adios:
  #8 (permalink)  
Antiguo 22/07/2003, 12:56
Avatar de GUAPOBEN  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico DF
Mensajes: 204
Antigüedad: 21 años, 7 meses
Puntos: 1
Mira. le quite la T del RST por que al parecer ese era el error y ahora envia este error:

ADODB.Fields error '800a0cc1'

ADO could not find the object in the collection corresponding to the name or ordinal reference requested by the application.

/skytel/bases/actualizar1.asp, line 51
__________________
Guapo Ben
Servidor y Amigo :adios:
  #9 (permalink)  
Antiguo 22/07/2003, 20:02
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 7 meses
Puntos: 0
POr lo menos me dio cuenta que te distes cuenta,,, jeje...

RS o RST dependerá como declares tu recorset, en este caso lo tienes declarado como RS.... y fijate en donde tienes APELLIDO .... SE TE OLVIDO CAMBIARLO POR RS , aún esta con rst

si con el cambio, te da algun error a pesar que creo que es eso... pon el codigo indicando cual es la linea porque en este caso no sé cual es la 51


Slds.
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #10 (permalink)  
Antiguo 22/07/2003, 20:05
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 7 meses
Puntos: 0
Mira tambien en tu base de datos que el campo que estas solicitando se llame, como lo pides, porque te esta diciendo que el nombre que estas pidiendo no existe en la base de datos... revisa eso!!!
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #11 (permalink)  
Antiguo 22/07/2003, 20:12
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 7 meses
Puntos: 0
UFF, otra cosa perdon que estoy tartamudo... para responder


esta es tu sql
sSQL="Select Nombre From Nextel Order By Nombre ASC"

y lo que le estas diciendo es esto:
sSQL= "selecciona Nombre desde Nextel ordenado por Nombre ascendente"

y como le pides apellido!!!,, si solo estas pidiendo nombre!!


solucionalo así
sSQL="Select * From Nextel Order By Nombre ASC"
esto es si lo quieres ordenado

y ahora le estas diciendo:
sSQL="Selecciona todo desde Nextel ordenado por fecha ascendente"


Saludos, espero que lo soluciones
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #12 (permalink)  
Antiguo 23/07/2003, 09:59
Avatar de GUAPOBEN  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico DF
Mensajes: 204
Antigüedad: 21 años, 7 meses
Puntos: 1
UNIVERCITY. GRACIAS POR LOS TIPS.

Ya realize lo que me comentaste , ya lo revisse pero ahora me envia este error :

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted; the operation requested by the application requires a current record. ?

No se realmente a que se refiere, sin embargo me muestra mi pagina correctamente y abajo me envia este mensaje, aun cuando aun no puedo ver los datos en mi campo.

A que se refiere este error, o por que podria ocasionarse??

Muchas GRACIAS de Ante mano.
__________________
Guapo Ben
Servidor y Amigo :adios:
  #13 (permalink)  
Antiguo 23/07/2003, 10:20
Avatar de GUAPOBEN  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico DF
Mensajes: 204
Antigüedad: 21 años, 7 meses
Puntos: 1
Revisando el mensaje y traduciendolo dice algo asi:

BOF O EOF son Verdaderos, o el registro corriente ha sido suprimido; la operación solicitada por el uso requiere un registro corriente.

Revise en mi base de datos y el registro no ha sido suprimido o borrado si a eso se refiere, ahora bien no se a que se refiere con EL USO DE UN REGISTRO CORRIENTE.

¿Que hago?
__________________
Guapo Ben
Servidor y Amigo :adios:
  #14 (permalink)  
Antiguo 23/07/2003, 10:45
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
psstt... no se refiere a un "registro corriente" sino a un "registro actual"

y eso ocurre cuando el recordset está vacío e intentás acceder a algún dato de él. para solucionarlo se comprueba el estado del recordset antes de acceder a este. algo así:

<%
if Not recordset.BOF AND Not recordset.EOF Then
' operás con los registros
Else
Response.Write "La consulta no produjo resultados"
End if
%>

saludos
__________________
...___...
  #15 (permalink)  
Antiguo 23/07/2003, 12:45
Avatar de GUAPOBEN  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico DF
Mensajes: 204
Antigüedad: 21 años, 7 meses
Puntos: 1
GRACIAS Dazuaga, pero en que parte de mi codigo va??

<HTML>
<HEAD>
<TITLE>Actualizar1.asp</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Actualizar un registro</h1>
<br>

<%
'Instanciamos y abrimos nuestro objeto conexion
Dim Conn,strSQL, objRS

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Ctro Mensajes.mdb"))
%>
<FORM METHOD="POST" ACTION="actualizar2.asp">
Nombre
<%
'Creamos la sentencia SQL y la ejecutamos
sSQL="Select * From skytels Order By ID DESC"
set RS = Conn.Execute(sSQL)
%>
<select name="Nombre" size="1" tabindex="1">
<%
'Generamos el menu desplegable
Do While not RS.eof%>
<option><%=RS("Nombre")%> <%RS.movenext
Loop
%>
</select>
<br>
Nombre Completo
<INPUT NAME="pal" size="20" tabindex="2">
<p><br>

<INPUT TYPE="SUBMIT" value="Actualizar" tabindex="3" value="<%=RS("pal")%>">
<input type="reset" value="Cancelar" name="Borrar" tabindex="4"></p>
</FORM>
</div>

</BODY>
</HTML>


Ya lo puse en mi codigo y me manda un error en la linea 21 cuando pruebo la pagina.

GRACIAS por la ayuda.
__________________
Guapo Ben
Servidor y Amigo :adios:
  #16 (permalink)  
Antiguo 23/07/2003, 21:58
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 7 meses
Puntos: 0
No encontré la declaracion del recorset

set RS = Server.CreateObject("ADODB.RecordSet")

para que no te confundas... debe quedar así

Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Ctro Mensajes.mdb"))

Prueba con eso...haber que nos pasa!!!

Slds.
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #17 (permalink)  
Antiguo 24/07/2003, 08:36
Avatar de GUAPOBEN  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico DF
Mensajes: 204
Antigüedad: 21 años, 7 meses
Puntos: 1
Muchas GRACIAS UNIVERCITY, en verdad no sabes como agradezco tu interes y tu apoyo por ayudarme.

mira realize lo que me dijiste y me manda le mensaje igual:

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted; the operation requested by the application requires a current record.

?

Y me continua sin arrojarme nada en mi segundo campo.

¿Que puede ser?

De ante mano muchas GRACIAS
__________________
Guapo Ben
Servidor y Amigo :adios:
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 00:46.