|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Florent MilletÉtudiant Inscription : juin 2011 Messages : 6 ![]() |
Bonjour,
je vous expose mon problème, pour simplifié j'ai dans ma base de donnée 3 tables : - table 'application' : id_app (primary-key, type : numauto), et les autres champs qui n'ont pas d'importance pour la problématique. -table 'departements' : id_dept (primary-key, type :texte), avec un champs nom_dept sans importance ici encore. - table 'affect_app_dept' : id_app (primary-key,type : numérique), id_dept (primary-key, type : texte). La table 'application' est reliée à la table 'affect_app_dept' qui est elle même reliée à la table 'departement', une simple relation n:m quoi. J'ai créée un formulaire pour remplir ces tables, une fois que l'application est renseignée dans la table 'application', je récupère sont id_app (à l'aide d'un module permettant de trouver le dernier numéroauto inséré dans la base de donnée) que j'insert dans une zone de texte (nom : 'id_app'). Je sélectionne ensuite les départements contenus dans la table 'departement' à l'aide d'une zone de liste à choix multiple (nom : 'liste_dept_selectionne'). Jusque là tous se passe bien Ensuite je lance une boucle vba permettant de lire l'ensemble des départements sélectionnés dans la zone de liste et lors de chaque chaque itération de la boucle j'effectue une requête SQL de type INSERT INTO dans la table affect_app_dept, dont voici le code : Code :
En effet j’obtiens un message d'erreur du type "Microsoft Access ne peut pas ajouter tout les enregistrement à la requête Ajout, 1 enregistrement(s) n'ont pas été ajoutés à la table à la suite de la violation de clé.". Alors mes hypothèses sont que : - Il y a un problème dans le format du caractère retourné par la zone de texte 'id_app', je m'explique : dans ma zone de texte j'ai bien un chiffre (ex :"6") mais il est alors sous forme de texte, et le champ 'id_app' de la table étant définit en numérique, sa bloque lors de l'insertion. Dans ce cas comment connaitre le format du/des caractères contenus dans la zone de texte, et le cas échéant passer d'un type texte => type numérique ? - Il y a un problème dans mon code, mais j'ai quand même vérifié que la boucle me retournait bien des valeurs grâce à un debug.print et c'est le cas, j’obtiens bien l'id_app contenu dans la zone texte et le premier département sélectionné dans la zone de liste (id_app = "6" et id_dept = "16" par exemple). - Un autre problème dont je n'aurait pas pensé ? (très possible ça ^^). Auriez vous une/des idées ? Merci d'avance. Florent. |
||
|
|
00
|
|
|
#2 | |
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonjour,
La seule erreur de syntaxe que je vois est ici : Code :
SQL = "INSERT INTO affect_app_dept(id_app, no_dept) VALUES ('" & Me!id_app.Value & " ', ' " & Me!liste_dept_selectionne.ItemData(varI) & " ');" Il y a aussi un espace en trop à gauche et à droite de Me!liste_dept_selectionne.ItemData(varI). Code :
SQL = "INSERT INTO affect_app_dept(id_app, no_dept) VALUES (" & Me!id_app.Value & ", '" & Me!liste_dept_selectionne.ItemData(varI) & "');" Citation:
A+ |
|
|
|
10
|
|
|
#3 |
|
Invité de passage
![]() Florent MilletÉtudiant Inscription : juin 2011 Messages : 6 ![]() |
C'est bon sa marche
![]() Merci beaucoup LedZeppII, en fait c'était juste un problème de syntaxe, dès fois il vaut mieux chercher le plus simple plutôt que d'essayer de trouver la petite bête ^^. Bonne journée, @+. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com