Jean Michel PIERRE a écrit :


Docgranville a écrit :

Bonjour Jean,

Sans avoir encore ouvert ta base, je dis que vu la tête du message d'erreur, c'est normal que ton enregistrement ne soit pas dans ta table ; la boite de dialogue t'annonce une erreur et ne procède pas à la mise à jour (la mise à jour étant l'insertion d'un nouvel enregistrement).

En l'occurrence, la boite te dit : "Violation of unique constraint" ; ça semble signifier que la tentative d'enregistrement s'est traduite par une violation d'une contrainte d'unicité ; tu sembles donc avoir tenté (involontairement je suppose) d'entrer, dans un champ, une valeur figurant déjà dans un autre enregistrement, alors que ce champ a été défini comme devant présenter une valeur unique (normalement, c'est la clef primaire) ; c'est d'ailleurs ce qui t'est précisé dans le bout de phrase suivant "duplicate value(s) for column(s) "Id_Met"" in statement..." qui signifie "valeur en double pour la colonne "Id_Met" dans l'instruction...

Je vais essayer d'aller voir la tête de ta table pour voir ce qui cloche et hje reviendrai te dire si je trouve quelque chose.

A+

Bonjour,
J'aurai aussi parié sur un format date dans le contrôle du formulaire incohérent par rapport au format date du champ de la table.
J.M
Suite des investigations :

Non, apparemment, le format de la date ne pose pas de problème ; j'ai tenté d'insérer une date 13/3/9 et le formulaire m'a transformé ça en Vendredi 13 Mars 2009, tout seul comme un grand.

En revanche, Jean, n'aurais tu pas envoyé une instruction particulière à ta table ?

J'ai procédé à un certain nombre d'essais et tous se sont soldés par des échecs ; puis, d'un seul coup, ça a fonctionné ; j'étais en train de m'interroger, quand j'ai constaté que la clef primaire de mon enregistrement était le 14 ; j'ai aussitôt consulté la table et je me suis aperçu que tu avais supprimé ayant porté les numéros 14, 15 et 16 (qui suivaient le 21 Janvier) ; derrière, j'ai pu procéder à l'enregistrement de deux nouveaux tuples, qui ont pris les clefs primaires 15 et 16 ; ensuite, les nouveaux enregistrements que j'ai tentés m'ont à nouveau envoyé le même message d'erreur ; j'imagine que ma prochaine tentative fructueuse sera celle où l'auto-valeur cherchera à attribuer la clef 39 à mon nouveau tuple.

J'en déduis donc que, pour une raison qui m'échappe, l'auto-valeur a reçu l'instruction de repartir de 0 ; soit c'est l'auteur de la base qui a donné cette instruction, soit c'est le système ; mais en tout cas, le fait est là ; du coup, l'auto-valeur propose comme clef primaire, des valeurs déjà présentes dans la table ; d'où le message d'erreur.

La solution ? Elle est très simple : tu continues à tenter d'enregistrer ; lorsqu'apparaît le message d'erreur, tu cliques sur OK, puis tu tentes de ré-enregistrer ; le message d'erreur apparaît de nouveau, tu cliques de nouveau sur OK et ainsi de suite ; visiblement, à chaque nouvelle tentative, l'auto-valeur se ré-incrémente, ce qui fait qu'à un moment, elle va rencontrer une valeur utile ; dans un premier temps, tu vas donc devoir faire 14 tentatives et la 15ème sera la bonne ; les 2 enregistrements suivants fonctionneront du premier coup ; pour le suivant, tu devras répéter l'opération précédente jusqu'à ce que l'auto-valeur (qui en est alors à 17) propose la valeur 39 ; après ça, ta base retrouvera un fonctionnement normal.

A ce moment là, tu auras le droit de te réjouir que l'évènement ayant ordonné à l'auto-valeur de repartir de 0 soit arrivé alors que tu n'avais que 35 enregistrements (environ) présents dans ta table ; si c'était arrivé alors que tu avais déjà 235 tuples dans ta table, les opérations auraient été un peu plus complexes...

Ceci dit, il est possible qu'une instruction existe, qui puisse te permettre d'ordonner à l'auto-valeur de repartir directement de 39 ; mais pour ma part, je ne connais pas cette instruction.

Espérant avoir aidé.

A+



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org

Reply via email to