Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ASP
 Tipo de error:ADODB.Recordset (0x800A0BCD)
 Foro Bloqueado  Tema Bloqueado


Autor Temas
cameos
Starting Member

Argentina
21 Posts
Mensajes - 25 Jun 2004 :  16:30:53  Ver Perfil  Enviar Email
alguien me puede ayudar tengo
una tabla sobre la cual realizo una busqueda pero si el dato a buscar no existe en la tabla me arroga este error :

Tipo de error:
ADODB.Recordset (0x800A0BCD)
El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual.

si alguien me puede ayudar se lo agradeceria

Henrydesousa
New Member

Venezuela
88 Posts
Posted - 25 Jun 2004 :  17:01:18  Ver perfil  Enviar e-mail
Hola, no estoy seguro de la causa de tu error porque no he visto el codigo, creo que debes trabajar con sentencias sql, será más fácil para ti y ese error no ocurrirá.
Puedes buscarlo algo así:
sql="select campo from tabla where producto='" & varproducto & "'"
De esta forma no te dará error, creo jaja.
Bueno Suerte. Saludos.

Inicio Pagina

cameos
Starting Member

Argentina
21 Posts
Posted - 25 Jun 2004 :  17:12:20  Ver perfil  Enviar e-mail
ocupe sql pero igual me arroga ese error
antes me funcionaba bien, pero desde que puse paginacion para la entrega de resultados me muestra ese error en todo caso aca esta parte de mi codigo a ver si me pueden ayudar

<table width="50%" border="1" cellpadding="2" cellspacing="0" align="center">
<tr bgcolor="#00CCFF">
<TH colspan="2" style="font-family:verdana; font-size:13">Buscador</TH>
</tr>
<tr>
<td style="font-family:verdana; font-size:12" align="right">Busqueda: </td><td><input type="text" name="txtBusqueda"></td>
</tr>
<tr bgcolor="#00CCFF">
<TH colspan="2"><input type="submit" value="Buscar" name="BBuscar"></TH>
</tr>
</table>
</form>
<HR>
<br>
<%
busqueda = replace(request.form("txtBusqueda"),"'","''")
sql = "SELECT * FROM Oc "
if busqueda <> "" then
sql = sql & "WHERE Oc like '%"& busqueda &"%' "
sql = sql & "OR Adq LIKE '%"& busqueda &"%' "
sql = sql & "OR Usol LIKE '%"& busqueda &"%' "
end if

id=request("id")
set micon=server.createobject("adodb.connection")
micon.open "provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("Ord_Comp.mdb")
'set mirec=server.createobject("adodb.recordset")
'mirec.open sql, micon
%>
<!--Paginar Datos -->
<%
cantidadregistros=10
%>
<%
if request.querystring("paginaactual")<>"" then
mostrarpagina=request.querystring("paginaactual")
else
mostrarpagina=1
end if
%>
<%
set mirec=server.createobject("adodb.recordset")
mirec.cachesize=60
mirec.open sql, micon, 3,3

%>
<%
mirec.pagesize=cantidadregistros
maxpagina=cint(mirec.pagecount)
maxregistros=cint(mirec.pagesize)
mirec.absolutepage=mostrarpagina
contreg=0
%>
<%
if int(mostrarpagina)<>int(maxpagina) then '--si es la ultima pagina.
hasta=mostrarpagina*10
desde=hasta-9
else
hasta=mirec.recordcount
desde=(maxpagina*10)-9
end if
%>
<%
response.write "Resultados : "
response.write desde & " a " & hasta & " de " & mirec.recordcount & " encontrados."
%>

