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

Ayuda: Modificar un dato de un campo.

Estas en el tema de Ayuda: Modificar un dato de un campo. en el foro de ASP Clásico en Foros del Web. Hola amigos: Como en otras ocasiones os pido un poco de ayuda. Gracias. Tengo un campo dentro de una tabla de una base de datos. ...
  #1 (permalink)  
Antiguo 18/07/2008, 00:31
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 19 años, 10 meses
Puntos: 0
Ayuda: Modificar un dato de un campo.

Hola amigos:
Como en otras ocasiones os pido un poco de ayuda. Gracias.


Tengo un campo dentro de una tabla de una base de datos.
Se llaman campo1, tabla1 y basedatos.
Hago la conexión a la base....

Me gustaría cambiar online (no manual abriendo la base de datos en mi ordenador) el textp del campo1 por otro texto.

Es decir, que en la página cambio.asp (código incompleto más abajo) me apareciese en una caja el texto que hay y al lado otra caja con el nuevo texto a introducir.
Luego un botón "Cambiar" para ejecutar.

Muchas gracias.



<%
Set db = Server.CreateObject("ADODB.Connection")
Dim DB_CONNECTIONSTRING
DB_CONNECTIONSTRING = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("basedatos.mdb") & ";"
db.Open DB_CONNECTIONSTRING

set rsActual = Server.CreateObject("ADODB.Recordset")
SQLActual = "SELECT campo1 FROM tabla1"
rsActual.Open SQLActual,DB_CONNECTIONSTRING
%>

<html>
<body>



</body>
</html>
  #2 (permalink)  
Antiguo 18/07/2008, 01:00
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Ayuda: Modificar un dato de un campo.

tu hablas de algo asi?
Cita:
<%
Set db = Server.CreateObject("ADODB.Connection")
Dim DB_CONNECTIONSTRING
DB_CONNECTIONSTRING = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("basedatos.mdb") & ";"
db.Open DB_CONNECTIONSTRING

set rsActual = Server.CreateObject("ADODB.Recordset")
SQLActual = "SELECT campo1 FROM tabla1"
rsActual.Open SQLActual,DB_CONNECTIONSTRING
campo1=rs("campo1")
%>

<form>
<input type="text" value="<%=campo1%>" name="valorviejo" />
<input type="text" value="" name="valornuevo" />
<input type="submit" value="Guardar" />
</form>
de eso hablas?
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 18/07/2008, 01:20
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Ayuda: Modificar un dato de un campo.

No, lo que quiero es sustituir el valorviejo por el valornuevo introducido.

Esta línea
<input type="text" value="<%=campo1%>" name="valorviejo" />
sería
<input type="text" value="<%=rsActual.Fields("campo1")%>" name="valorviejo" />

Gracias.
  #4 (permalink)  
Antiguo 18/07/2008, 04:29
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Respuesta: Ayuda: Modificar un dato de un campo.

Una pregunta: ¿Tabla1 va a tener más de un registro o solo uno? En caso de que la tabla vaya a contener varios registros necesitarás un campo de clave primaria único (los autonuméricos suelen usarse para eso) para identificar el registro a modificar. Tendrás que usar dos setencias SQL básicas:

1 - Una para encontrar el registro en cuestion: SELECT campo1 FROM tabla1 WHERE id = 1 (el campo id actua de clave primaria)

2 - Otra para la actualización de los datos: UPDATE tabla1 SET campo1='datos a guardar' WHERE id=1


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 18/07/2008, 05:20
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Ayuda: Modificar un dato de un campo.

Gracias.
El error está ahora en la línea en negrita.

<%
Set db = Server.CreateObject("ADODB.Connection")
Dim DB_CONNECTIONSTRING
DB_CONNECTIONSTRING = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("basedatos.mdb") & ";"
db.Open DB_CONNECTIONSTRING

set rsActual = Server.CreateObject("ADODB.Recordset")
SQLActual = "SELECT campo1 FROM tabla1"
rsActual.Open SQLActual,DB_CONNECTIONSTRING
campo1=rs("campo1")
%>

<html>
<body>

<form>
<input type="text" value="<%=rsActual.Fields("campo1")%>" name="valorviejo" />
<input type="text" value="" name="valornuevo" />
<input type="submit" value="Guardar" />
</form>

<%
UPDATE tabla1 SET campo1= '<%=valornuevo%>'
%>

</body>
</html>


