Ah ok... je comprends mieux maintenant...
Alors, il me semble que c'est logique que cela ne fonctionne pas... Je n'ai pas vérifié "de visu" avec un petit test sous Access mais quand ton formulaire n'accepte pas les modifications, les contrôles liés à la BD ne sont pas "actifs" donc forcément ils ne captent pas les events...
Pour moi, ce que tu dois faire c'est de proposer un bouton qui permet à ton utilisateur de partir en modification sur le formulaire plutôt que de lui poser la question lorsqu'il essaie de saisir qqch... Ce serait moins déroutant pour tes utilisateurs...
Par contre, si tu veux garder ta façon de faire, tu seras obligé de gérer ça à la main. Ce que je te propose, c'est de laisser ton formulaire accepter les modifications de les données mais d'avoir une variable globale (pas très propre mais bon) qui te dit s'il accepte ou non les modifs. Ton code deviendrait:
Private Sub Cplt_adresse_Keydown(Keycode As Integer, Shift As Integer)
If pblnModif Then
If MsgBox("blabla", vbYesNo + ...) = vbNo Then
Keycode = 0
pblnModif = False
Else
pblnModif = True
End If
End If
End Sub
Dans ce bout de code la variable globale est bien entendu pblnModif (de type boolean).
Mais bon, je trouve pas très propre cette manière de faire... Je pense qu'il serait mieux de passer par un bouton "Modifier" sur lequel ton utilisateur est obligé de clicker avant de modifier!
Hope this helps!