Evitar cambiar de registro en un formulario asociado a una tabla en Microsoft Access

Tu has de ser el mejor experto en bases de datos en Access, ¿verdad?
Espero que me puedas ayudar: lo único que quiero hacer es que no se pueda cambiar de registro en un formulario asociado a una tabla cuando yo no quiera que eso pase. ¿Cómo podría hacerlo? ¿Habrá una propiedad?
Estaré muy agradecido de una respuesta lo más pronto como sea posible, la espero.
1

1 Respuesta

165.900 pts. Más de 35 años en la informática y más de 20 trabajando...
Lo más sencillo que se me ocurre para hacer eso es que al abrir el formulario filtres sólo el registro al cual quieras acceder.
Otra forma sería controlar el número del registro en que está el formulario (me. Recordset. Absoluteposition) y en el evento 'Current' asignarle un número de registro fijo.
Hola! Perdón por tardar.
Muchas gracias por tu respuesta, la verdad es que me va a ayudar mucho ya que hay cosas nuevas que puedo aplicar. Pero lo que quiero es un poco más complicado. Por ejemplo, cuando esté un botón de alternar activo, se pueda cambiar de registro y cuando no, no se pueda.
Espero que puedas ayudarme con esto, estaré esperando tu respuesta y muy agradecido por ella.
Saludos.
A ver, supongamos que tienes el 'formHector' y quieres que siempre presente el último registro mientras la casilla de verificación 'casillaHector' esté activada. Cuando esté desactivada dejaremos que se mueva por todos los registros.
Para ello, en tu formulario debes introducir este código Visual Basic (entras en el editor pulsando <Alt><F11>):
Option Compare Database
Option Explicit
Private Sub casillaHector_Click()
    compruebaMoverRegistro
End Sub
Private Sub Form_Current()
    compruebaMoverRegistro
End Sub
Private Sub Form_Load()
    Me.casillaHector.Value = True   ' Valor inicial al abrir el formulario
    compruebaMoverRegistro
End Sub
Sub compruebaMoverRegistro()
    If Me.casillaHector Then ' Si tenemos que ir al último...
        If Me.Recordset.RecordCount > 0 Then
            ' Si hay registros... nos vamos al último (sino no hacemos nada)
            DoCmd.GoToRecord acDataForm, Me.Name, acLast
        End If
    End If
End Sub
Con eso tiene que funcionarte (a mi me va bien).
¡Hola! ¡Muchas gracias por la respuesta!
Me va a servir mucho este fragmento de programa, lo aplicaré en mi proyecto, está muy bueno.
De nuevo gracias, espero que sigamos comunicados. Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas