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

Editar un registro (al borde del suicidio)

Estas en el tema de Editar un registro (al borde del suicidio) en el foro de ASP Clásico en Foros del Web. Buenas: A ver si me explico de forma sencilla... Quiero actualizar registros pero pretendo que en la página de actualización, en los campos que voy ...
  #1 (permalink)  
Antiguo 30/04/2006, 07:03
 
Fecha de Ingreso: abril-2006
Mensajes: 8
Antigüedad: 18 años, 1 mes
Puntos: 0
Editar un registro (al borde del suicidio)

Buenas:

A ver si me explico de forma sencilla... Quiero actualizar registros pero pretendo que en la página de actualización, en los campos que voy a actualizar me aparezcan los datos que ya están insertados.


Estructura de la tabla:

Nº Socio / / Nombre // Apellidos / / etc


Tengo lo que viene a ser la pantalla para capturar el registro que quiero actualizar:
FORM METHOD="POST" ACTION="a.asp">
Buscar por Nº de Socio<br>

<%
sSQL="Select [Nº Socio] From Socios Order By [Nº Socio]"
set RS = Conn.Execute(sSQL)
%>

<select name="[Nº Socio]">
<%
Do While not RS.eof%>
<option><%=RS("Nº Socio")%>
<%RS.movenext
Loop
%>
</select>
<INPUT TYPE="SUBMIT" value="Insertar">
</FORM>



Pero soy incapaz de conseguir generar a partir del campo seleccionado (Nº Socio) un formulario de actualización con el resto de campos del registro con los datos antiguos... La cosa es conseguir que aparezcan los datos antiguos pero editables.... Tras mil vuletas y revueltas he acabado con esto (que evidentemente no funciona, no coinciden los tipos dice, creo que es algo de comillas que ya resolví pero no se como, luego me dice algo del tiempo de ejecución o algo así...)

<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "DRIVER={Microsoft Access driver (*.mdb)};" & "DBQ=" & Server.mappath("polideportivo.mdb")

Dim ssql
Dim ADOrs
ssql="SELECT Nombre, Apellidos, TLF, Domicilio, Localidad, CP FROM Socios WHERE [Nº Socio]="'<%=request.form("Nº Socio")%>"' "
set ADOrs = conn.Execute(ssql)
%>

<HTML>

<FORM METHOD="POST" ACTION="ingresarsocio.asp">

Nombre<br>
<INPUT TYPE="TEXT" NAME="<%=ADOrs("Nombre")%>"><br>

Apellidos<br>
<INPUT TYPE="TEXT" NAME="<%=ADOrs("Apellidos")%>"><br>

Tel&eacute;fono<br>
<INPUT TYPE="TEXT" NAME="<%=ADOrs("TLF")%>"><br>

Domicilio<br>
<INPUT TYPE="TEXT" NAME="<%=ADOrs("Domicilio")%>"><br>

Localidad<br>
<INPUT TYPE="TEXT" NAME="<%=ADOrs("Localidad")%>"><br>

C&oacute;digo Postal<br>
<INPUT TYPE="TEXT" NAME="<%=ADOrs("CP")%>"><br>


<INPUT TYPE="SUBMIT" value="Insertar">
</FORM>


<br>
<%conn.close%>
</HTML>


Se supone que esta página debería recoger el Nº de socio seleccionado en la primera y mostrar el registro completo de forma editable para luego enviarlo a un tercer asp de actualización....


