sicilragazzo Posté(e) le 21 novembre 2007 Partager Posté(e) le 21 novembre 2007 Hello ! Je dois créer une base de données qui permettra de relier N fournisseurs livrant chacun N produits différents à N entrepôts qui livreront chacun N magasins de 4 Secteurs. Ça fait beaucoup de N tout ça :) étant débutant en base de données, je doute de la fiabilité de ma base. Le but étant de gérer les tournées de livraison entrepôt a magasins et de vérifier les stocks je souhaite faire une requête qui me permet de connaitre mon stock par produit et par entrepôt. Quand je réalise une requête qui mélange les tables livraison (Stock_sortant) et Entrée (Stock_entrant), Access ne me montre que les produits et les entrepôts pour lesquels il y a eu à la fois une entrée et une sortie. Je n'arrive pas à forcer Access à me montrer tous les codes produits. De plus certaines relations sont faites sur des valeurs ne disposant pas toujours de clef primaire. Est ce possible ? Je vous montre une capture de mes relations : Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spaz001 Posté(e) le 21 novembre 2007 Partager Posté(e) le 21 novembre 2007 De plus certaines relations sont faites sur des valeurs ne disposant pas toujours de clef primaire. Est ce possible ? Euh .. une relation peut être faite sur un champ ne faisant pas parti d'une clé :) Le but étant de gérer les tournées de livraison entrepôt a magasins et de vérifier les stocks je souhaite faire une requête qui me permet de connaitre mon stock par produit et par entrepôt. Quand je réalise une requête qui mélange les tables livraison (Stock_sortant) et Entrée (Stock_entrant), Access ne memontre que les produits et les entrepôts pour lesquels il y a eu à la fois une entrée et une sortie. Je n'arrive pas à forcer Access à me montrer tous les codes produits. Elle ressemble a quoi ta requête sous access, qu'on puisse avoir une idée ? :) Sinon, faire une requête pour avoir une idée du stock d'un entrepôt, avec ta base, ca risque de devenir plutot chaud, vu que, d'après les relations, le seule moyen est de le "calculer" avec la totalité des entrées/sorties, ce qui peut devenir vite lourd, quand tu commenceras a avoir pas mal de lignes; mais peut-être me trompe-je Edit: Sinon, je crois avoir compris ta requête access, et c'est normal, vu que comme je dis plus haut, avec tes relations, la quantités de produits se calculent avec entrées et sorties, si il en manque, access fait pas les jointures gauches/droites avec l assistant il me semble, donc ca ne sort pas si il manque l entrée ou la sortie Lien vers le commentaire Partager sur d’autres sites More sharing options...
sicilragazzo Posté(e) le 21 novembre 2007 Auteur Partager Posté(e) le 21 novembre 2007 Merci pour ta réponse et oui ça va devenir très vite lourd... C'est crétin c'est le sujet d'un TD de licence je sais pas comment faire autrement apparemment avec SQL on peut y arriver bcp plus vite mais... j'ai pas le temps de l'apprendre ! les tables et relations vous semblent elles logiques ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
sicilragazzo Posté(e) le 21 novembre 2007 Auteur Partager Posté(e) le 21 novembre 2007 La fameuse requête : elle m'affiche bien le total des mes produits entrés par entrepôt. Des que j'affiche la table Livraison ( même sans la prendre en compte dans les champs de la requête ) ça déconne Lien vers le commentaire Partager sur d’autres sites More sharing options...
tsubasaleguedin Posté(e) le 21 novembre 2007 Partager Posté(e) le 21 novembre 2007 Ca serait bien de tester access avec plus de 100 000 enregistrements sur plus de 10 colonnes avant de lancer un projet avec ^^" , généralement on prend peur et on fuis access Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spaz001 Posté(e) le 21 novembre 2007 Partager Posté(e) le 21 novembre 2007 La fameuse requête : elle m'affiche bien le total des mes produits entrés par entrepôt. Des que j'affiche la table Livraison ( même sans la prendre en compte dans les champs de la requête ) ça déconne Oui, normal, comme je t'ai dis, l assistant ne fait que des equi jointures, il doit donc forcement y avoir une entrée et une sortie pour que ca sorte, mais de toute facon, tu n'arriveras pas a la faire avec l'assistant dans ton cas actuel (de ce que je connais de l'assistant, je ne m'en sert jamais), car tu dois faire un calcul sur 2 sous requete, ou une requete avec des jointures gauche/droite, ce qu'il ne fait pas. Tu peux par contre rentrer directement la requete SQL, ca il le fait Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spaz001 Posté(e) le 21 novembre 2007 Partager Posté(e) le 21 novembre 2007 Merci pour ta réponse et oui ça va devenir très vite lourd... C'est crétin c'est le sujet d'un TD de licence je sais pas comment faire autrement apparemment avec SQL on peut y arriver bcp plus vite mais... j'ai pas le temps de l'apprendre ! les tables et relations vous semblent elles logiques ? Et bien j'aurais créé 2 tables, stock_entrepot, stock_magasin, avec no_entrepot/no_produit/quantité, et no_magasin/no_produit/quantité , justement poru pas avoir a le recalculer a chaque fois, suffit de le mettre a jour (ou l'inserer si inexistant) quand il y a entrée/sortie sinon, il me semble que tes clés sur Entrée, et Livraison sont fausses, tu ne peux pas avoir 2 livraisons du même produit (a des dates differentes) dans le même magasin depuis le même entrepôt ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
sicilragazzo Posté(e) le 21 novembre 2007 Auteur Partager Posté(e) le 21 novembre 2007 La fameuse requête : elle m'affiche bien le total des mes produits entrés par entrepôt. Des que j'affiche la table Livraison ( même sans la prendre en compte dans les champs de la requête ) ça déconne Oui, normal, comme je t'ai dis, l assistant ne fait que des equi jointures, il doit donc forcement y avoir une entrée et une sortie pour que ca sorte, mais de toute facon, tu n'arriveras pas a la faire avec l'assistant dans ton cas actuel (de ce que je connais de l'assistant, je ne m'en sert jamais), car tu dois faire un calcul sur 2 sous requete, ou une requete avec des jointures gauche/droite, ce qu'il ne fait pas. Tu peux par contre rentrer directement la requete SQL, ca il le fait Je suis dans le cas d'une sorte de centrale d'achat qui gere l'appro de plusieurs entrepots donc... le stock magasin est géré par l'extérieur. Merci bcp ! j'étais pratiquement sur qu'il me manqué une table je viens de la construire il me manque encore les liens avec les entrées et sorties pour l'instant ça merde (erreur d'index !) je pense la refaire bien propre et je devrais m'en sortir non ? pitié dites oui ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spaz001 Posté(e) le 21 novembre 2007 Partager Posté(e) le 21 novembre 2007 La fameuse requête : elle m'affiche bien le total des mes produits entrés par entrepôt. Des que j'affiche la table Livraison ( même sans la prendre en compte dans les champs de la requête ) ça déconne Oui, normal, comme je t'ai dis, l assistant ne fait que des equi jointures, il doit donc forcement y avoir une entrée et une sortie pour que ca sorte, mais de toute facon, tu n'arriveras pas a la faire avec l'assistant dans ton cas actuel (de ce que je connais de l'assistant, je ne m'en sert jamais), car tu dois faire un calcul sur 2 sous requete, ou une requete avec des jointures gauche/droite, ce qu'il ne fait pas. Tu peux par contre rentrer directement la requete SQL, ca il le fait Je suis dans le cas d'une sorte de centrale d'achat qui gere l'appro de plusieurs entrepots donc... le stock magasin est géré par l'extérieur. Merci bcp ! j'étais pratiquement sur qu'il me manqué une table je viens de la construire il me manque encore les liens avec les entrées et sorties pour l'instant ça merde (erreur d'index !) je pense la refaire bien propre et je devrais m'en sortir non ? pitié dites oui ! Non, fais 2 tables stock, une pour entrepot, l autre pour magasin; ce serais possible avec une seule, mais plus compliqué, et pas avec ce que tu as fais Ou vire le champ qui fait reference au magasin, il a rien a faire là :) Edit:Bon, va falloir que je t'explique mais je rentre chez moi là '^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spaz001 Posté(e) le 21 novembre 2007 Partager Posté(e) le 21 novembre 2007 Donc, tu étais sur la bonne voie avec code_produit et no_entrepot, ca pas de souci, par contre, le reste, ca va pas Tu peux l'enlever ce reste, et ajouter un champ "quantité", qui contiendra donc la quantité actuelle dudit produit dans ledit entrepôt. Qui plus est, cela permet de vérifier si il correspond a la somme des entrées moins la somme des sorties, pour voir si il y aurait pas des trucs qui disparaissent Ensuite, pour la clé des tables Entrée et Livraison, il y a 2 solutions la solution "pas propre", où tu ajoutes la date dans la clé que tu avais avant. la solution "propre", tu ajoutes un champ à ta table, un champ "identifiant". Ce champ (généralement) est rempli par, dans la réalité, le numéro du bon de livraison, tout simplement. Là encore, 2 choix possibles, en fonction du TD. Ou tu as accès à l'information du numéro du bon de livraison (en entrée, comme en sortie), dans ce cas ton champ est un champ qui est "remplis" par l'utilisateur ou le programme. Ou tu n'y a pas accès, et ton champ est un champ généré automatiquement, et dans ce cas, le mieux c'est que tu mettes un entier en auto incrementation. Ensuite, sur tes 2 tables, tu peux ajouter un index; (la date) ou (la date et le no_produit et le no_entrepot/magasin), comme tu veux en fait, c surtout la date qui est intéressante car ta table sera je pense très souvent trié par la date, pour sortir les entrées du jour, du mois, entre le jour x et y, etc ... Voilà, c'est tout pour l'instant il me semble Lien vers le commentaire Partager sur d’autres sites More sharing options...
sicilragazzo Posté(e) le 21 novembre 2007 Auteur Partager Posté(e) le 21 novembre 2007 Donc, tu étais sur la bonne voie avec code_produit et no_entrepot, ca pas de souci, par contre, le reste, ca va pas Tu peux l'enlever ce reste, et ajouter un champ "quantité", qui contiendra donc la quantité actuelle dudit produit dans ledit entrepôt. Qui plus est, cela permet de vérifier si il correspond a la somme des entrées moins la somme des sorties, pour voir si il y aurait pas des trucs qui disparaissent Ensuite, pour la clé des tables Entrée et Livraison, il y a 2 solutions la solution "pas propre", où tu ajoutes la date dans la clé que tu avais avant. la solution "propre", tu ajoutes un champ à ta table, un champ "identifiant". Ce champ (généralement) est rempli par, dans la réalité, le numéro du bon de livraison, tout simplement. Là encore, 2 choix possibles, en fonction du TD. Ou tu as accès à l'information du numéro du bon de livraison (en entrée, comme en sortie), dans ce cas ton champ est un champ qui est "remplis" par l'utilisateur ou le programme. Ou tu n'y a pas accès, et ton champ est un champ généré automatiquement, et dans ce cas, le mieux c'est que tu mettes un entier en auto incrementation. Ensuite, sur tes 2 tables, tu peux ajouter un index; (la date) ou (la date et le no_produit et le no_entrepot/magasin), comme tu veux en fait, c surtout la date qui est intéressante car ta table sera je pense très souvent trié par la date, pour sortir les entrées du jour, du mois, entre le jour x et y, etc ... Voilà, c'est tout pour l'instant il me semble Wawou pas mal l'explication merci bcp ! je pense avoir enfin saisi le concept de clef et d'index.... pas si evident que ca quand on a eu des cours de merde... enfin je me sens super con de pas maitriser un logiciel crosoft maintenant j'ai ma table stock, une référence dans les tables sorties et entrées. J'ai beau retourner le probleme dans tout les sens, j'ai toujours des doublons quand jessaye de realiser une requete ou un etat presentant les entrées et sorties sur un meme document. jespere que c'est un ptit truc bete que j'ai oublié en chemin. Voila la derniere version de mes relations j'ai supprimé les liens entre stock les entrées les sorties car j'hesite, dois je creer un numero auto dans ma table stock ? car pour linstant je ne peux pas creer de clef primaire pour cette table ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spaz001 Posté(e) le 21 novembre 2007 Partager Posté(e) le 21 novembre 2007 Ne te sens pas bête, j'ai des frissons dans le dos rien qu'à l'idée de devoir travailler sur access; les formulaires, les requêtes, brrrrr. C'est bien pour ce qui est simple, mais dès que je veux faire un truc bien, donc compliqué, j'ai un peu de mal et je repasse en mode "code brut" La clé de ta table stock est no_entrepot no_produit. Il n'y a bien evidement qu'une ligne et une seule pour un produit donné et un entrepot donné. Il n'y a pas de lien entre stock, et entrée/livraison, inutile de chercher Et oui, au sens relation, il n'y en a pas, c'est dans le traitement qu'il y en a un. un truc qui me dérange, c'est que dans entrées/sorties, tu as l icone de la clé a cote des champs date et stock sur le stock, il ne dois rien y avoir (meme pas un index), et sur la date, un index, mais pas de clé (d'ailleurs, si tu veux plus d'explications sur ça, demande :) ) mais bon, les index, si c'est pas vraiment demandé, te prends pas la tête, c'est en plus, ca peux aider, surtout si tu testes sur beaucoup d'échantillons J'ai beau retourner le probleme dans tout les sens, j'ai toujours des doublons quand jessaye de realiser une requete ou un etat presentant les entrées et sorties sur un meme document Là, il faut que tu m'expliques d'avantages. Je suppose que tu dois donner des requêtes exemples, types, ou qui répondent à un cahier des charges ? Explique moi ce que tu veux obtenir, et comment tu as procédé pour l'obtenir actuellement, je t'aiderais à trouver ce qui ne va pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
sicilragazzo Posté(e) le 21 novembre 2007 Auteur Partager Posté(e) le 21 novembre 2007 Ne te sens pas bête, j'ai des frissons dans le dos rien qu'à l'idée de devoir travailler sur access; les formulaires, les requêtes, brrrrr. C'est bien pour ce qui est simple, mais dès que je veux faire un truc bien, donc compliqué, j'ai un peu de mal et je repasse en mode "code brut" La clé de ta table stock est no_entrepot no_produit. Il n'y a bien evidement qu'une ligne et une seule pour un produit donné et un entrepot donné. Il n'y a pas de lien entre stock, et entrée/livraison, inutile de chercher Et oui, au sens relation, il n'y en a pas, c'est dans le traitement qu'il y en a un. un truc qui me dérange, c'est que dans entrées/sorties, tu as l icone de la clé a cote des champs date et stock sur le stock, il ne dois rien y avoir (meme pas un index), et sur la date, un index, mais pas de clé (d'ailleurs, si tu veux plus d'explications sur ça, demande :) ) mais bon, les index, si c'est pas vraiment demandé, te prends pas la tête, c'est en plus, ca peux aider, surtout si tu testes sur beaucoup d'échantillons J'ai beau retourner le probleme dans tout les sens, j'ai toujours des doublons quand jessaye de realiser une requete ou un etat presentant les entrées et sorties sur un meme document Là, il faut que tu m'expliques d'avantages. Je suppose que tu dois donner des requêtes exemples, types, ou qui répondent à un cahier des charges ? Explique moi ce que tu veux obtenir, et comment tu as procédé pour l'obtenir actuellement, je t'aiderais à trouver ce qui ne va pas Voila The interprétation de access lorsque je tente de confronter mes entrées et mes sorties . Dans la requête on voit que les entrées se dédoublent quand il y a eu une sortie du meme produit et vice versa. les deux but de la base sont la consultation des stocks avec des petites soustractions ( quand mes entrées et sorties apparaitront clairement !) et ensuite l'optimisation des tournées par secteur (ça ça va pas trop difficile) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.