<form method="POST" action="actualizar.asp" name="frmLista" onsubmit="return ctrlCampos('Actualizar',txtOc.value,txtAdq.value,txtSol.value,txtUsol.value,txtCi.value,txtDaf.value,txtCont.value,txtAdqui.value);">
<%
if id="" then 'solo cuando no se está editando y es posible eliminar%>
<input type="hidden" name="xEliminar">
<%
end if%>
<br>
<table border="1" cellpadding="2" cellspacing="0" width="100%">
<tr>
<TH style="font-family: verdana; font-size: 12; color:white" width="4%" bgcolor="#00CCFF">ID</TH>
<TH style="font-family: verdana; font-size: 12; color:white" width="13%" bgcolor="#00CCFF">Nº O/C</TH>
<TH style="font-family: verdana; font-size: 12; color:white" width="13%" bgcolor="#00CCFF">Nº Adq.</TH>
<TH style="font-family: verdana; font-size: 12; color:white" width="6%" bgcolor="#00CCFF">Nº Sol.</TH>
<TH style="font-family: verdana; font-size: 12; color:white" width="14%" bgcolor="#00CCFF">Unid. Solic.</TH>
<TH style="font-family: verdana; font-size: 12; color:white" width="6%" bgcolor="#00CCFF">C.I.</TH>
<TH style="font-family: verdana; font-size: 12; color:white" width="6%" bgcolor="#00CCFF">Daf</TH>
<TH style="font-family: verdana; font-size: 12; color:white" width="10%" bgcolor="#00CCFF">Control</TH>
<TH style="font-family: verdana; font-size: 12; color:white" width="17%" bgcolor="#00CCFF">Adquisiciones</TH>
<TH style="font-family: verdana; font-size: 12; color:white" width="11%" bgcolor="#00CCFF">&nbsp;</TH>
</tr>
<%
do while not mirec.eof and contreg < maxregistros
if id<>cstr(mirec(0)) then%>
<tr>
<td width="4%"><div align="center"><font face="Arial" size="2"><%=mirec(0)%></font></div></td>
<td width="13%"><div align="center"><font face="Arial" size="2"><%=mirec(1)%></font></div></td>
<td width="13%"><div align="center"><font face="Arial" size="2"><%=mirec(2)%></font></div></td>
<td width="6%"><div align="center"><font face="Arial" size="2"><%=mirec(3)%></font></div></td>
<td width="14%"><div align="center"><font face="Arial" size="2"><%=mirec(4)%></font></div></td>
<td width="6%"><div align="center"><font face="Arial" size="2"><%=mirec(5)%></font></div></td>
<td width="6%"><div align="center"><font face="Arial" size="2"><%=mirec(6)%></font></div></td>
<td width="10%"><div align="center"><font face="Arial" size="2"><%=mirec(7)%></font></div></td>
<td width="17%"><div align="center"><font face="Arial" size="2"><%=mirec(8)%></font></div></td>
<td width="11%"><input type="button" value="Editar" name="B1" onclick="editar(<%=mirec(0)%>);"><font face="Arial" size="2">&nbsp;<input type="button" value="Eliminar" name="B4" onclick="eliminar(<%=mirec(0)%>)">
</font></td>
</tr>
<%
else
%>
<tr>
<input type="hidden" name="id" value="<%=mirec(0)%>">
<td width="4%"><font face="Arial" size="2"><%=mirec(0)%></td>
<td width="13%"><font face="Arial" size="2"><input type="text" name="txtOc" size="15" value="<%=mirec(1)%>" ></font></td>
<td width="13%"><font face="Arial" size="2"><input type="text" name="txtAdq" size="15" value="<%=mirec(2)%>"></font></td>
<td width="6%"><font face="Arial" size="2"><input type="text" name="txtSol" size="6" value="<%=mirec(3)%>" ></font></td>
<td width="14%"><font face="Arial" size="2"><input type="text" name="txtUsol" size="15" value="<%=mirec(4)%>"></font></td>
<td width="6%"><font face="Arial" size="2"><input type="text" name="txtCi" size="6" value="<%=mirec(5)%>" ></font></td>
<td width="6%"><font face="Arial" size="2"><input type="text" name="txtDaf" size="4" value="<%=mirec(6)%>"></font></td>
<td width="10%"><font face="Arial" size="2"><input type="text" name="txtCont" size="4" value="<%=mirec(7)%>" ></font></td>
<td width="17%"><font face="Arial" size="2"><input type="text" name="txtAdqui" size="4" value="<%=mirec(8)%>"></font></td>
<td width="11%"><input type="submit" value="Actualizar" name="B3"></td>
</tr>
<%
end if
mirec.movenext
contreg=contreg+1
loop
mirec.close
set mirec=nothing
micon.close
set micon=nothing
%>
</table>
</form>

<HR>

<!--paginacion-->
<%
cero="0"
nombrescript=request.servervariables("script_name")
if int(mostrarpagina)<>1 then '--si no es la primera pagina mostar boton atras

ref="<a href='" & nombrescript & "?buscar=" &_
server.urlencode(request.querystring("buscar"))
ref=ref & "&paginaactual=" & mostrarpagina-1
ref=ref & "'>[<< Anterior]</a>&nbsp;"
end if