Piedad, que solo llevo 10 días en esto (pero vaya infierno de días... Iluminadme!!!
  #2 (permalink)  
Antiguo 30/04/2006, 09:06
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 8 meses
Puntos: 56
La asignaciónde los valores en los elementos input debe ser sobre el parámetro VALUE, no en NAME, así:
<INPUT TYPE="TEXT" NAME="localidad" VALUE="<%=ADOrs("Localidad")%>"><br>
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #3 (permalink)  
Antiguo 30/04/2006, 11:30
 
Fecha de Ingreso: abril-2006
Mensajes: 8
Antigüedad: 18 años, 1 mes
Puntos: 0
OK, cierto, tanto darle vueltas al final puse mal eso XD. Ahora el error "No coinciden los tipos"...


<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "DRIVER={Microsoft Access driver (*.mdb)};" & "DBQ=" & Server.mappath("polideportivo.mdb")

Dim ssql
Dim ADOrs
ssql="SELECT Nombre, Apellidos, TLF, Domicilio, Localidad, CP FROM Socios WHERE [Nº Socio]="'<%=request.form("Nº Socio")%>"' "
set ADOrs = conn.Execute(ssql)
%>

<HTML>

<FORM METHOD="POST" ACTION="ingresarsocio.asp">
Nombre<br>
<INPUT TYPE="TEXT" NAME="Nombre" VALUE="<%=ADOrs("Nombre")%>"><br>

Apellidos<br>
<INPUT TYPE="TEXT" NAME="Apellidos" VALUE="<%=ADOrs("Apellidos")%>"><br>

Tel&eacute;fono<br>
<INPUT TYPE="TEXT" NAME="TLF" VALUE="<%=ADOrs("TLF")%>"><br>

Domicilio<br>
<INPUT TYPE="TEXT" NAME="Domicilio" VALUE="<%=ADOrs("Domicilio")%>"><br>

Localidad<br>
<INPUT TYPE="TEXT" NAME="localidad" VALUE="<%=ADOrs("Localidad")%>"><br>

C&oacute;digo Postal<br>
<INPUT TYPE="TEXT" NAME="CP" VALUE="<%=ADOrs("CP")%>"><br>


<INPUT TYPE="SUBMIT" value="Insertar">
</FORM>


<br>
<%conn.close%>
</HTML>
  #4 (permalink)  
Antiguo 30/04/2006, 13:09
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
en que linea?
  #5 (permalink)  
Antiguo 30/04/2006, 22:52
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
bueno, seria bueno saber en que linea es el error pero de vista creo que habria que revisas esto:
ssql="SELECT Nombre, Apellidos, TLF, Domicilio, Localidad, CP FROM Socios WHERE [Nº Socio]="'<%=request.form("Nº Socio")%>"' "

va primero la comilla simple y luego la doble si es que el dato es texto, si es numerico quita las comillas simples asi:
SI ES NUMERICO:
ssql="SELECT Nombre, Apellidos, TLF, Domicilio, Localidad, CP FROM Socios WHERE [Nº Socio]="request.form("Nº Socio")

SI ES TEXTO
ssql="SELECT Nombre, Apellidos, TLF, Domicilio, Localidad, CP FROM Socios WHERE [Nº Socio]='"request.form("Nº Socio")&"'"
__________________
CreandoWebs.com
www.creandowebs.com
PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO
  #6 (permalink)  
Antiguo 01/05/2006, 07:03
 
Fecha de Ingreso: abril-2006
Mensajes: 8
Antigüedad: 18 años, 1 mes
Puntos: 0
Soy un desastre, ni la línea os he puesto... A ver, el error era:

Error de Microsoft VBScript en tiempo de ejecución (0x800A000D)
No coinciden los tipos. Es la sentencia esta:

<INPUT TYPE="TEXT" NAME="Nombre" VALUE="<%=ADOrs("Nombre")%>"><br>


El dato es numérico, pero poniendo la sentencia que me dices el error aparece en la línea cambiada de "Se esperaba un final de instrucción"


¿Como lo veís?
  #7 (permalink)  
Antiguo 01/05/2006, 09:18
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
ssql="SELECT Nombre, Apellidos, TLF, Domicilio, Localidad, CP FROM Socios WHERE [Nº Socio]="&request.form("Nº Socio")&""
  #8 (permalink)  
Antiguo 01/05/2006, 09:57
 
Fecha de Ingreso: abril-2006
Mensajes: 8
Antigüedad: 18 años, 1 mes
Puntos: 0
Ahora el error se baja dos líneas en el set ADOrs = conn.Execute(ssql)
Error de sintaxis (falta operador) en la expresión de consulta '[Nº Socio]='.


¡Gracias por las aportaciones!
  #9 (permalink)  
Antiguo 01/05/2006, 10:59
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Eso es un error del SQL prueba asi:

ssql="SELECT * FROM Socios WHERE [Nº Socio] LIKE '" & request.form("Nº Socio") & "'"

Y comprueba antes que request.form("Nº Socio") contenga algun valor


Por cierto, request.form("Nº Socio") es numerico? No es mas bien request.form("N_Socio")? Poeque te complicas la vida con caracteres que no son standard ASCII?


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #10 (permalink)  
Antiguo 01/05/2006, 12:57
 
Fecha de Ingreso: abril-2006
Mensajes: 8
Antigüedad: 18 años, 1 mes
Puntos: 0
Esto es un infierno.... Parece que se resolvió lo de la consulta (o eso parece) pero para pasar al siguiente error que estaba esperando de tras de la puerta


"El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual."


Ap, y que "Nº Socio" es numérico, la cosa es que hasta ahora no me ha dado problemas y como me ponga a cambiarlo del resto de páginas por N_Socio me dan varios infartos mentales
  #11 (permalink)  
Antiguo 01/05/2006, 13:54
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
debes hacerlo como te dice tammander, no olvides la ley de murphy


y respecto al error
"El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual."

eso es por que no encontro el registro

debes validar su existencia antes de mostrar un registro

if not ADOrs.eof then
<FORM METHOD="POST" ACTION="ingresarsocio.asp">
.
.
.
</form>
else
response.write "no se encontro el registro"
end if
  #12 (permalink)  
Antiguo 02/05/2006, 11:17
 
Fecha de Ingreso: abril-2006
Mensajes: 8
Antigüedad: 18 años, 1 mes
Puntos: 0
Muchas gracias tios, así da gusto tener problemas

Un día entero me he pasado cambiando "Nº Socio" por "N_Socio", maldito Murphy..... y con la última ayudita parece que por ahora funciona, aver si dura...
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 18:48.