0 votos
por (20 puntos) en .Net
Hola, he realizado una consulta en Sql, y ahora quiero, recorriendo el Recordset obtenido, ir sumando ventas; pero sólo puedo sumar aquellas que tienen el mismo mes, para ello me creo variables locales para el mes y año, y luego, una vez que muevo el cursor al siguiente registro y voy a comparar el valor del mes en la variable con el valor del siguiente registro, Asp me dice lo siguiente "Requested operation requires a current record".

La pregunta es qué tengo que hacer para comparar el registro anterior con el actual, en el Recordset obtenido de una consulta. Os paso el código desarrollado por si os ayuda:

<pre lang='asp' lineno='1'><%Do While Not Rst_Datos_Inf_SesImp.Eof %>
<td><%=Rst_Datos_Inf_SesImp.Fields("NombreCompleto")%></td>
<td><%=Rst_Datos_Inf_SesImp.Fields("Titular_Cuenta")%></td>
<td><%=Rst_Datos_Inf_SesImp.Fields("Ent")%></td>
<td><%=Rst_Datos_Inf_SesImp.Fields("Suc")%></td>
<td><%=Rst_Datos_Inf_SesImp.Fields("dc")%></td>
<td><%=Rst_Datos_Inf_SesImp.Fields("ccc")%></td>
<td><%=Rst_Datos_Inf_SesImp.Fields("ID_Sesion")%></td>
<td><%=Rst_Datos_Inf_SesImp.Fields("Fecha")%></td>
<td><%=Rst_Datos_Inf_SesImp.Fields("Año")%></td>
<td><%=Rst_Datos_Inf_SesImp.Fields("Mes")%></td>
<% Mes_Rst = Rst_Datos_Inf_SesImp.Fields("Mes")%>
Mes_Rst:<%=Mes_Rst%>
<% Ano_Rst = Rst_Datos_Inf_SesImp.Fields("Año")%>
Ano_Rst:<%=Ano_Rst%>
<td><%=Rst_Datos_Inf_SesImp.Fields("Hora")%></td>
<td><%=Rst_Datos_Inf_SesImp.Fields("Importe")%></td>
<%Importe = Rst_Datos_Inf_SesImp.Fields("Importe")%>
</tr>
<%Total = Total + Rst_Datos_Inf_SesImp.Fields("Importe")%>

<%Rst_Datos_Inf_SesImp.MoveNext%>

<%Ano = Rst_Datos_Inf_SesImp.Fields("Año")%>
Ano::<%=Ano%>
<%Mes = Rst_Datos_Inf_SesImp.Fields("Mes")%>
Mes::<%=Mes%>
<% if Ano = Ano_Rst then
if Mes = Mes_Rst then
Total_Mes = Total + Rst_Datos_Inf_SesImp.Fields("Importe")
else %>
<%=Total_Mes%>
<%end if%>
<%end if%>
<%=Total_Mes%>   

<%loop%>

1 Respuesta

0 votos
por (80 puntos)
hola, espero no sea muy tarde.

Creo que el error es que la consulta no esta devolviendo nada, probablemente sea porque estas llegando a EOF cuando haces <code>Rst_Datos_Inf_SesImp.MoveNext</code> y luego intentas obtener datos de alli. Podrias validar que no sea EOF adentro antes de hacer el movenext o con un contador validar antes de hacer el movenext que el contador no sea mayor a <code>Rst_Datos_Inf_SesImp.Recordcount</code>


Preguntas relacionadas

0 votos
2 respuestas
preguntado por Alvin (20 puntos) Ene 28, 2016 en .Net
0 votos
2 respuestas
preguntado por chiky (20 puntos) Ene 28, 2016 en .Net
0 votos
3 respuestas
preguntado por marin (20 puntos) Ene 28, 2016 en HTML
0 votos
0 respuestas
preguntado por admin (1.4k puntos) Jul 29, 2016 en .Net
0 votos
0 respuestas
preguntado por Fitoo (20 puntos) Ene 28, 2016 en .Net
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...