Bonjour,
Je n’ai pas ce phénomène avec mon exemple de test.Ça fonctionne en réinitialisant le contrôle indépendant sur modification. Par contre chaque fois qu'une lettre est tapée le formulaire clignote, c'est assez désagréable...
Essaie de compacter ta base de données.
Si le problème persiste, je n’ai rien d’autre à te proposer.
Access fonctionne de manière asynchrone, c’est-à-dire qu’il n’attend pas qu’une instruction soit complètement terminée avant de déclencher la suivante.Pour le DoEvents ça marche, mais pas tout le temps
Dans ton cas, il se pourrait que le message soit affiché avant que Access ait eu le temps de terminer le processus de mise en forme conditionnelle.
En principe, DoEvents empêche de commencer les instructions en aval tant que les instructions en amont ne sont pas terminées.
D’après ce que tu signales (dans mon test ce n’est pas le cas !), c’est comme si DoEvents n’avait pas d’emprise sur la mise en forme conditionnelle.
Je te propose donc, en désespoir de cause, d’ajouter un Sleep 1000, histoire de temporiser une seconde pour laisser du temps à Access.
Si tu constates que cela marche, tente de réduire la durée du Sleep pour qu’il devienne imperceptible par l’utilisateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Option Compare Database Option Explicit Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Form_Current() Me.txtActif = Nz(Me.AuteurPk, "|") End Sub Private Sub AuteurNom_Change() Me.txtActif = Me.AuteurPk 'sur tous les contrôles susceptibles d'être encodés en premier End Sub Private Sub AuteurPrenom_Change() Me.txtActif = Me.AuteurPk End Sub Private Sub BtSupprimer_Click() DoEvents Sleep 1000 MsgBox "ok" End Sub
Partager