Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/02/2008, 13:51
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 4 meses
Puntos: 37
Re: Movelast en un objeto recordset - vb6.0

Bueno, lo primero que tienes que tener en cuenta es que la propiedad EOF es verdadero cuando el registro activo es el siguiente al último del recordset y la instrucción MoveLast lo manda al último, por lo tanto EOF es False. Igual para BOF (anterior al primero).

Debes jugar con la propiedad AbsolutePosition del recordset que dá de valor 1 en el primer registro y RecordCount en el último, activando o desactivando los botones de posición.

Para que funcione tu código, podrías poner algo así:

Código:
Private Sub Command1_Click(Index As Integer)
Select Case Index
Case 0  ' ir al primer registro
     rs.MoveFirst
Case 1  ' ir al siguiente
    rs.MoveNext
Case 2  ' ir al anterior
   rs.MovePrevious
Case 3  ' ir al último
    rs.MoveLast
End Select
Command1(1).Enabled = IIf(rs.AbsolutePosition = rs.RecordCount, False, True)
Command1(3).Enabled = IIf(rs.AbsolutePosition = rs.RecordCount, False, True)
Command1(0).Enabled = IIf(rs.AbsolutePosition = 1, False, True)
Command1(2).Enabled = IIf(rs.AbsolutePosition = 1, False, True)
End Sub
Por supuesto que tanto en el Command1(0) como el (2), la propiedad Enabled al cargar debe de estar a False (lo puedes hacer en el Load o en diseño)

Espero que así te funcione.