Access - Help! Help!!!!!! registro bloqueado

 
Vista:

Help! Help!!!!!! registro bloqueado

Publicado por Frank (1 intervención) el 26/12/2006 15:46:46
Amigos.... Alguien sabe como determinar (a través de código) si un registro está bloqueado por otra sesion?? Los necesito para deshabilitar unas opciones cuando un registro en particular esta siendo editado por otro usuario. hasta ahora, lo unico que tengo es el icono de "no fumar" en la parte superior del selector de registros.

Graciasssssssssssss........................
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

Cómo determinar si un registro está bloqueado por otra sesión y deshabilitar opciones de edición

Publicado por Alejandro (4142 intervenciones) el 31/07/2023 23:49:11
Para determinar si un registro está bloqueado por otra sesión y deshabilitar opciones de edición en Microsoft Access, puedes seguir los siguientes pasos:

1. Agregar un campo "Bloqueado" a la tabla: Asegúrate de tener un campo en la tabla que indique si el registro está bloqueado o no. Por ejemplo, podrías agregar un campo booleano llamado "Bloqueado" que tenga el valor "Verdadero" (True) cuando el registro esté siendo editado por otro usuario.

2. Controlar el bloqueo al abrir el formulario: En el evento "Al abrir" del formulario, puedes verificar si el registro actual está bloqueado por otra sesión. Para hacer esto, necesitas una función o procedimiento que verifique si el registro está bloqueado y devuelva un valor booleano.

3. Deshabilitar opciones de edición: Con base en el resultado obtenido de la verificación, puedes deshabilitar las opciones de edición, como botones de guardar, cuadros de texto o cuadros combinados, para evitar que el usuario edite el registro mientras esté bloqueado.

4. Controlar el desbloqueo al cerrar el formulario: También puedes manejar el desbloqueo del registro cuando el usuario cierra el formulario. En el evento "Al cerrar" del formulario, asegúrate de actualizar el campo "Bloqueado" a "Falso" (False) para liberar el registro.

Aquí hay un ejemplo de cómo podría ser el código para realizar estas acciones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
' Función para verificar si el registro está bloqueado.
Function EstaBloqueado(IDRegistro As Long) As Boolean
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT Bloqueado FROM TuTabla WHERE ID = " & IDRegistro)
    EstaBloqueado = rs!Bloqueado
    rs.Close
    Set rs = Nothing
End Function
 
' Evento Al abrir el formulario.
Private Sub Form_Open(Cancel As Integer)
    Dim IDRegistro As Long
    IDRegistro = Me!ID ' Reemplaza "ID" con el nombre del campo que identifica de manera única cada registro en tu tabla.
    If EstaBloqueado(IDRegistro) Then
        ' Deshabilitar opciones de edición aquí, por ejemplo:
        Me.BotónGuardar.Enabled = False
        Me.CuadroDeTexto.Enabled = False
        Me.CuadroCombinado.Enabled = False
    End If
End Sub
 
' Evento Al cerrar el formulario.
Private Sub Form_Close()
    Dim IDRegistro As Long
    IDRegistro = Me!ID ' Reemplaza "ID" con el nombre del campo que identifica de manera única cada registro en tu tabla.
    ' Actualizar el campo "Bloqueado" para desbloquear el registro.
    CurrentDb.Execute "UPDATE TuTabla SET Bloqueado = False WHERE ID = " & IDRegistro
End Sub

Recuerda reemplazar "TuTabla" con el nombre real de tu tabla y ajustar los nombres de los campos y controles según la estructura de tu base de datos.

Con esta solución, podrás verificar si un registro está bloqueado por otra sesión y deshabilitar las opciones de edición para evitar conflictos y garantizar la integridad de los datos mientras estén siendo editados por otro usuario.
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