<%
rsActual.close
db.close
set rsActual = nothing
set db = nothing
%>
  #6 (permalink)  
Antiguo 18/07/2008, 08:51
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Ayuda: Modificar un dato de un campo.

Que tal.

Lo que sucede es que las sentencias SQL las tienes que enviar por los medios correctos .

Sería algo así.

Código:
<%
Set db = Server.CreateObject("ADODB.Connection")
Dim DB_CONNECTIONSTRING
DB_CONNECTIONSTRING = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("basedatos.mdb") & ";"
db.Open DB_CONNECTIONSTRING

'Recupera valor viejo
set rsActual = Server.CreateObject("ADODB.Recordset")
SQLActual = "SELECT campo1 FROM tabla1"
rsActual.Open SQLActual,DB_CONNECTIONSTRING
campo1=rs("campo1")
valorviejo= rsActual.Fields("campo1")

'guardar valor nuevo, si lo hubieré.
dim valornuevo
valornuevo=Request.QueryString("valornuevo")
If valornuevo<>"" Then
   sqlUpd = " UPDATE tabla1 SET campo1= '" & valornuevo  & "' "
   db.Execute sqlUpd
End If


rsActual.close
db.close
set rsActual = nothing
set db = nothing


%>

<html>
<body>

<form action="Nombre_tu_Pagina.asp" method="get">
<input type="text" value="<%=valorviejo%>" name="valorviejo" />
<input type="text" value="" name="valornuevo" />
<input type="submit" value="Guardar" />
</form>

</body>
</html>
Nota:
Nombre_tu_Pagina.asp cambiala por el nombre de tu archivo.

Más info:
http://www.w3schools.com/ado/met_conn_execute.asp
http://www.w3schools.com/asp/showasp...=demo_reqquery
http://www.w3schools.com/asp/


Saludos!

Última edición por daniel00; 18/07/2008 a las 11:28 Razón: El nombre de la variable en el IF estaba mal.
  #7 (permalink)  
Antiguo 18/07/2008, 10:33
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Ayuda: Modificar un dato de un campo.

Gracias Daniel00.

He descubierto un fallo en la línea:
campo1=rs("campo1")

La he sustituido por
campo1=rsActual.Fields("campo1")


El proceso de carga y visualización del formulario funciona, pero no modifica el valor del campo por el nuevo. Se queda como está.

Saludos.
  #8 (permalink)  
Antiguo 18/07/2008, 11:26
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Ayuda: Modificar un dato de un campo.

Hola.

Tenia un error mi código del "copy & paste", lo corregido esta en color naranja.

Saludos!
  #9 (permalink)  
Antiguo 20/07/2008, 23:40
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Ayuda: Modificar un dato de un campo.

Gracias Daniel, pero me sigue sin cambiar el dato del campo1 por el nuevo.

Saludos.
  #10 (permalink)  
Antiguo 21/07/2008, 04:55
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Respuesta: Ayuda: Modificar un dato de un campo.

¿Como que seleccionas todos los registros de campo1 y después actualizas todos los registros
de campo1?

Al menos el updates debería de ser

Cita:
sqlUpd = " UPDATE tabla1 SET campo1= '" & valornuevo & "' where campoX = '"& X &"'"
¿La variable valornuevo es númerica o alfanumerica?

Cita:
Númerica ----->> "&valornuevo&"
Alfanuemerica ------>> '"&valornuevo&"'
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #11 (permalink)  
Antiguo 21/07/2008, 09:40
 
Fecha de Ingreso: diciembre-2007
Mensajes: 179
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Ayuda: Modificar un dato de un campo.

Yo tengo el mismo problema mi codigo asp es este:

<h1>Modificar Datos</h1>
<%
function compruebaemail(email){
var res=false;
var expr= new RegExp ("^(\\w)+([\.-]?(\\w)+)*@(\\w)+([\.-]?(\\w)+)*(\.(\\w){2,3})+$");
var p = expr.exec(email);
if (p)
{
res=true;
}
return (res);
}
function compruebatelefono(telefono){
var res = false;
var expr = new RegExp ("^[0-9]{2,3}-? ?[0-9]{6,7}$");
var p = expr.exec(telefono);

if (p)
{
res= true;
}
return (res);

}




//lo primero que hago es declarar variables para poder
//asignarles los datos que le corresponden
var nick = Session ("nick");
var errores = new Array ();
var res = true;
var nick = Request.Form("nick").Item;
var contrasenia = Request.Form("contrasenia").Item;
var nombre = Request.Form("nombre").Item;
var apellidos = Request.Form("apellidos").Item;
var email = Request.Form("email").Item;
var telefono = Request.Form("telefono").Item;


