Lignes en double sur requête - Access 2007

Fermé
kat - Modifié par kat le 20/04/2010 à 09:44
GGuyle Messages postés 72 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 22 juillet 2011 - 9 août 2010 à 13:25
Bonjour,

Moi aussi j'ai un souci avec ma requete de calcul d'état de mon stock.

Mon champ total stock est calculé à partir d'une requete SommeDeentrée et d'une requete SommeDesortie.

Si j'effectue plusieurs entrées et sorties pour un même article, quand j'execute ma requete total stock, j'ai plusieurs lignes qui s'affichent avec le meme résultat (autant que j'ai fait d'entrée et sortie). Comment faire pour avoir une seule ligne ?

J'ai aussi une deuxième problème : dans mes requêtes entrées et sorties, j'ai le code article, la somme et la rangée (car je dois définir ou je stock mes articles).
Si j'ai un même article qui est stocké dans plusieurs rangées, quand je calcul l'état de mon stock, Access m'affiche :
GD2-400-720X1020 400 H
GD2-400-720X1020 500 H
GD2-400-720X1020 400 I
GD2-400-720X1020 500 I

Alors qu'en réalité j'ai 400 en H et 500 en I.

Comment faire pour qu'Access ne m'affiche qu'une ligne pour chaque rangée ?



Merci d'avance pour vos réponses

A voir également:

19 réponses

Rhyton le boyar
21 avril 2010 à 08:07
Alors je récapitule,

Tu souhaite calculer les entrée et les sortie et ensuite faire une soustrqction de tes sortie à tes entrée pour avoir ton stock.

Dans le mode création crée une requete t'affichant uniquement les champs pouvant différencier tes stock comme tru le veux et avec si tu le peux toutes tes entrées et toute tes sorties.

Ensuite clique sur l'icone Somme (tu sais cette lettre grecque qu'on utilise en math une sorte de M tourné de 90° vers la gauche)

Tu verras apparaitre une nouvelle ligne d'option définie par défaut pour tout les champs comme Group By. laisse comme tel pour les champs différenciant (ton code article et ton code rangée) et met Sum pour tes entrée et sortie.

Ainsi comme pour un tableau croisé dynamique tu auras une ligne par élément différenciant affichant la somme de toutes les lignes possedant les mêmes identifiant,

Ensuite effectyue le calcule entrée moins sortie et ça devrait coller,

Bon courage,

Rhyton.
3
Rhyton le boyar
20 avril 2010 à 13:02
essaye en ouvrant ta requete en mode creation, ensuite tu va sur le bouton qui te permet de chqnger le mode d'ouverture de tq requete et tu demande le mode SQL, tu va donc voir le code, ajoute distinct apres Select et reviens en mode creation, tu verra deja ce qui se passe et tu pourra ensuite tester ta requete.
2
j'ai aussi une autre question mais qui est moindre, comment ce fait-il que je puisse agir sur certaines requetes et pas sur d'autre quand j'execute cette dernière
1
Rhyton le boyar
21 avril 2010 à 09:45
Là je te dirais fais comme en compta, je m'explique, en compta quand on fait une erreur de saisie, on ne peux pas effacer la ligne, donc on effectue une écriture contraire pour en annuler l'effet. Donc, tu as un reliquat donné tu dois le rentrer mais tu ne sais pas encore à qui il doit aller. Tu le rentre et tu te crée par exemple un Client fictif nommé "en attente d'affectation".

Quand plus tard tu veux de nouveau l'attribuer à un client tu le sort du stock et le réentre en l'affactant à ce client,

j'espère que ça répond à ta question.

