Hola manuelbse.
Dices que el error lo tienes en los BOF y EOF. No especificas que tipo de error es pero si tienes la tabla vacía esto genera error:
If consulta.EOF = False Then
consulta.MoveNext
Else
consulta.MoveLast
End If
Veamos:
If consulta.EOF = False Then : Te devuelve True entonces pasa al Else
y trata de ejecutar:
consulta.MoveLast, pero como tampoco hay un registro anterior (BOF es igual a
True) entonces te genera el error...
Supongo que un código así podría funcionarte:
If consulta.EOF = False Then
consulta.MoveNext
ElseIf consulta.BOF=False Then
consulta.MoveLast
Else
'Entonces la tabla está vacía
End If
Espero que te sea de alguna ayuda.
DiabloRojo.