var mensaje;

//empiezo con el chequeo del formulario

if (contrasenia == "")
{
errores.push("El campo contraseña no puede estar vacio");
res = false;
}

if (nombre == ""){
errores.push("El campo nombre no puede estar vacio");
res = false;
}
if (apellidos == ""){
errores.push ("El campo apellidos no puede estar vacio");
res = false;
}
if(email == ""){
errores.push("El campo email no puede estar vacio");
res = false;
}
if(compruebaemail(email)==false & res){
errores.push("Debe introducir un email correcto");
res = false;
}
if(telefono == ""){
errores.push("El campo telefono no puede estar vacio");
res = false;
}
if(compruebatelefono(telefono)==false & res){
errores.push("Debe de introducir un telefono correcto");
res = false;
}



//aqui acaba el chequeo de los datos

if (errores.length>0) ///compruebo si hay algun error
{
res = false;
mensaje="SE HAN DETECTADO VARIOS ERRORES:</br>";
var i;
for (i=0; i<errores.length; i++)
{
mensaje += (i+1);
mensaje += ".- ";
mensaje += errores[i];
mensaje += "</br>";

}
}

if (res == true)
{

try{
var conexion= Server.CreateObject ("ADODB.Connection");
conexion.Open ("Provider=Microsoft.Jet.OLEDB.4.0;"+" Data Source = "+Server.MapPath ("basedatos/bd.mdb"));
}
catch (e){
Response.Write ("Error1:");
Response.Write ("<b>" + e.description + "</b>");
Response.End();
}

try{
<!-- instruccion sql para actualizar los datos del socio-->


var sql= "UPDATE registro SET contrasenia='"+contrasenia+"', nombre='"+nombre+"', apellidos='"+apellidos+"', email='"+email+"', telefono='"+telefono+"' WHERE nick='"+nick+"'";


conexion.BeginTrans();
conexion.Execute(sql);
conexion.CommitTrans();
%>
<br/>
<br/>
<center>
<h4 style="color:black">Sus datos se han modificado de forma correcta</h4>
</center>
<br/>
<%


conexion.Close();
}

catch (e)
{
Response.Write (" error 2 :");
Response.Write ("<b>" +e.description+ "</b>");
Response.Write( "<button onclick ='history.back()'>Volver</button>");
Response.End();
}
}

else {

Response.Write (mensaje);
}
%>


Y el formulario donde aparecen los datos antiguos de la base de datos y donde se actualizan los datos seria este:



<%var cadenaConexion = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" +Server.MapPath("basedatos/bd.mdb");
var sql,result= Server.CreateObject("ADODB.Recordset");
try{
conexion= Server.CreateObject("ADODB.Connection");
conexion.open(cadenaConexion);
}
catch(e){//tratamiento de posible errores
Response.Write ("<h2>Error1:</h2>");
Response.Write ("<b>" + e.description + "</b>");
Response.End();
}

try{
var nick = Session("nick");


sql="SELECT * FROM registro WHERE nick= '"+nick+"'";

conexion.BeginTrans();
result.Open(sql, conexion);

if(result.eof)
{
//los datos no fueron encontrados en la BD, no debe de ocurrir nunca
Response.Write("Error al encontrar sus datos, por favor, intentelo de nuevo")
Response.Write("<h4 align=center ><button onclick='history.back()'>Volver</button></h4>");
Response.End();
}
else
{
var nombre=result("nombre");
var apellidos=result("apellidos");
var telefono=result("telefono");
var email=result("email");
var contrasenia = result("contrasenia");
var mascota = result("mascota");
var especie = result("especie");



}
}
catch(e){//posible fallo en la BD
Response.Write ("<h2 align=center >Error2:</h2>");
Response.Write ("<b>" +e.description+ "</b>");
Response.Write("<h4 align=center ><button onclick='history.back()'>Volver</button></h4>");
Response.End();
}
%>