Rhyton
1
Rhyton le boyar
21 avril 2010 à 09:50
Autre possibilité tu crée un deuxième formulaire non pas d'ajout mais de modification cette fois ci. Tu met dans les settings que tu le veux en ,odification seule,ent et du ,et tu rend inchangeable Toutes les cellules que tu ne veux pas qu'ils changent. Ensuite tu laisse changeable les cellules que tu veux renseigner et voilà
0
mon vocabulaire technique étant restrein, qu'est ce que sont les settings ??
là je me suis mise en mode création sur un nouveau formulaire avec ma table stock. à partir de la comment je fais ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pour le mmt ma messagerie ne fonctionne plus, mais je t'envoie ca dès que c'est a nouveau opérationnel
1
rhyton le boyar
21 avril 2010 à 16:22
allé je te la met en normal après tout cette boite ne sert qu'à ça, rhytonleboyar@gmail.com
0
c'est bien ce que j'ai noté pourtant.
en fait, ma boite ne veux plus envoyé de mails que vers des adresses laposte.
je réessayerai un peu plus tard
0
rhyton le boyar
21 avril 2010 à 16:38
Oki je regarderai donc ma boite plus tard, oublie pas de la compacter et de la ziper si tu peux avnt de l'envoyer.

Pour compacter je pense que tu sais mais je le met quand meme, menu principal, gérer, compacter la base de donnée.
0
ca y est ca a enfin fonctionné
0
rhyton le boyar
21 avril 2010 à 17:31
oui j'accuse réception
0
Hishira Messages postés 155 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 8 février 2011 31
20 avril 2010 à 10:54
Il faut utiliser le distinct ! ( Select distinct).
Cette option permet de faire apparaitre qu'une fois la ligne même si tu as les mêmes enregistrements.
0
Et je trouve ça ou dans la création de requete ?
0
j'ai ajouté le distinct après select, cela me regroupe bien mes lignes si je fais plusieurs entrées et sorties mais seulement si je mets ts mes articles dans la même rangée.
si mes articles se trouvent dans plusieurs rangées j'ai toujours plusieurs lignes lors de l'execution de ma requete.
comment puis-je résoudre ce problème ?
0
Rhyton le boyar
20 avril 2010 à 14:48
Peux tu aller de nouveau en mode sql et copier coller le code pour qu'on y voit un peu plus clair?

a tout de suite.

Rhyton
0
SELECT DISTINCT articles.code_article, articles.qualité, [SommeDeentrée]-[SommeDesortie] AS Expr1, stock.Rangée, stock.N°_dossier, stock.Client_associé
FROM ((articles INNER JOIN sortie ON articles.code_article = sortie.code_article) INNER JOIN entrée ON (sortie.rangée = entrée.rangée) AND (articles.code_article = entrée.code_article)) INNER JOIN stock ON articles.code_article = stock.code_article
WHERE (((articles.code_article)="GD2-210-530X765"));
0
Rhyton le boyar
20 avril 2010 à 15:31
Tu sais faire une requete Group By?
0
non je n'ai mm jamais entendu parlé de "Group by", mais vas y explique je vais essayer de le faire
0
super ca fonctionne, je n'ai plus de doublons.

autre petite question.
quand l'entreprise achète des feuilles de cartons, celle-si sont destinées à un client précis.
quelque fois il y a des restes de carton (reliquats) qui sont remis en stock. a ce moment là, ces feuilles de carton ne sont plus attitrée à un client précis. l'entreprise ce sert de ces reliquats pour des petites séries.

le but de ma base de données est notamment de gérer ces reliquats et leur attribution a des dossiers.

si quand j'entre mes reliquats en stock et que je sais déjà à quel dossiers il vont me servir, je peux le renseigner dans mon formulaire stock. mais si je ne le sais qu'après avoir ranger mes article dans le stock je ne peux plus agir sur le formulaire stock car j'ai mis un verrou sur ce fourmulaire pour que l'on ne puisse pas y apporter de modification pour éviter toute erreur.
de plus j'ai créé une requete par recherche de code article pour savoir s'il a été attribué à un dossier et un client ou non. mais je ne peux apporter aucun modification sur ma requete en mode execution.
comment faire pour pouvoir renseigner mon cllient et son numéro de dossier pour un reliquat donné ?
0
Oui cela répond à ma question mais j'airai préférer pouvoir ajouter le nom de mon client à partir d'une requete par exemple pour ne pas avoir a enlerver mon article de mon stock pour ensuite le remettre.
Ce n'est pas moi qui vais me servir de la base une fois qu'elle sera sur le réseau de l'entreprise donc je voulais faire que ce soit le plus simple possible pour eux.

