OVH Cloud OVH Cloud

Enregistrement verouillé

1 réponse
Avatar
Jean-Paul Da Boit
Bonjour,

J'utilise une base Access sous Windows 2000 serveur.
Je cherche l'instuction VBA qui pourrait m'indiquer si un enregistrement est
verouillé par un autre utilisateur afin de generer un message d'erreur.

Merci d'avance à tous & toutes

Jen-Paul

1 réponse

Avatar
Bonjour

"Jean-Paul Da Boit" a écrit dans le message de
news:
Bonjour,

J'utilise une base Access sous Windows 2000 serveur.
Je cherche l'instuction VBA qui pourrait m'indiquer si un enregistrement
est verouillé par un autre utilisateur afin de generer un message
d'erreur.

Merci d'avance à tous & toutes

Jen-Paul



Ci-joint une procédure qui n'est pas de moi : il y a peut-être plus simple
mais elle a le mérite de fonctionner.

Sur événement "Si modification" du formulaire, coller ceci :

Private Sub Form_Dirty(Cancel As Integer)

On Error Resume Next

With Me
.AllowAdditions = True
.AllowDeletions = True
.AllowEdits = True
End With

With Me.RecordsetClone
.LockEdits = True
'-- on synchronise avec le formulaire
.Bookmark = Me.Bookmark
'-- on tente une édition de l'enreg
.Edit
'-- on teste l'erreur : Enregistrement déjà bloqué
If Err.Number = 3260 Or Err.Number = 3188 Then
'-- on informe l'utilisateur

MsgBox "Erreur No." & Err.Number & " : " & Err.Description, _
vbExclamation, "Enregistrement en cours de modification...."
End If
End With
End Sub

Pour tester, j'ai mis :
menu outils > options onglet avancé => verrouillage par défaut =
Enregistrement modifié
propriétés du formulaire > onglet Données > verrouillage = Enregistrement
modifié

Le message d'erreur apparaît dans le formulaire de saisie dès qu'on tente de
modifier un enregistrement qui est en cours de modification (simulé depuis
un accès direct à la table et modification en cours d'un enregistrement de
la table)

Attention ; procédure testée sous Access 2000 => ce n'est pas 1
enregistrement qui se trouve verrouillé mais dans mon cas une "page" de 169
enregistrements type texte longueur 50, la table ne comprenant qu'un seul
champ.

Le verrouillage se produit pour une taille donnée occupée par les
enregistrements de la table (je ne me souviens plus combien exactement mais
ce sujet a déjà été abordé ici, google te le dira) et pas un enregistrement
unique (en tout cas sous Access 2000)

à+
Arnaud