<!-- codigo html -->
<div id ="tabla">
<fieldset>
<form name="modificar" id="modificar" method="post" action="modificar.asp" onSubmit="return modificacion()">
<h1 class = "titulo">Modificar Datos</h1>
<br/>
<center><label for = "explicacion" class="peque" style="color:black">A continuacion podrá modificar los datos que estime oportuno</label></center>
<br/>
<p>
<label for="nick"> Nick </label>
<input name="nick" type="text" id="nick_t" class="formuentrada" maxlength="20" size="20"value="<%Response.Write(nick)%>" disabled="disabled"/>
<br/>
<br/>
<label for="contrasenia">Contraseña</label>
<input name="contrasenia" type="password" id="contrasenia_t" class="formuentrada" maxlength="20" size="20"value="<%Response.Write(contrasenia)%>" />
<br/>
<br/>
<label for="nombre" id="nombre">Nombre</label>
<input name="nombre" type="text" id="nombre_t" class="formuentrada" maxlength="20" size="20" value="<%Response.Write(nombre)%>"/>
<br/>
<br/>
<label for="apellidos"id="apellido">Apellidos</label>
<input name="apellidos" type="text" id="apellidos_t" class="formuentrada" maxlength="40" size="40"value="<%Response.Write(apellidos)%>" />
<br/>
<br/>
<label for="email" id="email" style = "color:black;">Email</label>
<input name="email" type="text" id="email_t" class="formuentrada" maxlength="40" size="40"value="<%Response.Write(email)%>"/>
<br/>

El codigo funciona perfectamente pero no actualiza los datos en la base de datos y no se a que es debido, necesito ayuda por que todos los campos estan bien, Gracias
  #12 (permalink)  
Antiguo 21/07/2008, 10:03
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Ayuda: Modificar un dato de un campo.

Hola:

La variable es de tipo numérica (pensaba que era de texto pero es de número).
Lo he probado de todas formas y no me sale.

Gracias por la ayuda.

Cita:
Iniciado por Adler Ver Mensaje
¿Como que seleccionas todos los registros de campo1 y después actualizas todos los registros
de campo1?

Al menos el updates debería de ser



¿La variable valornuevo es númerica o alfanumerica?



Suerte
  #13 (permalink)  
Antiguo 21/07/2008, 10:06
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Ayuda: Modificar un dato de un campo.

Puedes poner tu código nuevamente y como se llama el nombre de tu archivo, por favor.

xhisna: Puedes postear tu pregunta en un nuevo post, además de que tu código parece de ASP.Net

saludos!

Última edición por daniel00; 21/07/2008 a las 10:12
  #14 (permalink)  
Antiguo 21/07/2008, 12:34
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Ayuda: Modificar un dato de un campo.


Cita:
Iniciado por daniel00 Ver Mensaje
Puedes poner tu código nuevamente y como se llama el nombre de tu archivo, por favor.

xhisna: Puedes postear tu pregunta en un nuevo post, además de que tu código parece de ASP.Net

saludos!
Amigo daniel, ella esta usando Jscript/Vbscript, por eso el tipo de codigo
Cita:
Iniciado por xhisna Ver Mensaje
Yo tengo el mismo problema mi codigo asp es este:
....
xhisna

mira, realiza una peticion de actualizacion, antes de que se ejecute tu codigo de actualizacion, realiza un
response.write SQL
response.end
y en dado caso de error, tambien anexalo al siguiente post

Cita:
Iniciado por Gacetaragon Ver Mensaje
Hola:

La variable es de tipo numérica (pensaba que era de texto pero es de número).
Lo he probado de todas formas y no me sale.

Gracias por la ayuda.
Aragon, vuelve a utilizar el codigo de actualizacion que te puso Adler(), pero esta ves, quita las comillas simples
Cita:
sqlUpd = "UPDATE tabla1 SET campo1= '" & valornuevo & "' where campoX = '"& X &"'"
tambien verifica bien tus datos de tabla contra los que intentas actualizar

recuerda que si son campos tipo TEXT en la tabla, la asignacion llevara comillas simples" ' ", si es numerico las eliminaras, ok?
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #15 (permalink)  
Antiguo 25/07/2008, 03:59
 
Fecha de Ingreso: agosto-2004
Mensajes: 50
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Ayuda: Modificar un dato de un campo.

Gracias por vuestra ayuda. Ya me funciona.

El error estaba en el form:

La línea en negrita es la que faltaba.

<form action="cambios.asp" method="get">
<input type="text" value="<%=valorviejo%>" name="valorviejo" />
<input type="text" value="" name="valornuevo" />
<input type="hidden" value="<%=Palabra %>" name="Grupo" />
<input type="submit" value="Guardar" />
</form>


Gracias amigos.
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 13:55.