Problemas con ADODC

Estimados tengo una consulta para hacerles estoy realizando un sistema y soy muy nueva en esto quisiera preguntarles que puede ser lo que esta fallando en estas sentencias:
El siguiente pedazo de programación lo que tendría que hacer es recorrer una tabla de una base datos con un objeto ado y en unas variables auxiliares hacer un acumulador de los campos 1 y 2 para después mostrarlos en pantalla como los totales de los mismos
Ado1.Recordset.MoveFirst
 While Ado1.Recordset.EOF <> True
    Aux = Aux + Ado1.Recordset.Fields("Campo2")
    Aux1 = Aux1 + Ado1.Recordset.Fields("Campo1")
    Ado1.Recordset.MoveNext
Wend
Cuando lo ejecuto me sale el siguiente cartel:
Error '3021' en tiempo de ejecución:
El valor de EOF o BOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual
Respuesta
1
Lo que tienes que hacer es poner una interrupción (F9)
En ado1. Recordset.movefirst e ir recorriendo con F8 paso por paso para saber cuando se produce el problema
Aunque pueda ser que te de ahí el error porque no encuentra ningún registro y vos ya lo estas mandando a que busque el primero.
Fíjate que primero lo mandas al movefirst y después preguntas si es eof.
Hola Leandro! Muchísimas gracias es verdad no me había dado cuenta, hasta que me lo hiciste ver, de que le doy la orden de que mueva al primero y después pregunto si es EOF... recién ahí me avive de eso :-O ... Muchísimas gracias
Saludos

2 respuestas más de otros expertos

Respuesta
1
¿Tu tabla tiene data? Quizá no la tenga, o puede ser que si tenga, pero cuando haces tu Select al momento de abrir tu ADO, ¿no te retorna ninguna fila entiendes?
Hola! No la tabla no tiene datos, tiene que ser así porque usaría al ADO para cargar datos en ella entonces en un principio esta tabla tendría que estar vacía
A claro que entiendo, entonces coloca esto antes de tu código
if Ado1.Recordset.EOF or Ado1.Recordset.BOF then return
Y con eso seria todo. Eso indicara que el código que me acabas de mandar funcionara siempre ey cuando la tabla por lo menos tenga un registro, en caso contrario no ara nada.
Respuesta
1
prieba cambiando la condicion del While: While not Ado1. Recordset. EOF

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas