Evènement "Avant l'action d'enregistrement" déclenché deux fois

Bonjour à toutes et tous,
je tente de comprendre le fonctionnement de l’évènement “Avant l’action d’enregistrement” d’un formulaire lié à une table dans LOOBase.
En effet, avec l’exemple très simple ci-joint, je tente d’afficher un message “Toto” lorsque je modifie un enregistrement de la table “Tâches” dans le formulaire “Tâches”. Je m’attends donc à ce que le message s’affiche qu’une seule fois, mais en fait il s’affiche deux fois: pourquoi donc ?
Exemple_Avant_action_enregistrement.odb.zip (11.2 KB)
Je vous remercie par avance pour votre aide,
Pascal
Merci par avance pour votre aide,
Pascal

Bonjour Pascal,

l’événement intercepté RowChangeEvent se produit 2 fois :

  1. La première fois sa source est un objet org.openoffice.comp.svx.FormController qui gère le formulaire (-> on a changé de ligne dans la grille)
  2. La seconde fois, la source est un objet com.sun.star.comp.forms.ODatabaseForm qui gère la connexion à la base via le SQL (-> on va actualiser les données dans la grille).

Tu peux interroger la source de l’événement et ne traiter que celle qui t’intéresse :

Sub Toto(pEvt As Object)
 
oSource = pEvt.Source
If oSource.ImplementationName = "com.sun.star.comp.forms.ODatabaseForm" Then
	print "toto"
End If

End Sub

(merci pour le rappel @fpy :slight_smile: :smile:

This is the guide - How to use the Ask site? - #6 by erAck

Bonjour Jfn,
merci pour ton aide. Effectivement ce la résout mon problème.
Merci beaucoup !