Et fausse joie pour la réponse d'avant, en fait ca ne marche pas. J'ai peut etre mal fait quelque chose.
tu m'a bien dit de mettre dans une meme requete :
code_art (regroupement) ¤ entrée (somme) ¤ sortie (somme) ¤ total : entrée-sortie ¤ rangée (regroupement) ¤ client (regroupement) ???

maintenant, cela m'affiche ligne par ligne mes entrées et sorties, moi je veux seulement le stock dispo pour chaque article dans chaque rangée (s'il y en a plusieurs).
0
access ne m'ajoute mm pas deux entrées du meme article dans la meme rangée. il me le note en deux lignes alors que j'ai bien mis la somme
0
c'est bon en mettant somme sur le total ca fonctionne
0
Rhyton le boyar
21 avril 2010 à 12:39
très bien, sujet résolu?, si oui marque le comme tel en cliquant sur l'option en haut de cette page,

Bon courage pour la suite.

Rhyton
0
pour cette partie oui mais pas pour ce que tu m'as expliqué avec le formulaire de modification.

et j'ai un petit pb de synthaxe sur la formule suivante :
palettes à commander: VraiFaux([total]<=[seuil];"oui";"non")
access ne reconnait pas les points virgules, il me dit que j'ai mis des virgules, cmt faire?
0
je veux faire une alerte, j'ai mis la fonction si ci dessous mais access ne reconnait pas mes point virgule, il me dit que j'ai mis de simples virgules et donc que la synthaxe est mauvaise.
palettes à commander: VraiFaux([total]<=[seuil];"oui";"non")
d'ou peut porvenir ce petit désagrément ?
0
Rhyton le boyar
21 avril 2010 à 13:39
peut être un bug d'access tu travaille avec le clavier français, américain ou tu peux szitcher entre les deux peut être? si oui ça pourrait expliquer le bug et il te suffit de réessayer. sinon, annule la formule, ferme la requete, marque la sous word, et copie la ou il faut.

essaye déjà ça après on verra
0
j'ai un clavier francais, il est possible que je puisse le changer mais je ne l'ai jamais fait.
je n'avais encore jamais rencontrer ce problème avec access.
même en notant sur word et en faisant un copier coller ca ne marche pas.
tant pis.


peux tu me réexpliquer comment faire le formulaire de modification car je n'ai pas bien compris ce que tu veux que je fasse. si tu pouvais détailler des actions se serait bien.
ou est ce que je trouve ton setting ? je n'ai jamais fait de formulaire comme ca.
0
Rhyton le boyar
21 avril 2010 à 14:06
Bon voyons autrement as-tu moyen de faire une copie de ta base, éventuelle,ent d'effacer les données sensibles s'il y en a et de me l'envoyer, dans ce cas j'y regarderai ce soir et éventuellement on pourra communiquer par mail, le post commence à être super long.

Mon adresse est rhytonleboyar leaentouré jémel point com

ça simplifierai les chose je fais les changement et ensuite quand tu as la base modifiée tout ou partiellement, je t'explique les manip.

Rhyton
0
j'ai un pb avec ton adresse, au mmt d'envoyer le mail, ma messagerie me dit adresse innexistante.
rhytonleboyar c'est tt attaché, il n'y a pas de tirets ??
0
GGuyle Messages postés 72 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 22 juillet 2011 3
9 août 2010 à 13:25
Crée un état en pointant sur ta requête puis demande à supprimer les doublons
0