Bonjour à tous,
Avant de commencer, je me présente rapidement puisque c'est mon premier message sur ce forum (mais pas ma première visite !) :
Je m'appelle Cédric, et travaille en tant que prestataire dans une entreprise pharmaceutique. Ma mission actuelle consiste à simplifier le fonctionnement du service dans lequel je suis affecté. Et une des phases de cette mission est la transformation d'un système "tentaculaire" actuellement géré via Excel en un système se basant sur un vrai modèle relationnel.
Et me voici donc sur votre forum, puisque, d'un niveau ~débutant sur Access, je bute depuis plusieurs jours déjà sur un étrange problème.
Je ne peux hélas pas mettre à disposition la base de données que je suis en train de construire, mais je vais essayer de vous détailler le plus clairement possible sa structure et mon problème :
Concernant la structure de la BdD : Des "Produits" sont identifiables par plusieurs items (nom, référence...), liés à des "Ateliers" (zones de fabrication) via une relation n-n. Ces "Produits" peuvent être rassemblés en "Spécialités" en fonction de leurs caractéristiques. Relation n-n entre "Produits" et "Spécialités". A leur tour, les "Spécialités" sont regroupés en "Noms Génériques" via une relation 1-n.
Pour chaque relation n-n j'ai crée une table de jointure.
J'ai crée un formulaire qui ressemble à ceci (certaines informations ont été masquées) :
[1],[2] et [3] : 'Module' de recherche des produits, en fonction du nom ou de la référence (Code SAP). [1] et [2] sont des zones de texte indépendantes. [3] est une zone de liste indépendante, issue d'une requête qui elle dépend des valeurs de [1] et [2]. [3] permet à l'utilisateur d'avoir une vue plus globale des produits similaires (ou du moins dont le nom est proche). [3] porte le nom "IdProduit", qui est le nom de la clef primaire dans la table "Produits"
[4] est un sous-formulaire tout simple issu de la table "Produits". Il est lié (Champs Père - Champs Fils) à [3] via "IdProduit". Ainsi, quand l'utilisateur clique sur une ligne dans [3], [4] se met à jour et affiche l'enregistrement lié. (Les boutons de navigation sont donc inutiles dans ce contexte puisque le sous-formulaire [4] n'affiche qu'un seul enregistrement). [4] est en lecture/écriture
[5], [6] et [7] sont des sous-formulaires issus des tables décrites précédemment. [5] et [6] sont en lecture/écriture, [7] est en lecture seule.
[8] est un bouton qui doit afficher dans [4] un nouvel enregistrement. J'ai utilisé deux méthodes différentes pour ce bouton, qui aboutissent au même problème :
1/ Sélection de [4] - Sélection d'un nouvel enregistrement. La clef primaire de "Produit" [3] affiche bien (Nouv.)
2/ Valeur de ([3]) "IdProduit" = "" (Chaîne vide). La clef primaire de "Produit" [3] affiche bien (Nouv.)
Dans la méthode 1/, un premier problème se présente : les sous-formulaires [5], [6] et [7] conservent la liaison à l'ancien "IdProduit", et cela m'embête.
Dans la méthode 2/, un autre problème se présente : pour ajouter des informations dans les formulaires [5] et [6], je suis obligé d'afficher un autre produit (via [3]) et revenir sur l'enregistrement.
Mais dans tous les cas, le problème le plus important est ce message qui apparaît quand j'entre une information dans un des champs de [4] :
Il ne me semble pas être dans une des trois conditions décrites par le message :
*J'ai bien vérifié, les modifications sont autorisées dans le formulaire ET le sous-formulaire
*Je suis bien en mode "Formulaire"
*Quel que soit le champs, quelle que soit la valeur entrée ce message apparaît.
D'après mes recherches, ce problème apparaît quand la liaison entre le formulaire et le sous-formulaire n'est pas faite. Hors ce n'est pas le cas ici.
La bizarrerie de ce problème est, qu'après avoir cliqué sur "Ok", je peux rentrer les informations que je veux, et valider l'enregistrement.
J'ai également remarqué ceci :
[4] prêt pour un nouvel enregistrement. "IdProduit" est bien à (Nouv.).
J'entre une valeur quelque part, le message d'erreur apparaît. Je clique sur OK et peux continuer à entrer des informations. "IdProduit" change bien puisque c'est un NuméroAuto (par exemple 464).
Si j'appuie sur "Echap" avant la validation de l'enregistrement, les champs se réinitialisent, "IdProduit" affiche (Nouv.). # Si je rentre tout de suite de nouvelles informations, je n'ai pas le message d'erreur et "IdProduit" s'incrémente de nouveau (465). (Même comportement si j'appuie sur le bouton [8] au symble #)
Par contre, si je sélectionne un produit via [3] et reclique sur [8], le problème réapparaitra.
Voilà, j'espère avoir été le plus clair possible dans l'explication de mon problème.
D'avance merci pour vos pistes !
Cédric
Partager