Bonjour,
j’utilise depuis plus de 10 ans une application de gestion Access (2002 puis 2016). Une frontale et une dorsale.
L’application fonctionne en réseau multipostes. Chez la plupart de mes clients tout va bien.
Chez certains (rares heureusement) j’ai parfois (une fois tous les 2 mois de façon irrégulière), des plantages. Il faut compacter et ça repart.
Par contre parfois après cette opération, si je contrôle les tables, les tables principales perdent leur index et en conséquence les liens entre table sautent. Si je ne le vois pas tout de suite je retrouve des tables avec des enregistrements défectueux ####### et des doublons, pas simple de remettre les liens par la suite.
Avez-vous déjà constaté ce problème, et surtout quelle peut-en être la cause (je pense à des liaisons réseau défectueuses). Sachant que chez certains clients je n’ai aucun soucis depuis 10 ans….
Une autre cause pourrait être le conflit lors de la génération de la clé primaire par numéro auto. D’après un forum il semblerait que si deux utilisateurs demandent un nouveau numéro en même temps Access perde les pédales ?
J’utilise le code suivant pour créér un enregistrement, xmateriel une variable qui contient le nom de la machine. Un nouveau numéro de clé (numéro Auto) Rs![NUMERO] est défini par access, existe-t-il un façon de vérifier que le nouveau numéro est libre avant update : RefreshRecord, utiliser dmax et affecter avec le code le nouveau numéro dans un champ non Auto ?
Merci de votre aide. Je sais qu’Access n’est pas une base bien adaptée à ce type d’exploitation, je n’ai pas le choix et la plupart du temps cela fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Set Rs = db.OpenRecordset("HISTORIQUE", dbOpenDynaset) With Rs .AddNew ![MATERIEL] = xmateriel .Update End With
Partager