Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/07/2011, 05h25   #1
Candidat au titre de Membre du Club
 
Homme Julien
Ingénieur qualité méthodes
Inscription : juillet 2009
Messages : 53
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : Chine

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Distribution

Informations forums :
Inscription : juillet 2009
Messages : 53
Points : 14
Points : 14
Par défaut Modification de données

Bonjour,

Je viens de recréer entièrement ma base de données à partir de l'ancienne (importation des tables + modification/ajout de quelques champs).

Pour simplifier j'ai une table "Commandes" et une table "Envois".
1 commande peut contenir plusieurs envois.

Sur mon ancienne base je pouvais modifier n'importe quelle info sans problème : comme un numéro de commande (changement de convention), les envois restaient associés au nouveau numéro de commande.
Par exemple précédemment mon numéro de commande était 100 et avait 4 envois associés. Nous avons décidé de changer la convention et de mettre les initiales du client avant le numéro, le nom de la commande devenait donc "B100". En faisant cette modification mes 5 envois associés à la commande "100" l'étaient toujours avec la commande "B100".

Maintenant avec ma nouvelle base, je ne peux plus faire de modification, dès que je modifie un numéro de commande par exemple, je perds tous les envois associés. En renommant la commande comme au départ, je retrouve mes envois correspondant par contre.

J'ai ce problème avec beaucoup d'autres tables : les produits et les familles de produit. Nous associons chaque produit à une famille particulière (liste de choix). Lorsque je décide de renommer une famille, tous les produits associés auparavant, ne le sont plus.

Merci pour votre aide.
btks59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 05h48   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 619
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 619
Points : 30 959
Points : 30 959
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Des informations complémentaires aideraient à mieux comprendre (tel qu'une copie d'écran du schéma relationnel), et ce que tu as modifié (je pense notamment aux clés primaires et liaisons).

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 07h58   #3
Candidat au titre de Membre du Club
 
Homme Julien
Ingénieur qualité méthodes
Inscription : juillet 2009
Messages : 53
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : Chine

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Distribution

Informations forums :
Inscription : juillet 2009
Messages : 53
Points : 14
Points : 14
Bonjour,

Voici un aperçu des relations de ma base.
PO_Ship.JPG

J'ai en effet fait quelques modifications importantes.
Au départ dans ma table "T_PO" (Commandes), "PO_Number" était la clé primaire. Nous avons ensuite décidé de créer une numérotation automatique (PO_ID) pour être capable de créer des commandes avec le meme numéro de commande mais pour des clients différents. Cette solution s'est finalement avérée très contraignante, les utilisateurs faisaient beaucoup trop d'erreur.

J'ai donc décidé de mettre un peu d'ordre dans cette base et de la refaire en important les tables mais surtout en les modifiant légèrement.
Pour la table PO, j'ai supprimé la numérotation automatique et remis le numéro de PO en clé primaire.
La table "Shipment" (envoi) était trop longue, j'ai décidé de la spliter en deux.
...

Je ne sais pas si ces détails suffisent.


EDIT : je vais surtout détailler les 2 points que je souhaite modifier :

PO_Ship2.JPG

1. Les tables T_PO et T_Shipments
Comment dit précédemment, j'ai modifié la clé primaire de T_PO (avant c'était un champ automatique, je l'ai supprimé pour le remettre sur PO_Number) : le champ PO_Number a toujours été associé à la table T_Shipments.

2. Les tables T_ProductFamilies et T_Products
La configuration de ces 2 tables n'a pas changé.
Sauf qu'avant le champ "produit" (Products_PartNumber) était lié à la table T_Shipments. J'ai décidé de spliter la table T_Shipments en deux par soucis de clarté et de simplicité : j'ai exporté une partie des champs de la table T_Shipments dans une nouvelle table T_Items.
Le champ Products_PartNumber est donc maintenant lié à la nouvelle table "T_Items".


J'ai remarqué aussi une différence dans les relations.
Sur mon ancienne table la relation entre T_Shipments et T_PO est : indeterminate (external) : je ne peux ni modifier le type de liaison ni "enforce referential integrity".
Entre T_ProductFamilies et T_Product, même chose : one to many (external), et encore une fois je ne peux ni modifier le type de liaison etc ...

Pour être honnête je ne sais même pas comment j'avais créer ce type de relation ...

Je pense qu'avec ces éléments il est plus facile de se faire une idée exacte du problème.
btks59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 17h26   #4
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 446
Points : 4 446
bonjour,

Citation:
Envoyé par btks59 Voir le message
...J'ai ce problème avec beaucoup d'autres tables : les produits et les familles de produit. Nous associons chaque produit à une famille particulière (liste de choix). Lorsque je décide de renommer une famille, tous les produits associés auparavant, ne le sont plus.
Je devine des tables du genre:
Categorie(CodeCategorie, NomCategorie)
Produit(CodeProduit, NomProduit, #CodeCategorie)

Seulement dans ta fenêtre des relations, tu n’as que le schéma :
Code :
Categorie--------Produit
Au lieu de :
Code :
Categorie-1-------∞-Produit
car il manque la mise en œuvre de l’intégrité référentielle et surtout la contrainte "mettre à jour en cascade les champs correspondants" qui permet justement de propager toute modification de CodeCategorie du côté 1 vers CodeCategorie du côté .

Il faut donc remettre en place l’intégrité référentielle et cocher cette option. Si tu n’y arrive pas, c’est probablement parce qu’un produit référence une catégorie qui n’existe pas et il faut trouver où (requête de non-correspondance).

Note que si tu avais choisi une clé primaire de type NumeroAuto dans ta table Categorie en prenant soin d’indexer le champ CodeCategorie "sans doublon" :
Categorie(idCategorie (NumeroAuto), CodeCategorie, NomCategorie)
Produit(idProduit(NumeroAuto), NomProduit, #idCategorie),

toute modification du CodeCategorie se ferait sans impacter la table des produits puisque la jointure est réalisée sur le NumeroAuto qui lui reste invariant.

Moralité : parmi les candidats à devenir "clé primaire", retenir celui qui a l’avantage d’être stable.
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 10h47   #5
Candidat au titre de Membre du Club
 
Homme Julien
Ingénieur qualité méthodes
Inscription : juillet 2009
Messages : 53
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : Chine

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Distribution

Informations forums :
Inscription : juillet 2009
Messages : 53
Points : 14
Points : 14
Bonjour,

Merci pour les conseils, j'avais déjà remarqué ce problème de relation.
J'ai donc créer de requêtes de non correspondance et ai supprimé tout ce qui n'allait pas.

Maintenant tout semble fonctionner normalement, en espérant que ça dure

Merci encore pour votre aide.
btks59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h54.


 
 
 
 
Partenaires

Hébergement Web