Aide pour création Bdd client sous Acces

Fermé
batteurkev - 23 avril 2008 à 20:22
phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 - 25 avril 2008 à 23:00
Bonjour,
Je viens ici car apparement l'aide est souvent pertinente au dire.
J'ai actuellement un problème avec le logiciel Access de Microsoft.
Lorsque je veux creer une requête il me signale "Incoherence de type dans une expression".

Alors pour rentrer dans le contexte, je suis en cours de création d'une base de données client pour une entreprise de distribution d'équipement sportif.

Ce que j'aimerais faire est de voir les clients qui achetent dans un rayon particulié du magasin à partir des produits qu'ils ont achetés sachant que chaque produit
est référencé dans le rayon.

Exemple: Rayon qui a pour critère Montagne, j'aimerais voir les clients qui ont acheté des produits de ce rayon

Pour celà j'ai crée 3 tables qui sont les suivantes :

CLIENT
[Clé Primaire] N°client (NuméroAuto) ex : 1
Nom client (Texte) ex : Dubois
Prénom client (Texte) ex : Pierre
Sexe (Texte) ex : H
Adresse client (Texte) ex : 7 rue de l'élysée
Code postal client (Texte) ex : 99000
Ville client (Texte) ex : Ailleurs
Telfixe client (Texte) ex : 03.....
Telport client (Texte) ex : 06..........
Achat produit (Texte) ex : 1,3,4,31,52 (ceux sont les références des produits qu'a acheté le client

faites par liste déroulantes à choix multiples depuis N°produit)

PRODUIT
[Clé primaire] N°produit (Numérique) ex : 31
Description produit (Texte) ex : Nike Air blanche
Prix TTC produit (Monétaire) ex : 110 €

RAYON
[Clé primaire] N°Rayon (Numérique) ex : 1
Secteur rayon (texte) ex : Montagne
Description rayon (texte) ex : Randonnée, Escalade, Alpinisme ....
Produits (texte) ex : 12,34,5,7,2 ... (ceux sont les références produits dans le rayon faites par

liste déroulantes à choix multiples depuis N°produit)


Voici ma relation : http://img378.imageshack.us/img378/8219/relationja8.jpg


Ma requète est http://img386.imageshack.us/img386/9376/requeteme6.jpg

et voilà ce qui m'est présenté http://img386.imageshack.us/img386/9376/requeteme6.jpg

J'espere avoir été assez clair.
J'attend vos réponses avec impatience merci . ^^
Bye
A voir également:

2 réponses

phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 33
23 avril 2008 à 22:30
la relation est fait dans le mauvais sens. CLIENT ne DOIT PAS contenir une réf vers le produit mais PRODUIT doit contenir une vers le client. comme ça chaque achat est lié à un client. puis PRODUIT contient aussi une réf vers le rayon. Donc

CREATE TABLE PRODUIT
[Clé primaire] N°produit (Numérique) ex : 31
ClientID (Numérique),
RayonID (Numérique),
Description produit (Texte) ex : Nike Air blanche

Mettre le prix dans PRODUIT est dangereux ! Souvent on veut un rapport p.ex. à la fin de l'année. Si ton prix à changé dans l'année le chiffre d'affaire ne sera pas correcte. Mieux vaut une table avec les prix avec deux date qui indique leur validité

CREATE TABLE ProductPrice
[Clé primaire] ID (Numérique),
ProductID (Numérique),
Price (Numérique),
ValidFrom DateTime,
ValidTo DateTime
0
d'accord mais est-il possible de mettre plusieurs client dans la même ligne "ClientID" de produit ? (ex ClientID: 1;2;3;87;45)
Je sais qu'il y a se systeme de liste déroulante avec choix multiples, puis je l'utiliser pour celà ?
0
batteurkev > batteurkev
24 avril 2008 à 12:27
Enfaite je veux savoir si il est possible de mettre plusieurs nombre dans le ClientID de la table produit, puisque nous savons qu'il n'y a pas un client par produit mais plusieurs. si oui, doit je separer les nombres par ";" ?
0
phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 33 > batteurkev
25 avril 2008 à 23:00
d'ailleurs : bien sur que c'est possible. mais va un peut voir sur www.TheDailyWTF.com . Il existe aussi en francais maintenant.

bref : mauvais design
0
phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 33
25 avril 2008 à 22:56
aaaah, en fait j'aurai du y penser. D'abord, non! Ton approche est beaucuop trop lourd pour etre utilisable. Ce qu'on fait c'est un si-dite many-to many. Tu auras trois tables : une pour les clients, une pour les produits, une qui met en relation client et produit. Donc pour CLIENT rien ne change, dans PRODUIT on en ne met PAS la réf vers le client. La 3ième est bêtement

CRATE TABLE ProductsClient
ClientID numérique
ProductID numérique

clé primaire composée de ClientID, ProductID

----------- ------------------- -------------
-Clients- ProductClient Products -
---------- ------------------- -------------
ClientID--ClientID
^^^^^^ProductID -- ProductID

(je voulais faire un ASCII art mais ca marche pas trop bien ici)

en langage humain :
un client peut avoir (acheter) plusieurs produits, et un produit peut etre acheter par plusieurs client, d'où la table qui fait le lein entre les deux

ceci s'appelle Normalisation.
0