× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 URGENT Problème relations un à plusieurs
Ajouter un message à la discussion
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]
sosonia32
  Posté le 12/08/2009 @ 16:50 
Aller en bas de la page 
Petite astucienne

Bonjour à tous,

Je suis en train de créer une base de données sous access 2007 mais je rencontre un problème pour insérer une bonne relation entre deux tables.

Je m'explique:

J'ai une table client et une table commande: Je voudrais que un client puisse passer plusieurs commande mais que une commande n'appartient qu'à un client. Je ne sais pas si l'on dit bien comme ca mais mon idée est là.

Le problème est que le type de relation se crée tout seul directement et que je ne peux rien changer. Et là access m'affiche une relation de "un à un".

Quelqu'un peut il m'expliquer comment je peux modifier mon affaire. Je ne peux pas avancer la dessus et c'est urgent.

Merci pour votre aide

Sosonia32

Publicité
rj390111
 Posté le 12/08/2009 à 17:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Dans le menu Outils base de données il y a un bouton Relation qui ouvre une fenêtre ou vous pouvez créer des relations entre table et là à chaque création d'un relation vous pouvez déterminer son type et cocher l'intégrité référencielle.

RJ

sourisdeservice
 Posté le 12/08/2009 à 22:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Bonjour,

Dans ta table commande, le champ client est-il bien numérique entier long ?

sosonia32
 Posté le 13/08/2009 à 10:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Merci rj390111, mais mes relations sont presque terminées, j'avais bien trouvé cela mais c'est la relation entre client et commande qu'il me manque.

Par contre pour ta question sourisdeservices je ne pourrais répondre que demain car je ne suis pas au bon bureau et j'ai access 2003 qui ne veut pas lire ma BDD de access 2007. Je vérifie ca demain du coup.

Merci pour vos réponses.

Sosonia32

rj390111
 Posté le 13/08/2009 à 15:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Pour pouvoir lire la BDD créée avec 2007 dans ACCESS 2003 il faut l'ouvrir dans 2007 puis Cliquez sur le Bouton ACCESS (en haut à gauche) et choisir Enregistrer sous et le format 2002-2003 il sera créé alors un nouveau fichier avec l'extension .mdb lisible par ACCESS 2003 mais parfois sela peut poser quelques problèmes si beaucoup de VBA.

RJ

sosonia32
 Posté le 14/08/2009 à 08:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour,

Mes champs clients sont bien les deux en numériques entier long. Normalement j'ai bien fais attention à faire correspondre tous les types de données des champs entre eux.

Je ne vois pas trop comment faire.

Merci

Soso

sourisdeservice
 Posté le 14/08/2009 à 09:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Bonjour,

Il se pourrait que l'une des tables contiennent des enregistrements vides dans le champ lié !
Tu devrais mettre un exemple en format 2003 sur www.cjoint.com car il est difficile de deviner ce qui peut bloquer.
N'as-tu pas auusi un message d'erreur quelconque qui apparait ?

sosonia32
 Posté le 14/08/2009 à 10:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Non je n'ai aucun message qui apparait, justement.

http://cjoint.com/?iokfSz1sVm voici le lien du fichier joint.

rj390111
 Posté le 14/08/2009 à 11:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Dans la table Commande le champ IdentifiantClient à comme propriété Indexé - Oui sans doublon et c'est la cause de votre problème.

Bon travail

RJ

Publicité
sourisdeservice
 Posté le 14/08/2009 à 11:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Bonjour,

Dans ta table commande, l'identifiant client est mis sans doublon or il faut avec doublon

OUPS.... Bingo on a trouvé à peu près ensemble



Modifié par sourisdeservice le 14/08/2009 11:23
sosonia32
 Posté le 14/08/2009 à 15:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Merci beaucoup à vous,

Alala c'est fou quand meme il me semblait avoir changer ca aussi mais il a fallu qu'il y en ai un qui passe au travers...

J'ai un autre petit souci, cette fois avec les tables fournisseurs et stock: Je voudrais également avoir une relation "un à plusieurs" pour les deux identifiants mais là il se passe qulques choses: non seulement ca me met relation non définie puis quand j'essai de créer pour voir un peu ce que ca donne ca me met le message suivant:

" Index unique introuvable pour le champ référencé d'une table principale".

Là je ne sais pas du tout ce que cela veut dire.

Merci pour le pti compliment rj, j'espere que je vais la réussir car j'en aurais "vraiment beaucoup"besoin.

rj390111
 Posté le 14/08/2009 à 16:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re bonjour,

Pas de relation établie entre les deux tables.!

Si les Identifiant_Fournisseurs des deux tables sont des clés primaires impossible de faire une relation 1 à plusieurs.

Or c'est le cas dans vos tables.

RJ



Modifié par rj390111 le 14/08/2009 16:41
sourisdeservice
 Posté le 14/08/2009 à 16:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Re,

Je me demande s'il faut un champ identifiant fournisseur dans la table Stock puisque celui-ci est défini dans la table produits

rj390111
 Posté le 14/08/2009 à 17:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re,

D'accord avec sourisdeservice.

Mais en tout cas si vous voulez une relation 1 à plusieurs entre stock et produits même problème de clé primaire.

RJ

sosonia32
 Posté le 17/08/2009 à 16:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Désolée pour ma réponse tardive mais je vous écris depuis mon bureau professionnel.

Alors je ne sais pas trop comment établir mes tables. J'ai mis les identifiants en clé primaire pour pouvoir rechercher ensuite dans chaque table par l'identifiant fournisseur.

Sinon comment puis je faire. Ca y est je sais plus ce que je fais...

rj390111
 Posté le 18/08/2009 à 08:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Une relation un à plusieurs ne peut se faire entre les champs clés primaire de deux tables puisque par définition une clé primaire est unique.

Donc quand on veut établir une telle relation cela doit doit ce faire entre une clé primaire côté 1 et une clé étrangère coté plusieurs.

RJ

sourisdeservice
 Posté le 18/08/2009 à 15:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Bonjour,

Je viens de regarder à nouveau tes tables

Supprimer toutes tes relations

Mettre un champ identifiant dans les 3 tables Client, Fournisseur et Produit (ou les corriger) Il faut qu'ils soient en format numérique/entier long et sans doublon

Ensuite dans les autres tables qui doivent être reliées on aura aussi un champ identifiiiant de l'une de ces premières tables et il sera impérativement en Numérique.
Pour les produits, si le champ référence est avec des lettres, il faudra ajouter un champ identifiant_Produit en numérique

TOUT ce qui se trouve dans ces 3 tables, ne doit pas se retrouver dans la table stock ou commande (seuls les champs identifiant des autres tables y seront

Vérifie aussi dans les tables commande et stock que les champs prix soient en numérique et les champs date en format date et non en texte

Essaye ainsi et seulement alors tu recrées tes relations

Je vois aussi que le prix ne doit pas être dans la table stock puisqu'il est déja dans Produits et de même d'autres infos ne doivent pas se trouver dans 2 tables différentes



Modifié par sourisdeservice le 18/08/2009 15:53
Publicité
rj390111
 Posté le 18/08/2009 à 20:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

Petite remarque en guise d'infos. On évite de mettre la même information dans deux tables différentes cela évite les redondances.

Il y une exeption pour le prix d'un produit qui se trouvera dans une table Produit mais aussi dans une table Commande. Pourquoi ?

Les prix des produits varient souvent, dès lors une commande est passée aujourdhui avec le prix du jour. Le lendemain vous envoyer la facture avec ce prix, on ne vous paie pas tout de suite, vous devez envoyer un rappel mais entretemps le prix à changé dans la table des Produits donc si vous basé votre facture sur le prix qui se trouvent dans la table Produits ils seront changé dans la facture ce qui n'est pas acceptable.

Il fau donc lors de la commande copier le prix du jour dans cette table pour qu'il conserve sa valeurs au fil du temps.

RJ

sosonia32
 Posté le 19/08/2009 à 09:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Merci à vous deux,

j'essai de regarder ca aujourd'hui je devrais avoir un peu de temps et je vous dis ce qu'il en est.

sosonia32
 Posté le 19/08/2009 à 10:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Qu'entends tu exactement par

"Ensuite dans les autres tables qui doivent être reliées on aura aussi un champ identifiiiant de l'une de ces premières tables et il sera impérativement en Numérique.
Pour les produits, si le champ référence est avec des lettres, il faudra ajouter un champ identifiant_Produit en numérique" ?

Dois je ajouter dans toutes les autres tables les champs identifiants des tables clients, fournisseurs et produits ?

sourisdeservice
 Posté le 19/08/2009 à 14:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Bonjour,

Exemple: dans ta table produit, tu ne dois pas mettre Référence produit ni Désignation produit puisque cela se trouve dans la table Produits. Il faut simplement mettre Identifiant produit (tu peux sans doute renommer Référence produit ainsi)

sosonia32
 Posté le 20/08/2009 à 11:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour,

J'essais de comprendre au mieux vos messages mais je suis un peu perdue quand meme. Je m'explique.

Je comprends qu'il faut éviter que deux tables contiennent deux meme champs mais je me pose quelques questions. Dans mon cas, ma base de donnée servira à gérer les produits, les commandes et les clients de mes ventes sur le site e-commerce de la société dans laquelle je travail.

Nous n'avons pas de réelle gestion des stocks et du coup j'essais de me débrouiller pour pouvoir la faire sur un minimum de produit. Le problème c'est que du coup nous ne retrouvons pas facilement nos produits si on ne peut pas les rechercher soit par leur désignation soit par la référence du fournisseur et du meme coup vérifier si c'est le bon fournisseur (parce que nous avons le cas avec deux d'entre eux ou certaines référence sont identique mais pas les désignations). Je ne sais pas si vous comprenez mon affaire.

Donc comment puis je retrouver la correspondance fournisseur pour une fiche de stock ?



Modifié par sosonia32 le 20/08/2009 11:33
sourisdeservice
 Posté le 20/08/2009 à 22:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Re,

Pour faire simple pourquoi ne pas mettre dans le même champ texte la référence et la description ?

Pour rechercher, dans une requête, on mettra dans la ligne critère ceci :

comme *&[entrez une partie de la référence]&*

Ex. réf est "jz254 abrasif" (sans guillemets)

Je tape "abra"sans guillemets et j'obtiens mon enregistrement

Quand tu crées une requête, tu peux demander l'affichage des données venant de plusieurs tables différentes, c'est pour cela qu'il est inutile de répéter une info d'une table dans l'autre

sosonia32
 Posté le 21/08/2009 à 09:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour,

Ah oui d'accord, je ne pensais pas faire une requete pour cela. Bon je vais essayer d'avancer comme cela et si ca ne vous dérange pas je vous ferais passer ma base de donnée pour voir si j'ai bien compris tout cela.

Merci

sosonia32
 Posté le 21/08/2009 à 10:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Je suis enfin sur ma base de donnée et j'enleve donc les champs "en trop". Je vais vous dire ce que cela pourrait me donner :

Ma table commande comprend : N° Commande / Date Commande / Mode expédition / Mode paiement

Ma table stock comprend : Date entrée stock / Date sortie stock / Quantité

Tous les autres champs doivent se trouver dans les tables respectives (ex: identifiant client dans la table client seulement).

sourisdeservice
 Posté le 21/08/2009 à 11:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Bonjour,

J'ai un peu anticipé mais rechercher un produit dans une table peut se faire directement dans celle-ci en utilisant les boutons des barres d'outils.

Mais pour un produit trouvé, tu n'auras alors dans la colonne fournisseur que son n° d'identification. Avec la requête, basée sur plusieurs tables, tu auras alors le nom en clair

Le plus important est de mener à bien les structures de tes tables et des liaisons correctes

Publicité
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
22,99 €Carte mémoire microSDXC SanDisk 128 Go pour Nintendo Switch à 22,99 €
Valable jusqu'au 15 Août

Amazon propose actuellement la carte mémoire microSDXC 128 Go pour Nintendo Switch à 22,99 € alors qu'on la trouve ailleurs à partir de 35 €. Cette carte mémoire offre des vitesses jusqu'à 100 Mo/s et vous permet d'ajouter 128 Go de stockage pour vos jeux sur la console Nintendo Switch. 


> Voir l'offre
17,99 €Pack de 50 DVD+R Philips 4.7 Go 120 min à 17,99 €
Valable jusqu'au 15 Août

Amazon propose actuellement le spindle de 50 DVD+R Philips 4.7 Go 120 min à 17,99 € alors qu'on les trouve ailleurs autour de 25 €. Ces disques offrent une grande capacité et une longue durée de vie. Ils peuvent être gravés en 16x. Notez que le lot de 100 est également en promo à 28,50 €.


> Voir l'offre
399,99 €Ecran 27 pouces LG Ultragear 27GL83A-B (IPS, WQHD, 144 Hz, HDR10, G-sync/FreeSync) à 399,99 €
Valable jusqu'au 16 Août

Amazon fait une promotion sur l'écran LG Ultragear 27GL83A-B qui passe à 399,99 € au lieu de 445 € ailleurs. Cet écran possède une dalle 27 pouces WQHD (2560x1440) à 144 Hz, un temps de réponse de 1 ms. Il est compatible Nvidia G-SYNC et Adaptive Sync


> Voir l'offre

Sujets relatifs
[URGENT] Probleme ave un powerpoint
(Urgent svp) Word - Serieux problème
Probleme dans cellule texte - urgent
URGENT- Problème numérotation!!!....
Probleme Word Urgent SVP
URGENT problème doc word
Problème Urgent
probleme style urgent ca revient de nouveau
problème en exel pour les macros (urgent)
Problème urgent sous word
Plus de sujets relatifs à URGENT Problème relations un à plusieurs
 > Tous les forums > Forum Bureautique