ACCESS - Ajout enregistrement dans un sous-formulaire

ACCESS - Ajout enregistrement dans un sous-formulaire - SQL/NoSQL - Programmation

Marsh Posté le 02-04-2009 à 23:05:56    

J'ai cherché longtemps sans rien trouver. J'ai besoin de l'aide de qq1.
 
Dans mon entreprise de production, on a créé une base de données avec la description d'un contrat.
 
nous avons une table TASKS dans laquelle il y a la majorité des informations. Elle est liée aux autres tables via ID.
 
Nous avons un formulaire dans lequel on a une ComboBox pour faire une recherche du no de contrat (lié à l'ID).
 
Un sous-formulaire affiche l'info qui correspond. Le comboBox et le sous-formulaire affiche les données de TASKS, mais passe par un query distinct.
 
Le problème est lorsque l'on met un bouton Add New Record. Lorsqu'on l'utilise, il marque "You tried to assigne the null value to a variable that is not a variant data type". En cherchant sur les forums, j'ai compris que c'est car il me copie pas l'ID avant d'entrée la première info et c'est pour ça que ma ligne est null. Par contre, ça "contamine" ma table. Au lieu de poursuivre à la suite de l'ID, il décide de repartir à un no inférieure et ensuite il me dit "The changes you request to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries ant try again."
 
De plus, si ça marche, le nouveau contrat apparaît dans le menu déroulant du formulaire, mais n'apparaît pas dans le sous-formulaire. Si tu le sélectionnes, c'est une erreur.
 
Autre problème avec la fonction duplicate... Il copie aussi le ID, ce qui fait que ça ne fonctionne pas.
 
Merci si qq1 peut m'aider.
 

Reply

Marsh Posté le 02-04-2009 à 23:05:56   

Reply

Marsh Posté le 03-04-2009 à 09:14:47    

Au moment de filtrer les enregistrements de TASKS après avoir sélectionné un contrat dans ta combobox (si j'ai bien tout suivi), il faut assigner, en valeur par défaut, l'id du contrat sélectionné pour le champs id_contrat de tes TASKS.
 
Par exemple, avec les tables :
contrat (id_contrat, ...)
tasks (id_tasks, id_contrat, ...)
 
Lorsque l'on sélectionne un contrat, on filtre tasks sur id_contrat. Alors lorsque l'on ajoute une task pour un contrat donné, il faut ajouté l'id contrat au champs tasks.id_contrat, soit juste avant l'ajout effectif, soit en définissant une valeur par défaut à tasks.id_contrat.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 03-04-2009 à 19:13:47    

Merci pour la réponse.. En fait...
 
La table TASKS est la description du contrat : ID, No de contrat, date expédition,...
Et chacune des tables qui découlent de TASKS a aussi l'ID. Ex: Table_ID, ID,autre
 
En fait, le problème vient lors de l'ajout d'un nouvelle enregistrement. Avec le bouton automatique Ajout d'un Enregistrement, les ID ne se suivent pas nécessairement. Qq fois c'est OK, mais un moment donné, sans explication, il recommence à la suite d'un numéro déjà utilisé. ex:ajout : ID 4103, ID 4104, ID 4105, et tout à coup, ID 3851, ID 3852.. Mais puisque c'est no on déjà été utilisé, il ne veut pas créer la ligne. On ne sait pas ce qui déclenche ce changement dans la suite des ID, qui est un autonumber.
 
De plus, le bouton duplicate, Copie aussi le ID, ce qui ne fonctionne pas non plus.
 
Merci bien pour l'aide

Reply

Marsh Posté le 06-04-2009 à 14:24:10    

Je crois que le problème part du fait que mes tables sont linked, car ma base de données est séparé en data et Application et on fonctionne avec un RunTime. J'ai trouvé cette référence.
 
http://allenbrowne.com/ser-40.html
 
Mais ça ne règle pas le problème de duplicate et add new.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed