Bonjour à toutes et tous

En premier lieu, j'espère avoir choisi le bon forum mais si ce n'est pas le cas, n'hésitez pas à me le signifier. Je dois dire aussi que je ne comprends pas d'où vient mon bug donc pas facile à catégoriser

Je viens donc à vous pour un problème assez particulier. J’ai créé une base Access qui communique avec un serveur PostgreSQL pour alimenter des tables à distance (via ODBC). Aucune table stockée en local. J'ai déployé cette base à différents collègues pour qu'on puisse tous alimenter la base PostgreSQL. Sur le formulaire d'accueil, il y a un bouton au-clic avec ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
DoCmd.OpenForm "ficheoperation", , , , acFormAdd
DoCmd.GoToRecord , , acNewRec
DoCmd.RunCommand acCmdSaveRecord
Et ça fonctionne bien, ça ouvre le formulaire « ficheoperation », ça atteint un nouvel enregistrement et ça sauvegarde (ce qui a pour effet de créer un identifiant unique généré grâce à une séquence de la base postgreSQL). Puis les collègues renseignent les infos de l’opération et ferment la fenêtre. Cependant, chez certains collègues, au bout d’un moment ça va bugger de manière étrange. Petite mise en situation :

Utilisateur A utilise la base, personne n’autre ne l’alimente à ce moment-là. Il crée 4 nouvelles opérations, qui s’enregistrent automatiquement dans la table distante avec les ID uniques 950, 951, 952, 953. Tout fonctionne bien.

Dans la continuité, il veut créer une 5ème opération MAIS cette fois ça ne marche plus, le formulaire le renvoie à l’opération ayant l’ID 953 (soit la dernière opération qu’il a créé, au lieu de l’amener vers une nouvelle). Pourtant une ligne avec l’ID 954, sans aucune information, vient de se créer dans la base PostgreSQL.

Il réessaye encore et encore, mais ça continue à le renvoyer systématiquement à l’enregistrement 953 et en parallèle ça crée autant de lignes vides dans la base (ID 955, 956, 957, etc.)

Puis Utilisateur B lance aussi la base pour renseigner ses opérations. Il renseigne deux opérations, qui possèderont les ID 958 et 959. Tout fonctionne bien chez lui.

Utilisateur A a beau fermer et relancer la base, il est toujours confronté à son bug, et celui-ci continue de le renvoyer à l’enregistrement 953 alors qu’il existe dans la table de nouveaux enregistrements créés par Utilisateur B. Le bug ne semble donc pas le renvoyer à la dernière ligne de la table, mais bien au dernier enregistrement qu’il a lui-même créé…

Voilà pour la petite histoire. Je précise qu’il peut quand même forcer la création d’opérations en ouvrant sous Access la table distante « operations » et en ajoutant une nouvelle ligne manuellement. Sa base est donc capable de créer de nouveaux enregistrements, mais le formulaire « ficheoperation » ne semble plus vouloir atteindre un nouvel enregistrement et renvoie systématiquement à la dernière opération renseignée à partir de cette base. Ce bug intervient chez certains collègues mais pas chez tous, et ne semble pas avoir de lien avec une version d’Access ou de Windows. J’ai tenté des mises à jour mais ça ne change rien.

Voilà je me doute que l’exposition de mon problème est assez déroutante mais ce bug me laisse vraiment sans armes, je ne comprends absolument pas ce qu’il peut bien se passer. Le fait que ça fonctionne très bien pendant un certain temps PUIS que ça ne veuille plus fonctionner, le fait qu’en parallèle, les autres personnes n’ont aucun problème à ajouter des opérations (le souci ne viendrait donc pas de postgreQSL), le fait que des lignes vides se créent (comme si le formulaire parvenait à atteindre un nouvel enregistrement avant d’être renvoyé au précédent), etc…

Est-ce que ce problème parle à quelqu’un ? Une idée d’où peut venir le soucis ?

Merci d’avance

Alban