for contador=1 to maxpagina
if contador>9 then
cero=""
end if

ref=ref & "&nbsp;<a href='" & nombrescript
ref=ref & "?buscar=" & server.urlencode(request.querystring("buscar"))
ref=ref & "&paginaactual=" & contador

if int(contador)=int(mostrarpagina) then '-- pone en negrita pagina actual
ref=ref & "'><strong>" & cero & contador & "</strong></a>"
else
ref=ref & "'>" & cero & contador & "</a>"
end if

next

if int(mostrarpagina)<>int(maxpagina) then '-- si no es la ultima pagina
'-- mostrar boton siguiente
ref=ref & "&nbsp;<a href='" & nombrescript & "?buscar="
ref=ref & server.urlencode(request.querystring("buscar"))
ref=ref & "&paginaactual=" & mostrarpagina+1
ref=ref & "'>[Siguiente>>]</a>"
end if

response.write ref
%>


Inicio Pagina

sheyla82
Starting Member

España
37 Posts
Posted - 13 Sep 2004 :  09:28:49  Ver perfil  Enviar e-mail
Esto y un poco mosqueadilla y atascada con el tema. Mi problema también tiene q ver con la paginación. Hago una paginación sencilla para una consulta de una sentencia SQL, me muestra el listado de empleados agrupados como quiero, de 3 en 3 , 4 en 4... Hasta aquí todo bien. El problem viene cuando quiero que me muestre los resultados ordenados por algún tipo de valor (por apellido, deparatamento, nº de tarjeta...). Antes de hacer la paginación me lo hacía correctamente esta ordenación, pero ahora no. Es como si no conectase con la base de datos. Es evidente q el error está en eso, pq al quitarlo, deja de dar error y funciona ok. He visto algun tema similar en el foro y normalmente el error era q no se volvían a pasar las variables después de paginar por primera vez (al dar a "adelante" o atras"). A mi loq me sucede es q no conecta. Al añadir en la sentencia sql ORDER BY "&csort&", se viene todo abajo.
Gracias por vuestro tiempo

Tengo un empleadosmenu.asp q tiene el form q pasa los datos a empleadoslistado.asp.

empleadosmenu.asp
<%@ LCID = 1034 %>
<HTML>
<HEAD>
<TITLE>Empleados Menu</TITLE>
</HEAD>
<BODY>
<form method="POST" action="empleadoslistado.asp">

<table>
<tr>
<td>
Empleados</td>
</tr>
<tr>
<td width="50%"><input type="text" name="basedatos" value=<%=request.querystring("basedatos")%> size="20"></td>
<td>
<select name="sort">
<option value="PRENOM_SALARIE">Apellido</option>
<option value="CODE_DU_BADGE">Nº Tarjeta</option>
<option value="LIBELLE_SERVICE">Departamento</option>
</td>
</tr>
</table>
<BR><BR>
<FONT FACE="Arial"><center>
<Br><p align="center"><input type="submit" value="Enviar" name="B1"></Br>
</center></FONT>
</FORM>
<%
sort=replace(request.form("sort"),"'","")
%>
<A HREF="empleadoslistado.asp?basedatos=<%=request.querystring("basedatos")%>&sort=<%=request.form("sort")%>">Enviar</A><BR><BR>
</BODY>
</HTML>

empleadoslistado.asp

<HTML>
<HEAD>
<TITLE>Paginar un recordset</TITLE>


<%
' Paginas en un recordset
'------------------------
' Carlos de la Orden Dijs
' webmaster@aspfacil.com
'------------------------

Response.Write("<CENTER><H2>Paginando un recordset</H2></CENTER>")

Dim conec, rsc, sql
Dim PaginaActual ' en qué pagina estamos
Dim PaginasTotales ' cuántas páginas tenemos
Dim TamPagina ' cuantos registros por pagina
Dim CuantosRegistros ' para imprimir solo el nº de registro por pagina que queramos
cbasedatos=request.querystring("basedatos")
csort=request.querystring("sort")
Response.Write csort
Response.Write cbasedatos

'MODIFICAR AQUI PARA CAMBIAR EL Nº DE REGISTRO POR PAGINA
TamPagina=3

'Leemos qué página mostrar. La primera vez será la inicial
if Request.Querystring("pagina")="" then
PaginaActual=1
else
PaginaActual=CInt(Request.Querystring("pagina"))
end if

set conec=Server.CreateObject("ADODB.Connection")
set rsc=Server.CreateObject("ADODB.Recordset")

' Conexión por OLEDB
conec.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("data\"&cbasedatos&".mdb")
sql="Select distinct LIBELLE_SERVICE,CLE_SALARIE,NOM_SALARIE,PRENOM_SALARIE,TSALARIE.NUM_SERVICE,CODE_DU_BADGE from TSALARIE,TSERVICE WHERE TSALARIE.NUM_SERVICE=TSERVICE.NUM_SERVICE ORDER BY "&csort&""
rsc.CursorType = adOpenDynamic

' Defino el tamaño de las páginas
rsc.PageSize=TamPagina
rsc.CacheSize=TamPagina
' Defino el cursor en el cliente: adUseClient
rsc.CursorLocation = 3

' Abro el recordset
rsc.Open sql, conec, 1, 2

'Cuento las páginas
PaginasTotales=rsc.PageCount

'Compruebo que la pagina actual está en el rango
if PaginaActual < 1 then
PaginaActual = 1
end if
if PaginaActual > PaginasTotales then
PaginaActual = PaginasTotales
end if

'Por si la consulta no devuelve registros!
if PaginasTotales=0 then

Response.Write("No se encontraron resultados.")

else

'Vamos a paginar
rsc.AbsolutePage=PaginaActual
Response.Write("Pagina " & PaginaActual & " de " & PaginasTotales)
Response.Write("<br><br>")
Response.Write("<TABLE BORDER=""3"" BGCOLOR=""GRAY"" ALIGN=""center"">")
Response.Write("<TR bgcolor=""GRAY""><TD><B>NOMBRE</B></TD><TD><B>APELLIDO</B></TD><TD><B>NºTARJETA</B></TD><TD><B>MATRICULA</B></TD><TD><B>DEPARTAMENTO</B></TD></TR>")
CuantosRegistros=0
do while not rsc.EOF and CuantosRegistros < TamPagina
'Pinto una línea de la tabla por cada registro
j = j+1
f=j mod 2
if f = 0 then
Response.Write("<TR bgcolor=""WHITE"" bordercolor=""#CCCCCC"">"&VbCrLf)
Response.Write("<TD>"&rsc.Fields("NOM_SALARIE")&"</TD>")
Response.Write("<TD>"&rsc.Fields("PRENOM_SALARIE")&"</TD>")
Response.Write("<TD>"&rsc.Fields("CODE_DU_BADGE")&"</TD>")
Response.Write("<TD>"&rsc.Fields("CLE_SALARIE")&"</TD>")
Response.Write("<TD>"&rsc.Fields("LIBELLE_SERVICE")&"</TD>")
Response.Write("</TR>")
i=i+1
else
Response.Write("<TR bgcolor=""#CCCCCC"">"&VbCrLf)
Response.Write("<TD>"&rsc.Fields("NOM_SALARIE")&"</TD>")
Response.Write("<TD>"&rsc.Fields("PRENOM_SALARIE")&"</TD>")
Response.Write("<TD>"&rsc.Fields("CODE_DU_BADGE")&"</TD>")
Response.Write("<TD>"&rsc.Fields("CLE_SALARIE")&"</TD>")
Response.Write("<TD>"&rsc.Fields("LIBELLE_SERVICE")&"</TD>")
Response.Write("</TR>")
end if
i=i+1
CuantosRegistros=CuantosRegistros+1
rsc.MoveNext
loop
Response.Write("</TABLE>")

end if
rsc.Close
conec.Close
set rsc=nothing
set conec=nothing
%>
<%
'Muestro los enlaces%>
<%if PaginaActual > 1 then%>
<A HREF="empleadoslistado.asp?pagina=<%=PaginaActual-1%>&basedatos=<%=request.querystring("basedatos")%>&sort=<%=request.querystring("sort")%>">Anteriores</A>&nbsp;&nbsp;&nbsp;
<%end if%>
<%if PaginaActual < PaginasTotales then%>
<A HREF="empleadoslistado.asp?pagina=<%=PaginaActual+1%>&basedatos=<%=request.querystring("basedatos")%>&sort=<%=request.querystring("sort")%>">Siguientes</A>
<%end if
%>

Si habéis llegado hasta aquí, muchas gracias, de verdad. Y si tenéis alguna idea, no dudéis en comentarla please.


Inicio Pagina

sheyla82
Starting Member

España
37 Posts
Posted - 15 Sep 2004 :  10:51:17  Ver perfil  Enviar e-mail
He solucionado el problema en parte. Era que pasaba los datos con espacios y usando la función trim los recoge perfectamente y pagina bien.
cbasedatos=trim(request.querystring("basedatos"))
Y en la página del formulario lo mejor es colocar antes del fomrulario un if y luego redireccionar la página:

saldos.asp
<html>
<head>
<title>Saldos</title>
</head>

<body>
<% if request.form = "" then %>
<form method="POST" action="saldos.asp">
<input type="hidden" name="basedatos" value=<%=request.querystring("basedatos")%> size="20"><br>
<input type="text" name="nombre" value=<%=request.querystring("usuario")%> size="20"><br>

<br><input type="text" name="fecha" value=<%=Date%> size="20"><br>
<Br><p align="center"><input type="submit" value="Enviar" name="B1"></Br>
</FORM>
<%else%>
<%cbasedatos = request.form("basedatos")
cnombre = request.form("nombre")
cfecha = request.form("fecha")

response.redirect "saldosmesresultados.asp?basedatos="&cbasedatos& " &nombre="&cnombre& " &fecha="&cfecha
end if%>
</body>
</html>


Inicio Pagina

sheyla82
Starting Member

España
37 Posts
Posted - 15 Sep 2004 :  10:56:21  Ver perfil  Enviar e-mail
Ahora viene mi duda: Si en el mismo formulario incluyo un select que recibe los datos de un base de datos, muestra bien el formulario, con el menu desplegable correctamente realizado, pero al dar a enviar y redireccionar la página da error de q no encuentra la siguiente página. Si quito el select sí que la encuentra.
Gracias por leerlo.

El código por si les interesa:

saldos.asp:

<HTML>
<HEAD>
<TITLE>Paginar un recordset</TITLE>
<%
Response.Buffer = TRUE
%>

<%
Dim conec, rsc, sql
Dim PaginaActual ' en qué pagina estamos
Dim PaginasTotales ' cuántas páginas tenemos
Dim TamPagina ' cuantos registros por pagina
Dim CuantosRegistros ' para imprimir solo el nº de registro por pagina que queramos

'cbasedatos=mid(request.querystring("basedatos"),1,6)
cbasedatos=trim(request.querystring("basedatos"))

set conec=Server.CreateObject("ADODB.Connection")
set rsc=Server.CreateObject("ADODB.Recordset")

' Conexión por OLEDB
'conec.open=("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("data/"&cbasedatos&".mdb"))
conec.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("data\"&cbasedatos&".mdb")
sql="Select distinct CLE_NOMBRE,NOMBRE from EMPLEADOS"

' Abro el recordset
rsc.Open sql, conec, 1, 2

'Cuento las páginas
PaginasTotales=rsc.PageCount

rsc.movefirst

maxpagina=cint(rsc.pagecount)
maxregistros=cint(rsc.pagesize)
rsc.absolutepage=1
contreg=0
%>
<FONT FACE="Verdana"><br>Seleccione empleado</FONT>
<% if request.form = "" then %>
<form method="POST" action="saldos.asp">
<br><input type="hidden" name="basedatos" value=<%=request.querystring("basedatos")%> size="20"><br>
<select name="nombre" BGCOLOR="FUCHSIA">
<option selected value="">Todos</option>
<% do while not rsc.EOF and contreg < maxregistros %>
<option><%= rsc.fields("NOMBRE") %>
</option>
<% rsc.movenext
contreg=contreg+1
loop
%>

</select>
<%
rsc.close
set rsc=Nothing
conec.close
Set conec = Nothing
%>
<br><input type="text" name="fecha" value=<%=DateAdd("m",-1,Date)%> size="20"><br>
<Br><p align="center"><input type="submit" value="Enviar" name="B1"></Br>
</FORM>

<%else%>
<%cbd = request.form("basedatos")
cnombre = request.form("nombre")
cfecha = request.form("fecha")

response.redirect "saldosmesresultados.asp?basedatos="&cbd& " &nombre="&cnombre& " &fecha="&cfecha
end if%>

</body>
</html>

Inicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar