Microsoft ne peut pas ajouter tous les enregistrment de la requête ajout-violati

Résolu
remi31150
Messages postés
2
Date d'inscription
mercredi 3 juin 2009
Statut
Membre
Dernière intervention
9 juin 2009
- 9 juin 2009 à 14:27
remi31150
Messages postés
2
Date d'inscription
mercredi 3 juin 2009
Statut
Membre
Dernière intervention
9 juin 2009
- 9 juin 2009 à 23:09
Voila bonjour, je me présente je suis étudiant en BTS informatique de gestion et dans le cadre d'une AP, je réalise une petite base de données sous Access pouvant gérer l'ensemble du matériel informatique d'une entreprise.

Je vous explique mon problème
Voila, j'ai réalisé un formulaire qui permet de consulter les logiciels (table logiciel avec clé primaire le nom du logiciel) installé sur un ordinateur( table ordinateur avec clé primaire le numéro de série). Donc une table installer (la clé primaire étant le nom du logiciel et le numéro de série) fait sont apparition, ainsi un ordinateur peut contenir 1 à plusieurs logiciel et un logiciel peut être installer sur 1 ou plusieurs ordinateur.

La consultation au niveau du formulaire marche, l'ajout d'un enregistrement dans la table installer en mode SQL (insert into installer values(...); marche aussi, mais au niveau du formulaire quand j'exécute cette requête SQL, Access m'affiche ce message "Microsoft Ofice Access ne peut pas ajouter tous les enregistrements de la requête Ajout"
puis "1enregistrement(s) n'ont pas été ajoutés à la table à la suite d'une violation de clé".

Voila cela fait 3 jours que j'essaye de régler cette erreur mais en vain.
Si quelqu'un pourrait m'apporter de l'aide s'il vous plait car j'en ai vraiment besoin ...
je vous donne mon code :

Dim No As String
Dim Lo As String
Dim INSERTSql As String
No = lst_NoSerieAjout.Value
Lo = lst_SelectionLogiciel.Value
INSERTSql = "insert into installer(NomLogiciel,No_SerieMAT_UC) values('&Lo&','&No&')"
DoCmd.RunSQL INSERTSql

Voila j'ai tester dans mon code en remplaceant les variables dans la requête par ces données présent dans les table logiciel et ordinateur ('Microsoft Word','DEDDD') et bizarrement pas de message d'erreur donc je pense que le problèmeb vient des variables mais je n'arrive pas a trouver l'erreur.

A l'aideeeeeeeee !!! et merci d'avance

2 réponses

remi31150
Messages postés
2
Date d'inscription
mercredi 3 juin 2009
Statut
Membre
Dernière intervention
9 juin 2009

9 juin 2009 à 23:09
Merci Mayzz d'apporter ton aide a mon problème que j'ai résolu
Le problème ne vener pas de la clé primaire qui est la concaténation de deux clé primaire venant chacun d'une table mais bien du code
Voila ce que j'avais écris:

INSERTSql = "insert into installer(NomLogiciel,No_SerieMAT_UC) values('&Lo&','&No&')"

...et oui il y a une erreur au niveau des variables et plus précisement il manque les double côtes, c'est ce que j'avais prédi
le bon code est donc :

INSERTSql = "insert into installer(NomLogiciel,No_SerieMAT_UC) values('" & Lo & "','" & No & "')"

Voila tous^^
3
Mayzz
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
34
9 juin 2009 à 22:28
Bonjour,

Une clé primaire doit être unique, elle est généralement utilisé pour identifier une ligne (on se sert souvant de valeur décimales ou de GUID). Ton problème vient simplement du fait que tu ajoute plusieurs lignes à ta tables comportant des clé primaires identiques.

@+ Mayzz.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
0