Access - Recordset - uRgEnTe!!!!

 
Vista:

Recordset - uRgEnTe!!!!

Publicado por darroyo (24 intervenciones) el 16/08/2007 15:54:56
Hola a tod@s,
Mi caso es raro....raro raro....
Tengo un recordset cuyos datos vienen de una select sobre una tabla. Mientras no sea el final del recordset voy haciendo unas cosillas. Cuando llega al último registro me saca este error:
"Esta expresión no está escrita correctamente o es muy compleja para evaluarse. Por ejemplo, una expresión numérica puede contener muchos elementos complicados. Intente simplificar la expresión asignando a variables partes de la misma".
Mi código es:

While Not rs.EOF
************************
************************
rs.MoveNext ---> el error me da aqui.
wend

pero solo da el error cuando llega al ultimo registro del recordset , no antes.

¿ALGUNA SUGERENCIA?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Solucionar error al recorrer un recordset en VBA

Publicado por Alejandro (4142 intervenciones) el 17/08/2023 18:54:27
El error que estás experimentando puede deberse a varias razones. Aquí hay algunas sugerencias para solucionar el problema:

1. Verificar el recordset: Asegúrate de que el recordset (`rs`) se está abriendo correctamente y que no está vacío. Si el recordset no tiene ningún registro, intentar moverse al siguiente registro causará un error. Puedes agregar una verificación antes del bucle para asegurarte de que el recordset tenga registros:

1
2
3
4
5
6
7
If Not rs.EOF And Not rs.BOF Then
    rs.MoveFirst
    Do While Not rs.EOF
        ' Tu código aquí
        rs.MoveNext
    Loop
End If

2. Cerrar el recordset al final: Es importante cerrar el recordset una vez que hayas terminado de usarlo para liberar recursos. Puedes agregar una línea para cerrar el recordset después del bucle:

1
rs.Close

3. Lidiar con errores: Puedes agregar manejo de errores para capturar y analizar el error. Esto podría proporcionar más información sobre la causa del problema. Por ejemplo:

1
2
3
4
5
6
On Error Resume Next
rs.MoveNext
If Err.Number <> 0 Then
    MsgBox "Error al moverse al siguiente registro: " & Err.Description
End If
On Error GoTo 0

4. Probar en un entorno limpio: Si el problema persiste, intenta crear un nuevo formulario o módulo de prueba con un código simple que recorra un recordset similar. Esto ayudará a determinar si el problema está relacionado con el código o con otros factores en tu base de datos.

5. Compactar y reparar la base de datos: Si experimentas problemas persistentes, intenta compactar y reparar la base de datos para corregir posibles problemas de corrupción.

Recuerda que las soluciones pueden variar dependiendo de las circunstancias específicas de tu base de datos y tu código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar