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

Ayuda, error (0x800A0BB9)

Estas en el tema de Ayuda, error (0x800A0BB9) en el foro de ASP Clásico en Foros del Web. Hola, al intentar crear una pagina para modificar los datos de una base da datos, mediante un formulario, me salta el siguiente error Tipo de ...
  #1 (permalink)  
Antiguo 07/09/2004, 02:21
 
Fecha de Ingreso: abril-2004
Mensajes: 53
Antigüedad: 20 años, 1 mes
Puntos: 0
Ayuda, error (0x800A0BB9)

Hola, al intentar crear una pagina para modificar los datos de una base da datos, mediante un formulario, me salta el siguiente error
Tipo de error:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.


El codigo que utilizo es el que sigue,el Idsubtitulo es de tipo autonumerico, el error esta en la linea de color rojo, por favor si alguien pudiera ayudarme se lo agradeceria, es muy urgente
<!-- #INCLUDE File="ADOVBS.inc" -->
<%IF (Request.Form <> "") THEN

Set Ob_Conn = Server.CreateObject ("ADODB.Connection")
Set Ob_RS = Server.CreateObject ("ADODB.RecordSet")
Ob_Conn.Open "BDservidor"
Ob_RS.Open "matriculas", Ob_Conn, adOpenStatic, adCmdTable

IF (Request.Form ("Clave") <> "") THEN
Filtro= "Idmatricula= " & Request.Form ("Clave")
Ob_RS.Filter = Filtro
FOR EACH Parametro IN Ob_RS.Fields
IF Parametro.Name= "Idmatricula" THEN
Ob_RS ("Idmatricula")= (Request.Form ("Idmatricula"))
ELSE
Ob_RS (Parametro.Name)= Request.Form (Parametro.Name)
END IF
NEXT
Ob_RS.Update
Response.Write "<H3> Registro modificado </H3>"

ELSE
Poner_AND= False
Filtro= ""
FOR EACH Parametro IN Request.Form
IF Request.Form (Parametro) <> "" AND Parametro <> "PAGINA" THEN
IF Poner_AND THEN
Filtro= Filtro & " AND " & Parametro & "='"
Filtro= Filtro & Request.Form (Parametro) & "'"
ELSE
Filtro= Filtro & Parametro & "='"
Filtro= Filtro & Request.Form (Parametro) & "'"
Poner_AND = True
END IF
END IF
NEXT
Filtro= LCase (Filtro)
Ob_RS.Filter = Filtro
IF Ob_RS.Eof THEN
Response.Write "<H3> No hay ningún registro con esas características </H3>"
ELSE
Response.Write "<TABLE BORDER=1> <TR>"
FOR EACH Parametro IN Ob_RS.Fields
Response.Write "<TH>" & Parametro.Name
NEXT
Response.Write "<TH> Modificar"
DO WHILE NOT Ob_RS.Eof
Response.Write "<TR> <FORM ACTION=cifrasmod.asp METHOD=Post>"
FOR EACH Parametro IN Ob_RS.Fields
Response.Write "<TD> <INPUT NAME=" & Parametro.Name & " VALUE='" & Ob_RS (Parametro.Name) & "'>"
NEXT
Response.Write "<INPUT TYPE=Hidden NAME=Clave VALUE='" & Ob_RS ("Idmatricula") & "'>"
Response.Write "<TD> <INPUT TYPE=Submit VALUE=Modificar> </FORM>"
Ob_RS.MoveNext
LOOP
Response.Write "</TABLE><BR>"
END IF
END IF
Ob_RS.Close
Ob_Conn.Close %>


<% ELSE %>
<H4> ESCRIBA LOS DATOS SOBRE EL APARTADO ALUMNOS MATRICULADOS QUE QUIERE
MODIFICAR </H4>
<BR> <FORM METHOD="Post" ACTION="cifrasmod.asp">
<p>PLAN DE ESTUDIOS:
<input name="Plan" size=50>
</p>
<p>CURSO ACAD&Eacute;MICO:
<input name="Curso" size=50>
</p>
<p> N&Uacute;MERO DE ALUMNOS:
<INPUT NAME="Alumnos" SIZE=10>
<br>
</p>
<p align="center">
<INPUT name="Submit" TYPE="Submit" VALUE="Enviar datos">
<INPUT name="Reset" TYPE="Reset" VALUE="Borrar">
</p>
</FORM>
<% END IF %>
<p></td>
</tr>
</table>
  #2 (permalink)  
Antiguo 07/09/2004, 03:16
Avatar de TomaHawkk  
Fecha de Ingreso: diciembre-2001
Ubicación: España
Mensajes: 422
Antigüedad: 22 años, 6 meses
Puntos: 1
Hola,

el fallo esta en que haces alguna referencia a un campo que no existe en la base de datos.
  #3 (permalink)  
Antiguo 07/09/2004, 03:19
Avatar de TomaHawkk  
Fecha de Ingreso: diciembre-2001
Ubicación: España
Mensajes: 422
Antigüedad: 22 años, 6 meses
Puntos: 1
Por cierto, no hay ninguna linea de color rojo.
  #4 (permalink)  
Antiguo 07/09/2004, 03:35
 
Fecha de Ingreso: abril-2004
Mensajes: 53
Antigüedad: 20 años, 1 mes
Puntos: 0
Perdon la linea es

Ob_RS.Filter = Filtro

Y el campo si existe, he comprobado que esta bien escrito, el error no es lo que dices
  #5 (permalink)  
Antiguo 07/09/2004, 04:35
Avatar de TomaHawkk  
Fecha de Ingreso: diciembre-2001
Ubicación: España
Mensajes: 422
Antigüedad: 22 años, 6 meses
Puntos: 1
Hola,

Nunca he utilizado esa opción lo hago directamente con SQL

Código:
<%
Dim SQL

Set Ob_Conn = Server.CreateObject ("ADODB.Connection")
Set Ob_RS   = Server.CreateObject ("ADODB.RecordSet")

Ob_Conn.Open "BDservidor"

SQL = "SELECT * FROM matriculas"

IF (Request.Form("Clave") <> "") THEN
	SQL = SQL & " WHERE Idmatricula=" & Request.Form("Clave")
END IF
Ob_RS.Open SQL, Ob_Conn

FOR EACH Parametro IN Ob_RS.Fields

	IF Parametro.Name="Idmatricula" THEN
		Ob_RS("Idmatricula")  = Request.Form("Idmatricula")
	ELSE
		Ob_RS(Parametro.Name) = Request.Form(Parametro.Name)
	END IF
NEXT
Ob_RS.Update

Response.Write "<H3> Registro modificado </H3>"

...........

%>

Última edición por TomaHawkk; 07/09/2004 a las 06:40
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 21:01.