Tema: Bloqueo
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22-05-2008, 09:48:04
Avatar de J.M.Movilla
J.M.Movilla J.M.Movilla is offline
Administrator
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.255
J.M.Movilla Valoración +2
Predeterminado Re: Bloqueo

Yo uso un sistema que me funciona "casi" perfecto:

Tengo una tabla que llamo "Acceso" con sólo un campo: "Bloqueo" de tipo numérico-Integer.

Ese campo se inicializa con valor 0.

Cuando necesito tener bloqueado el fichero, que en realidad sólo es necesario en ocasiones especiales, como por ejemplo para incrementar el número de Factura (la última más uno...) donde no podrían acceder dos usuarios simultáneamente por ambos obtendrían el mismo número de factura, hado esto:
Código:
' Abro el recordset (rsBloqAcc) con el campo Bloqueo de la tabla Acceso
' Cada usuario tiene asignado un Número de Usuario (NumUsu)

'  ATENCIÓN.  Para DESBLOQUEAR si se salió por error...
If rsBloqAcc!Bloqueo = NumUsu Then
   rsBloqAcc!Bloqueo = 0
   rsBloqAcc!Bloqueo.Update
End If

' CONTROL DEL BLOQUEO
Dim nPasos As Long
Dim nMaxPas As Long

nMaxPas =  20000 'Este valor puede ser menor o mayor, dependiendo del tiempo que dure el proceso de grabación del registro...
EstudiaBloqueo:
For nPasos = 0 To nMaxPas
   If rsBloqAcc!Bloqueo = 0 Then Exit For
Next nPasos

If nPasos > nMaxPas
   ' El registro está bloqueado...
   ' Abro un mensaje preguntando si quiero INSISTIR en esperar el desbloqueo ->  Si contesta afirmativamente... Goto EstudiaBloqueo
End If

'  Proceso de búsqueda de último número de Factura.  Incremento este número...  Grabo el registro.  Updateo...

' Reinicio campo Bloqueo
rsBloqAcc!Bloqueo = 0
rsBloqAcc!Bloqueo.Update

' Y cierro el recordset.
Además de esto, tengo una opción, habilitada sólo para el Administrador, que puede poner a 0 el campo Bloqueo de la tabla Acceso, para el caso de que un usuario lo deje bloqueado y no vuelva a entrar... Porque, ya sinos que si entra de nuevo ese usuario, se desbloquea automáticamente.
__________________
José María Movilla Cuadrado
______________________

Visual Basic Videos Programacion Foro Programacion
Tutoriales Programacion Trucos Programacion Codigos Programacion
Responder Con Cita