[ACCESS]-Problème INSERT
Résolu/Fermé
microsoluces
Messages postés
35
Date d'inscription
samedi 23 septembre 2006
Statut
Membre
Dernière intervention
7 juillet 2014
-
17 oct. 2006 à 11:40
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 3 avril 2008 à 17:30
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 3 avril 2008 à 17:30
A voir également:
- [ACCESS]-Problème INSERT
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Accéder à la fonction secondaire "insert" de ma touche "Delete" - Forum PC portable
- Access appdata - Guide
- Insert boot media in selected boot device and press a key ✓ - Forum Windows 10
18 réponses
blux
Messages postés
26754
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
17 oct. 2006 à 16:12
17 oct. 2006 à 16:12
On peut essayer un truc bourrin, les requêtes imbriquées :
INSERT INTO EBP ( CODE, LIBELLE, HT ) SELECT CODE, LIBELLE, HT FROM BRS WHERE BRS.HT>0 AND BRS.CODE NOT IN (SELECT CODE FROM EBP);
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
3 avril 2008 à 17:30
3 avril 2008 à 17:30
bonjour,
ouvres un nouveau sujet, celui-ci est résolu ...
;o)
polux
ouvres un nouveau sujet, celui-ci est résolu ...
;o)
polux
blux
Messages postés
26754
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
17 oct. 2006 à 15:24
17 oct. 2006 à 15:24
Microsoft Access a attribué la valeur Null à 0 champ(s) à la suite d'une erreur de conversion de type, 1996 enregistrement(s) n'ont pas été ajoutés à la table à la suite de violations de clé, 0 enregistrement(s) à la suite de violation de verrou et 0 enregistrement(s) à la suite de violations des règles de validation..... RIEN QUE CA ! !
Normal, tu essayes d'ajouter 1996 enregistrements qui existent déjà dans la table EBP (clé primaire déjà connue)...
Mais une Box s ouvre pour que je puisse entrer une valeur à EBP.CODE ?????
Normal aussi, EBP.CODE n'existe pas dans la table BRS...
Essaye voir comme ça (sans garantie !) :
Normal, tu essayes d'ajouter 1996 enregistrements qui existent déjà dans la table EBP (clé primaire déjà connue)...
Mais une Box s ouvre pour que je puisse entrer une valeur à EBP.CODE ?????
Normal aussi, EBP.CODE n'existe pas dans la table BRS...
Essaye voir comme ça (sans garantie !) :
INSERT INTO EBP ( CODE, LIBELLE, HT ) SELECT CODE, LIBELLE, HT FROM BRS, EBP WHERE BRS.HT>0 AND BRS.CODE<>EBP.CODE;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
microsoluces
Messages postés
35
Date d'inscription
samedi 23 septembre 2006
Statut
Membre
Dernière intervention
7 juillet 2014
4
17 oct. 2006 à 15:37
17 oct. 2006 à 15:37
Un message d'alerte s'affiche :
Le champ spécifié 'CODE' peut designer plusieurs tables listées dans la clause FROM de votre instruction SQL.
Access ne semble pas tenir compte du nom de table dans "BRS.CODE<>EBP.CODE"
Le champ spécifié 'CODE' peut designer plusieurs tables listées dans la clause FROM de votre instruction SQL.
Access ne semble pas tenir compte du nom de table dans "BRS.CODE<>EBP.CODE"
blux
Messages postés
26754
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
17 oct. 2006 à 15:49
17 oct. 2006 à 15:49
Si, mais c'est dans la clause SELECT qu'il ne le voit pas : mets BRS.CODE, BRS.LIBELLE, BRS.HT...
microsoluces
Messages postés
35
Date d'inscription
samedi 23 septembre 2006
Statut
Membre
Dernière intervention
7 juillet 2014
4
17 oct. 2006 à 16:03
17 oct. 2006 à 16:03
La requete s'execute et il ne rajoute aucun produit dans ma table fournisseur : pourtant je venais juste de vider EBP : elle aurait du se remplir de la totalité des enregistrements de BRS, mais rien !
Voila la requete complete :
INSERT INTO EBP ( CODE, LIBELLE, HT )
SELECT BRS.CODE, BRS.LIBELLE, BRS.HT
FROM BRS, EBP
WHERE BRS.HT>0 AND BRS.CODE<>EBP.CODE;
Mais bon, j ai plus de message de d'erreur de conversion ni de violation !
hihihi
PS : J ai essayé ça, mais ca marche encore moins :
INSERT INTO EBP ( BRS.CODE, BRS.LIBELLE, BRS.HT )
SELECT BRS.CODE, BRS.LIBELLE, BRS.HT
FROM BRS, EBP
WHERE BRS.HT>0 AND BRS.CODE<>EBP.CODE;
Voila la requete complete :
INSERT INTO EBP ( CODE, LIBELLE, HT )
SELECT BRS.CODE, BRS.LIBELLE, BRS.HT
FROM BRS, EBP
WHERE BRS.HT>0 AND BRS.CODE<>EBP.CODE;
Mais bon, j ai plus de message de d'erreur de conversion ni de violation !
hihihi
PS : J ai essayé ça, mais ca marche encore moins :
INSERT INTO EBP ( BRS.CODE, BRS.LIBELLE, BRS.HT )
SELECT BRS.CODE, BRS.LIBELLE, BRS.HT
FROM BRS, EBP
WHERE BRS.HT>0 AND BRS.CODE<>EBP.CODE;
microsoluces
Messages postés
35
Date d'inscription
samedi 23 septembre 2006
Statut
Membre
Dernière intervention
7 juillet 2014
4
17 oct. 2006 à 17:22
17 oct. 2006 à 17:22
Ba écoutes, là chapeau bas... Impec, ca marche !
Merci.
Etienne
Merci.
Etienne
salut j'ai un soucis avec une de mes requête d'insertion
DoCmd.RunSQL ("insert into devis (CodeDevis,nbVeh,nbjour,datepropose,com_devis,CodeTypeVeh,CodeActivite,CodeOrigine,IdEtat) values (" & codeD & "," & nbVeh.Value & "," & txtnbjour.Value & "," & datepropose.Value & "," & comD & "," & codeT & "," & codeA & "," & corg & "," & idi & ")")
En fait il me lance un message d'erreur du genre "Microsoft Access a attribué la valeur Null à 0 champ(s) à la suite d'une erreur de conversion de type, 1 enregistrement(s) n'ont pas été ajoutés à la table à la suite de violations de clé, 0 enregistrement(s) à la suite de violation de verrou et 0 enregistrement(s) à la suite de violations des règles de validation"
je ne comprend pas pourquoi il affiche ce message surtout qu'il ne le met pas tout le temps
En faite dans le cas présent ma table devis est vide, elle hérite d'une autre table prestation, avec sous access la même clé primaire
donc dans mon code vba je fait d'abord l'ajout dans la table devis puis dans la table prestation, et même en inversant l'ordre des insert le message aparait quand meme
Autre chose, aussi ma table devis comporte d'autre champs que je n'ajoute pas dans ma requête insert, est ce que cela est génant? car j'ai mis le nom des colonnes que je veut ajouter donc normalement ça devrait pas être génant pour l'execution de la requete?
Merci de voter aide
PS: j'sai pas si mon problème correspond a 100% au sujet de ce forum mais il s'en rapproche pas mal lol
DoCmd.RunSQL ("insert into devis (CodeDevis,nbVeh,nbjour,datepropose,com_devis,CodeTypeVeh,CodeActivite,CodeOrigine,IdEtat) values (" & codeD & "," & nbVeh.Value & "," & txtnbjour.Value & "," & datepropose.Value & "," & comD & "," & codeT & "," & codeA & "," & corg & "," & idi & ")")
En fait il me lance un message d'erreur du genre "Microsoft Access a attribué la valeur Null à 0 champ(s) à la suite d'une erreur de conversion de type, 1 enregistrement(s) n'ont pas été ajoutés à la table à la suite de violations de clé, 0 enregistrement(s) à la suite de violation de verrou et 0 enregistrement(s) à la suite de violations des règles de validation"
je ne comprend pas pourquoi il affiche ce message surtout qu'il ne le met pas tout le temps
En faite dans le cas présent ma table devis est vide, elle hérite d'une autre table prestation, avec sous access la même clé primaire
donc dans mon code vba je fait d'abord l'ajout dans la table devis puis dans la table prestation, et même en inversant l'ordre des insert le message aparait quand meme
Autre chose, aussi ma table devis comporte d'autre champs que je n'ajoute pas dans ma requête insert, est ce que cela est génant? car j'ai mis le nom des colonnes que je veut ajouter donc normalement ça devrait pas être génant pour l'execution de la requete?
Merci de voter aide
PS: j'sai pas si mon problème correspond a 100% au sujet de ce forum mais il s'en rapproche pas mal lol
blux
Messages postés
26754
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
20 juin 2007 à 13:02
20 juin 2007 à 13:02
Si ta clé primaire n'existe pas dans la table devis, ACCESS doit rajouter la ligne...
Sinon, c'est que ta table n'est pas vide ou peut-être que la clé primaire de la ligne que tu souhaites rajouter n'est pas dans le bon format (date, chaine, nombre...) ?
Sinon, c'est que ta table n'est pas vide ou peut-être que la clé primaire de la ligne que tu souhaites rajouter n'est pas dans le bon format (date, chaine, nombre...) ?
j'ai bien vérifier et ma table est bien vide donc il ni a pas de risque de doublon
ma clé primaire est de type NuméroAuto
Mais est-ce que c'est génant la partie héritage, vu que les deux tables prestation et devis ont le même nom de clé primaire avec une relation 1 a1, j'ai remarqué que dans les propriété de la relation je ne peut pas mettre a jour en cascade les champs correspondant dans l'integrité référentielle
ma clé primaire est de type NuméroAuto
Mais est-ce que c'est génant la partie héritage, vu que les deux tables prestation et devis ont le même nom de clé primaire avec une relation 1 a1, j'ai remarqué que dans les propriété de la relation je ne peut pas mettre a jour en cascade les champs correspondant dans l'integrité référentielle
blux
Messages postés
26754
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
20 juin 2007 à 14:14
20 juin 2007 à 14:14
Quel est le nom de la colonne en clé primaire ?
blux
Messages postés
26754
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
20 juin 2007 à 14:53
20 juin 2007 à 14:53
Si tu as une relation 1-1 entre les deux tables et que les clés sont toutes deux des numéroauto, ça ne pourra jamais marcher, puisqu'ACCESS gère la numérotation automatique...
Une de tes deux clés doit être en entier long...
Une de tes deux clés doit être en entier long...
ok donc en faite il faut que le numéro automatique de ma table fille soit un entier long
ce qui veut dire que je doit d'abord faire l'ajout dans ma table mère prestation puis dans ma table fille devis?
et pour le lien dans les relations est ce que ça a de l'importance?j'ai une flèche qui va de prestation a devis
ce qui veut dire que je doit d'abord faire l'ajout dans ma table mère prestation puis dans ma table fille devis?
et pour le lien dans les relations est ce que ça a de l'importance?j'ai une flèche qui va de prestation a devis
blux
Messages postés
26754
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
20 juin 2007 à 15:32
20 juin 2007 à 15:32
je doit d'abord faire l'ajout dans ma table mère prestation puis dans ma table fille devis?
Oui, c'est ce qu'on appelle des contraintes d'intégrité référentielles...
j'ai une flèche qui va de prestation a devis
C'est toi qui a fait le modèle de données, donc tu es qualifié pour dire si c'est bien le bon sens :-)
Oui, c'est ce qu'on appelle des contraintes d'intégrité référentielles...
j'ai une flèche qui va de prestation a devis
C'est toi qui a fait le modèle de données, donc tu es qualifié pour dire si c'est bien le bon sens :-)
ouai c'est bon ça marche nikel merci de ton aide
pour le sens c'est bon aussi c'était une confirmation pour moi même en faite :-)
par contre j'sai jamais pour l'intégrité réferentielle au niveau du type de jointure
si c'est inclure tt les enregistrements de la table A et seulement ceux de la table B pour lesquels les champs sont égaux
ou l'inverse sachant que dans mon MCD la table A est la table mère et la table B est l'une des tables hérité
Merci encore pour aide c'était bien un problème du numéroAuto
pour le sens c'est bon aussi c'était une confirmation pour moi même en faite :-)
par contre j'sai jamais pour l'intégrité réferentielle au niveau du type de jointure
si c'est inclure tt les enregistrements de la table A et seulement ceux de la table B pour lesquels les champs sont égaux
ou l'inverse sachant que dans mon MCD la table A est la table mère et la table B est l'une des tables hérité
Merci encore pour aide c'était bien un problème du numéroAuto
blux
Messages postés
26754
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
20 juin 2007 à 22:14
20 juin 2007 à 22:14
La jointure ne s'applique qu'aux requêtes (LEFT, RIGHT, INNER), pas à la définition des tables, on parle alors de CONSTRAINT...
Bonjour,
J'essaie actuellement sous Access d'insérer plusieurs enregistrements dans ma base de données avec la requête suivante :
insert into Fournisseur (Ref_Fournisseur,Nom_Fournisseur,Adresse1,CodePostal,Ville,Pays,Telephone) values (1,'DENIS', 'Rue Nationale',37000,'TOURS','FRANCE','02-47-50-50-50'), (6,'TATA', 'Rue Machin',37200,'TOURS','FRANCE','02-47-40-60-30');
En exécutant cette requête sous Access, il me met comme erreur : "Point-virgule absent à la fin de l'instruction SQL".
J'aimerais donc si possible savoir comment faire pour insérer plusieurs enregistrements sous Access.
Merci d'avance
J'essaie actuellement sous Access d'insérer plusieurs enregistrements dans ma base de données avec la requête suivante :
insert into Fournisseur (Ref_Fournisseur,Nom_Fournisseur,Adresse1,CodePostal,Ville,Pays,Telephone) values (1,'DENIS', 'Rue Nationale',37000,'TOURS','FRANCE','02-47-50-50-50'), (6,'TATA', 'Rue Machin',37200,'TOURS','FRANCE','02-47-40-60-30');
En exécutant cette requête sous Access, il me met comme erreur : "Point-virgule absent à la fin de l'instruction SQL".
J'aimerais donc si possible savoir comment faire pour insérer plusieurs enregistrements sous Access.
Merci d'avance