Bonjour à Tous,
Alors que l'on croyait le VBA complètement exclu des Triggers c'était sans compter la possibiliter d'utiliser une astuce tellement évidente qu'elle est passait totalement inaperçue ...
Comment exécuter du code VBA alors qu'aucune commande des évenements de table Access n'y font référence ? Il y a bien une commande RunDataMacro mais jusqu'à présent, les macros habituelles sont des RunClientMacro.
Il faut en fait s'arréter sur la commande SetLocalVar qui permet d'affecter une variable dans la portée de l'évènement. Et si on tentait d'affecter le résultat d'une fonction VBA à cette variable ? Passera, passera pas ? Un seul moyen de le savoir, il faut tester.

Un petit module VBA :
1 2 3
| Public Function MaFonction() As String
MsgBox "hello"
End Function |
Le résultat :

Bien entendu, il y a une limitation :
Impossible de lancer ce déclencheur depuis autre chose qu'une instance Access capable d'interpréter le VBA mais cela ouvre des portes assez importante, notamment dans la création de table de log qui stockeront par exemple les informations de l'environnement Windows (utilisateur, heure d'ouverture de session) sans avoir à se soucier du déclenchement de l'évènement. Toute information que le moteur de base de données ne peut intercepter, VBA peut l'atteindre.
2 |
0 |