Bonjour,

Cela fait plusieurs jours que je cherche la cause du problème, mais ne trouvant vraiment pas j'ai décidé de faire appel à votre aide. Pour cela je remercie d'avance tous les futurs contributeurs à la résolution de mon problème.

Voici mon problème :
Je développe une base depuis plusieurs années avec des passage de la version XP puis 2003 puis 2010 64 bits puis dernièrement sous 2016 64 bits. Et là j'ai un bug étrange que je n'ai pas sur la version 2010 64 bits.
Nota : les changements de version me sont imposés par ma DSI.

Le bug constaté apparaît dans un sous-formulaire d'un formulaire. Ce sous-formulaire est en mode continue, j'ai donc une ligne vierge qui apparait en bas de ma liste avec renseigné les valeurs par défaut. Pour certains champs, j’utilise des fonctions pour calculer cette valeur par défaut et ici c'est la fonction rechdom plus précisément. Donc dans certains cas au lieu d'avoir la valeur par défaut qui s'affiche, j'ai une erreur qui apparait dans le champ du type #Erreur. Cependant cette erreur ne se produit pas systématiquement.

En effet, ce formulaire et sous formulaire correspondent à un formulaire devis et à un sous-formulaire ligne de devis. Chaque ligne de devis possède donc un montant qui peut être soit 0 soit une valeur différente. De plus, quand un champ de la ligne de devis permettant de calculer le montant de cette ligne évolue, une fonction se déclenche pour mettre à jour le montant de la ligne et celui du devis. De même lors de la suppression d'une ligne devis, la même fonction met à jour le montant du devis. Cependant tant que le montant de la ligne de devis et du devis n'évolue pas, l'erreur n'apparait pas (par exemple en supprimant une ligne de devis dont le montant est à 0). Dès que le montant évolue en saisissant une valeur dans la ligne de devis ou en supprimant une ligne de devis dont le montant n'est pas nul, l'erreur se produit.

En ayant identifié ce problème, j'ai creusé la piste de la suppression d'une ligne de devis. En effet, j'ai 2 cas : une ligne avec montant à 0 ou différent de 0. Et cette suppression ne génère que peut d'action. Donc, j'ai identifié que c'est la fonction mise à jour du montant total du devis sur le formulaire devis qui génère indirectement l'erreur. En effet, si je désactive la fonction, l'erreur ne se produit pas. Cependant la fonction s’exécute de la même façon que le montant de la ligne soit à 0 ou différent de 0. Je suppose donc qu'Access 2016 doit faire quelque chose de différent que la version 2010 quand la valeur d'un champ évolue.

Mais à partir de ce point, je bloque car je ne comprend pas quoi et je ne comprend pas pourquoi il n'arrive pas à résoudre mes fonctions qui calculent les valeurs par défaut alors que normalement cela fonctionne.

Afin d'illustrer mon problème, j'ai enregistré les différentes étapes qui génèrent une erreur. Voir le fichier pdf attaché.

Bug sur formulaire devis.pdf

Si vous avez une idée pour résoudre mon problème, cela sera bienvenue.