Requet de Mise à jour un peu speciale " Besoin d'aide"

good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008 - 27 mars 2008 à 19:14
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008 - 7 mai 2008 à 18:48
Bonjour, je travails sur ACCESS 2003


Voilà, j'ai deux tables, une pour les ventes des articles " Ventes" et l'autre pour les tailles des articles " Tailles"


Table  "vente"

<caption>Vente</caption>----
VenteID |Date |Reference |Taille |Quantité |----
1, 02/03/2008, Ref1, 3940, 1, ----
2, 02/03/2008, Ref2, 2, 2, ----
3, 02/03/2008, Ref2, 4, 1, ----
4, 03/03/2008, Ref1, 3940, 2, ----
5, 03/03/2008, Ref3, 40, 1, ----
6, 03/03/2008, Ref2, 3, 1, ----
7, 03/03/2008, Ref2, 3, 1, ----
8, 04/03/2008, Ref2, 2, 1, ----
9, 15/03/2008, Ref3, 44, 2, ----
10, 15/03/2008, Ref1, 4142, 3, ----
11, 15/03/2008, Ref3, 44, 1, ----
12, 18/03/2008, Ref2, 4, 2, ----
13, 18/03/2008, Ref1, 4344, 1, ----
14, 18/03/2008, Ref2, 2, 1, <tfoot></tfoot>


Table " Tailles"

<caption>Tailles</caption>----
ID |Reference |Taille |Quantite |MAJ Quantité |----
1, Ref1, 3738, 5, 5, ----
2, Ref1, 3940, 8, 8, ----
3, Ref1, 4142, 10, 10, ----
4, Ref1, 4344, 8, 8, ----
5, Ref2, 2, 10, 10, ----
6, Ref2, 3, 6, 6, ----
7, Ref2, 4, 12, 12, ----
8, Ref2, 5, 9, 9, ----
9, Ref3, 40, 10, 10, ----
10, Ref3, 42, 8, 8, ----
11, Ref3, 44, 6, 6, ----
12, Ref3, 46, 8, 8, <tfoot></tfoot>


Comme vous voyez, j'aimerais bien qu'à l'aide d'une requete je
parviendrai à metre à jour le champ [MAJ Quantite] de la table
"Tailles" et ce,  en fonction des quantité des articles vendus, et pour
ce faire j'aimerai coïncider les deux champs [Reference] et [Taille]
qui se trouvent dans chacune des deux tables


exp:


Dans (Table Ventes)

Quand  :  Reference Ref2 et   Taille 2    la quantité totale est égale à  2   ( voir les lignes en rouge)


Donc:

Dans ( Table Taille)

Quand : Reference Ref2 et Taille 2  je voudrais que  [MAJ Quantite] = 6-2 =  4

et ainsi de suite pour les autres articles et references.


A souligner qu'il n y a aucune relation entre les deux tables.


Aidez moi SVP à  créer la requete nécéssaire pour obtenir le resultat souhaité


Merci  d'Avance

Health & Peace

24 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
28 mars 2008 à 01:11
Bonsoir,


Deux solutions:
  A - Conserver ta structure actuelle
   1- faire une requete somme des ventes pour chaque référence  et pour chaque Taille
    
   2 - lier ta requete citée en 1 à ta table Tailles sur Reference  et   sur Taille (double liaison)
     
   3 - mettre à jour ta table Taille à partir de requete1
  Tailles.Quantité= Tailles.Quantité - Requete1.SommeQuantite




B - Optimiser ta table vente en modifiant sa structure.
      VenteID   Date   ID    Quantité 
     au leiu de     


VenteID |
Date |
Reference |
Taille |
Quantité |


  1- faire une requete somme des ventes pour chaque ID
     
  2-  lier ta requete citée en 1 à ta table Tailles sur ID
   
  3 - mettre à jour ta table Tailles à partir de Requete1
   Tailles.Quantité =Tailles.Quantité -Requete1.SommeQuantite                         
<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
<hr />


/P>
0
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008
28 mars 2008 à 20:06
Salut,

Merci pour ta reponse cher  Libre_Max

J'ai opté pour la premiere méthode, et ce, pour garder la meme structure..., mais!, hé oui  il y a un mais , après avoir crée ma requete j'arrive pas à créer une double liaison à partir de la requete vers Taille.Quantité et  Taille.Reference  au meme temps, Access me dit "une relation existe déjà"

Comment faire mon ami, merci

Health & Peace
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
28 mars 2008 à 23:01
Bonsoir,
Par contre moi j' y arrive !


*Tailles         *Requete1
ID                   
Reference  ----> Reference 
Taille      -------> Taille      
Quantite             SommeDeQuantite

Je rappelle que Requete1 est une requete Regroupement
faite à partir de la table vente.


Seulement, il y' a un hic , et (sans jeu de mot) de Taille !
On en reparlera quand tu auras réussi à mettre en place
la double liaison.

                        
<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
/PRE>
0
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008
29 mars 2008 à 12:10
Bonjour,

Voilà exactement  comment j'ai fais :

1- Creation de la requete1

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /><title>Requête1</title><caption>Requête1</caption>----
Reference |Taille |SommeDeQuantité |----
Ref1, 3940, 3, ----
Ref1, 4142, 3, ----
Ref1, 4344, 1, ----
Ref2, 2, 4, ----
Ref2, 3, 2, ----
Ref2, 4, 3, ----
Ref3, 40, 1, ----
Ref3, 44, 3, <tfoot></tfoot>

2-Creation des Relations:
*Tailles         *Requete1
ID                   
Reference  ----> Reference   ( la relation ce fait normalement)

Taille      -------> Taille      ( Access me dit :  une relation existe déjà : voulez-vous modifiez la relation
                                            existante? cliquez sur non pour créer une nouvelle relation)

Alors je clique sur NON  et là !   une requete nommée  requete1_1 se crée instantanément avec une
relation  Tailles.Taille---------------> requete1_1.Taille

Est-ce cela la double liaison

J'ai hate de voir le HIC  pourvu qu'il y ait un  anti-HIC

Merci

Health & Peace
0

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

Posez votre question
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
29 mars 2008 à 14:21
Bonjour,
la double liaison se fera dans l' onglet Requete et pas dans l' onglet Tables.
Parce que tu as déjà fais la liaison Vente ---Tailles.C' est pour ça qu' il n' accepte pas entre Tailles et Requete1.
(Requete1 etant issue de vente).Tu vois ce que je veux dire.


Onglet Requetes donc
+Mode creation
+Ajoutes la table Tailles et la Requete1
+Lies Reference de Tailles à Reference de Requete1
   et Taille de Tailles à Taille de Requete1


Ensuite, tu fais Menu/Requetes/Requete mise a jour, et tu fais ce que tu as à faire pour le champ Quantite de la table Tailles.


Quand au hic, il s' agit justement de cette mise à jour.
Mais sois patient.


                         
<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
/PRE>
0
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008
29 mars 2008 à 17:48
Salut,

On suivons ton procédé càd:
Onglet Requetes donc
+Mode creation
+Ajoutes la table Tailles et la Requete1
+Lies Reference de Tailles à Reference de Requete1
   et Taille de Tailles à Taille de Requete1

Ensuite, tu fais Menu/Requetes/Requete mise a jour, et tu fais ce que tu as à faire pour le champ Quantite de la table Tailles.

j'obtiens ceci:

*Tailles                          *Requete1

ID                                 
Reference ------------- > Reference
Taille        -------------> Taille          
Quantité                          SommeDeQuantité
MAJ Quantité

Donc j'ai remarqué que la double liaison s'est faite toute seule

Ensuite dans la zone des critères et parametres  j'ai inséré ceci ( en rouge)

champ: Quantité

Table:  Taille

Mise à Jour : [Tailles].[Quantité]-[Requête1].[SommeDeQuantité]

Ensuite en executant la requete Access me donne ce message

"L'opération doit utiliser une requete qui peut etre mise à jour"

Est-ce cela  le HIC?

Merci
Health & Peace
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
29 mars 2008 à 18:34
Tout à fait

D' ailleur même si ça marchait, le raisonnement est faux:

03/03/2008
Quantite =15
SommeDeVente=10
15-10=5

si en deux jours je vend 2

05/03/2008
Quantite=5
SommeDeVente=12
5-12=-7

C 'est pourquoi, perso je prend toujours garde à ne pas stocker une info qui peut être calculée.

Stock=(QteInitiale+SumQteEntree) - SumQteSortie

Mais mon champ stock n' existe dans aucune table.
C' est un champ résultat quyi peut être calculé à tout moment.

<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
/PRE>
0
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008
29 mars 2008 à 20:33
Salut mon ami,

Si tu vois bien la table Tailles

<caption>Tailles</caption>----
ID |Reference |Taille |Quantite |MAJ Quantité |----
1, Ref1, 3738, 5, 5, ----
2, Ref1, 3940, 8, 8, ----
3, Ref1, 4142, 10, 10, ----
4, Ref1, 4344, 8, 8, ----
5, Ref2, 2, 10, 10, ----
6, Ref2, 3, 6, 6, ----
7, Ref2, 4, 12, 12, ----
8, Ref2, 5, 9, 9, ----
9, Ref3, 40, 10, 10, ----
10, Ref3, 42, 8, 8, ----
11, Ref3, 44, 6, 6, ----
12, Ref3, 46, 8, 8, <tfoot></tfoot>

Il y a le champ Quantité  et  MAJ Quantité et j'ai crée les deux champs avec les memes valeurs pour garder le champ Quantité comme Repere et  Executer les mises à jours sur MAJ Quantité avec se raisonnement, arrète moi si je me trompe,  on peut toujours garder ton raisonnement càd :

Creation de la requete1

*Tailles                          *Requete1

ID                                 
Reference ------------- > Reference
Taille        -------------> Taille          
Quantité                          SommeDeQuantité
MAJ Quantité

Sauf que au lieu de  metre à jour le champ quantité  c'est le champ  MAJ quantité qui sera mis à jour
et le champ  Quantité servira de repere

champ:MAJ Quantité

Table:  Taille

Mise à Jour : [Tailles].[Quantité] - [Requête1].[SommeDeQuantité]
comme ca ton exemple deviendra comme ceci :

03/03/2008
MAJ Quantite =15     et   Quantité = 15
SommeDeVente=10MAJ Quantite (Quantité)15-10   5

si en deux jours je vend 2

05/03/2008
MAJ Quantite=  5    et   Quantité = 15
SommeDeVente=12MAJ Quantite (Quantité)15-12  3
et ainsi de suite

Le probleme demeurera toujours celuis de la requet2

A toi de voir  mon ami

Merci
Health & Peace
0
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008
30 mars 2008 à 11:40
Salut  Libre_Max,

Du nouveau sur ma  problématique? ,  une proposition?, une suggestion?

Merci.
Health & Peace
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
30 mars 2008 à 13:32
Bonjour,
Comme je l' ai dit précédement, à ta place je ne ferais pas de mise à jour.
Je génèrerais un champ QteFinale=Tailles.Quantite-Requete1.SommeDeQuantite.


Tailles.Quantite est la quantité au  depart de mon exercice et doit rester fixe.Mais peut être rectifié pour une raison ou une autre.


Je n' ai donc pas besoin du champ MAJQuantite.


Ta requete2 doit être une requete Selection et pas une requete Mise à jour.
Fais glisser tous les champs et en dernier tu gènères QteFinal.






ID

,

Reference

,

Taille

,

Quantite

,

SommeDeQuantite

,

QteFinale

,

----

1

,

1

,

5

,

38

,

17

,

21





 <hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
/PRE>
0
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008
31 mars 2008 à 21:30
Salut mon ami,

Merci à toi, ca a l'air de marcher,  chapeau bas

Health & Peace
0
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008
1 avril 2008 à 19:20
Salut,

Desolé, j'ai un peu précipité les choses, or il est vrai que  ca marchait sur l'echantillon fournit dans ce poste  mais avec les données réelles de l'application,  ca coince!,
j'explique:

voici la table somme_Quantite_TV l'equivalent de  Requete1 dans mon echantillon (TV: Tailles Vendues)

<meta http-equiv= "Content-Type" content="text/html;charset=UTF-8" /><title>Somme Quantite TV</title><caption> Somme Quantite TV </caption>----
VenteID |Reference |Taille |Quantite TV |----
1, chsAbate, 3940, 1, ----
2, chsAbate, 4142, 2, ----
3, JeanCelio, 44, 1, ----
4, chsAbate, 4344, 2, ----
5, JeanCelio, 40, 1, ----
6, CostGarryDucans, 5042, 1, ----
7, ptlGFD, 42, 1, ----
8, PullSimonClk, 5, 1, ----
9, ptlGFD, 42, 2, ----
10, chsAbate, 4142, 3, ----
11, JeanCelio, 48, 1, ----
12, chsAbate, 3738, 2, ----
13, PullSimonClk, 3, 1, <tfoot></tfoot>

 et voici la table Taille _Stock  l'equivalent de la table Taille dans mon echantillon

<meta http-equiv ="Content-Type" content= "text/html;charset=UTF-8" /><title>Taille Stock</title><caption> Taille Stock </caption>----
ID |Reference |Taille |Quantite |MAJ Quantite |----
1, chsAbate, 3738, 5, 5, ----
2, chsAbate, 3940, 8, 8, ----
3, chsAbate, 4142, 10, 10, ----
4, chsAbate, 4344, 8, 8, ----
5, chsAbate, 4546, 10, 10, ----
6, chsDUTI, 3738, 6, 6, ----
7, chsDUTI, 3940, 12, 12, ----
8, chsDUTI, 4142, 9, 9, ----
9, chsDUTI, 4344, 10, 10, ----
10, chsDUTI, 4546, 8, 8, ----
11, CostGarryDucans, 4840, 6, 6, ----
12, CostGarryDucans, 5042, 8, 8, ----
13, CostGarryDucans, 5244, 10, 10, ----
14, CostGarryDucans, 5446, 8, 8, ----
15, CostGarryDucans, 5648, 5, 5, <tfoot></tfoot>

et voici mon SQL l'equivalent de Requete2 de l'echantillon

-------------------------------------------------------------------------------------------------------
SELECT [Taille Stock].ID, [Taille Stock].Reference, [Taille Stock].Taille, [Taille Stock].Quantite, [Somme Quantite TV].[Quantite TV], [Taille Stock].Quantite-[Somme Quantite TV].[Quantite TV] AS TOTO
FROM [Taille Stock] INNER JOIN [Somme Quantite TV] ON ([Taille Stock].Taille = [Somme Quantite TV].Taille) AND ([Taille Stock].Reference = [Somme Quantite TV].Reference);
-------------------------------------------------------------------------------------------------------

Il est vrai qu'il y  a certaines references et tailles dans Taille _Stock  n y  figurant pas dans somme_Quantite_TV, c'est normal or les ventes se font au hasard et puis le type de jointure entre somme_Quantite_TV  et   Taille _Stock  inclut  seulement les lignes des deux tables pour lequelles les champs joints sont égaux ( option 1)  que ce soit pour Reference-------Reference ou pour Taille----------Taille.

Quelle le probleme SVP? 
Health & Peace
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
1 avril 2008 à 21:44
Bonsoir,

Pour les deux jointures,
>Tous les enregistrements de Taille_Stock et seulement ceux de Somme Quantite TV pour lesquels les enregistrements joints sonr égaux.

et

SELECT [Taille Stock].ID, [Taille Stock].Reference, [Taille Stock].Taille, [Taille Stock].Quantite, [Somme Quantite TV].[Quantite TV], [Taille Stock].Quantite-IIF(IsNull([Somme Quantite TV].[Quantite TV]),0,[Somme Quantite TV].[Quantite TV]) AS TOTO
FROM [Taille Stock] INNER JOIN [Somme Quantite TV] ON ([Taille Stock].Taille = [Somme Quantite TV].Taille) AND ([Taille Stock].Reference = [Somme Quantite TV].Reference);

<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
/PRE>
0
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008
3 avril 2008 à 14:41
Salut,

Ca marche pas mon ami,

Voici la requete  apres avoir modifier la jointure càd:

Jointure: Tous les enregistrements de Taille_Stock et seulement ceux de Somme
Quantite TV pour lesquels les enregistrements joints sonr égaux.

Requete:

SELECT [Taille Stock].ID, [Taille Stock].Reference, [Taille Stock].Taille, [Taille Stock].Quantite, [Somme Quantite TV].[Quantite TV], [Taille Stock].Quantite-IIf(IsNull([Somme Quantite TV].[Quantite TV]),0,[Somme Quantite TV].[Quantite TV]) AS TOTO
FROM [Taille Stock] LEFT JOIN [Somme Quantite TV] ON ([Taille Stock].Reference = [Somme Quantite TV].Reference) AND ([Taille Stock].Taille = [Somme Quantite TV].Taille);

Resultat de la requete :


<meta http-equiv ="Content-Type" content= "text/html;charset=UTF-8" /><title>Requête1</title><caption> Requête1 </caption>----
ID |Reference |Taille |Quantite |Quantite TV |TOTO |----
1, chsAbate, 3738, 5,
, 5, ----
2, chsAbate, 3940, 8,
, 8, ----
3, chsAbate, 4142, 10,
, 10, ----
4, chsAbate, 4344, 8,
, 8, ----
5, chsAbate, 4546, 10,
, 10, ----
6, chsDUTI, 3738, 6,
, 6, ----
7, chsDUTI, 3940, 12,
, 12, ----
8, chsDUTI, 4142, 9,
, 9, ----
9, chsDUTI, 4344, 10,
, 10, ----
10, chsDUTI, 4546, 8,
, 8, ----
11, CostGarryDucans, 4840, 6,
, 6, ----
12, CostGarryDucans, 5042, 8,
, 8, ----
13, CostGarryDucans, 5244, 10,
, 10, ----
14, CostGarryDucans, 5446, 8,
, 8, ----
15, CostGarryDucans, 5648, 5,
, 5, <tfoot></tfoot>

et on utilisant directement la requet prorposée plus haut ( sans jointure)
SELECT [Taille Stock].ID, [Taille Stock].Reference, [Taille
Stock].Taille, [Taille Stock].Quantite, [Somme Quantite TV].[Quantite
TV], [Taille Stock].Quantite-IIF(IsNull([Somme Quantite TV].[Quantite TV]),0,[Somme Quantite TV].[Quantite TV]) AS TOTO
FROM
[Taille Stock] INNER JOIN [Somme Quantite TV] ON ([Taille Stock].Taille
[Somme Quantite TV].Taille) AND ([Taille Stock].Reference [Somme
Quantite TV].Reference);

Requete 1 devient comme ceci,  aucun resultat

ID |Reference |Taille |Quantite |Quantite TV |TOTO |

ou est donc la faille mon ami?

Merci
Health & Peace
0
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008
6 avril 2008 à 20:40
Bonsoir,

Y a-t-il des suggestions SVP?  

Merci

Health & Peace
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
7 avril 2008 à 04:06
Salut,
Gardes les jointures 
Tous les enregistrements de Taille_Stock et seulement ceux de Somme Quantite TV pour lesquels les enregistrements joints sonr égaux

et au lieu de tester sur la nullité de Quantité on teste sur la nullité de Reference et/ou de Taille.

SELECT [Taille Stock].ID, [Taille Stock].Reference, [Taille Stock].Taille, [Taille Stock].Quantite, [Somme Quantite TV].[Quantite TV], [Taille Stock].Quantite-IIF(  OR  IsNull([Somme Quantite TV].[Taille])),0,[Somme Quantite TV].[Quantite TV]) AS TOTO
FROM [Taille Stock] INNER JOIN [Somme Quantite TV] ON ([Taille Stock].Taille = [Somme Quantite TV].Taille) AND ([Taille Stock].Reference = [Somme Quantite TV].Reference);

<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
/PRE>
0
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008
7 avril 2008 à 12:38
Bonjour,

Apres avoir garder les doubles jointures type: Tous les enregistrements de Taille_Stock et seulement ceux de Somme Quantite TV pour lesquels les enregistrements joints sonr égaux

le code devient comme ceci:

-------------------------
SELECT [Taille Stock].ID, [Taille Stock].Reference, [Taille Stock].Taille, [Taille Stock].Quantite, [Somme Quantite TV].[Quantite TV], [Taille Stock].Quantite-IIF(IsNull([Somme Quantite TV].[Reference])  OR  IsNull([Somme Quantite TV].[Taille]),0,[Somme Quantite TV].[Quantite TV]) AS TOTO
FROM [Taille Stock] LEFT JOIN [Somme Quantite TV] ON ([Taille Stock].Reference = [Somme Quantite TV].Reference) AND ([Taille Stock].Taille = [Somme Quantite TV].Taille);
-------------------------

et le resultat est comme cela:


 






<caption>
Requête1
</caption>

----

ID |
Reference |
Taille |
Quantite |
Quantite TV |
TOTO |

----

1,
chsAbate,
3738,
5,

,
5,

----

2,
chsAbate,
3940,
8,

,
8,

----

3,
chsAbate,
4142,
10,

,
10,

----

4,
chsAbate,
4344,
8,

,
8,

----

5,
chsAbate,
4546,
10,

,
10,

----

6,
chsDUTI,
3738,
6,

,
6,

----

7,
chsDUTI,
3940,
12,

,
12,

----

8,
chsDUTI,
4142,
9,

,
9,

----

9,
chsDUTI,
4344,
10,

,
10,

----

10,
chsDUTI,
4546,
8,

,
8,

----

11,
CostGarryDucans,
4840,
6,

,
6,

----

12,
CostGarryDucans,
5042,
8,

,
8,

----

13,
CostGarryDucans,
5244,
10,

,
10,

----

14,
CostGarryDucans,
5446,
8,

,
8,

----

15,
CostGarryDucans,
5648,
5,

,
5,

<tfoot>
</tfoot>


en utilisant ton code Texto (apres juste avoir enlevé une parenthese de trop...OR  IsNull([Somme Quantite TV].[Taille])),,  le resultat est comme celà:

ID |Reference |Taille |Quantite |Quantite TV |TOTO |

Voilà, merci q meme mon ami, j'espere seulement qu'une solution existe à ce probleme

Health & Peace
0
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008
9 avril 2008 à 12:37
Bonjour,

Des suggestions, propositions, SVP?

Merci.
Health & Peace
0
good speed Messages postés 35 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 avril 2008
26 avril 2008 à 21:33
Bonjour tout le monde et plus specialement à toi libre_max,

voilà, j'ai dejà posté mon problem mais ce dernier n'est toujours pas completement resolu, finalement j'ai trouvé la cause de tous mes soucis sauf que je ne sais pas comment y remedier

donc je vais expliquer comment access ne me renvoit pas les données souhaités

Dabord pour le code que tu m'as proposé Libre_max il est vrai que quand on l'applique sur des données brutes il marche très bien, par contre sur mon application ca marche pas vraiment

Au fait le problem reside dans le champ Taille de la table vente, et pour comprendre ce probleme il faut comprendre l'origine des données qui y figurent dans ce champ, c simple, j'ai un formulaire vente dont la source est la table [vente], et sur le formulaire vente il y a  un groupe d'optionsavec lequel je choisie la taille de chaque article pour la table vente, alors voici un echantillon  des tailles que j'utilise dans ces groupe d'options :

1-2-3-4-5-6-3738-3940-4142-...etc

Alors quand la taille est composée d'un nombre unique comme 1,2,3,4...j'ai le code proposé par libre_max qui marche très bien
par contre pour les champs qui ont comme taille nombre a quatre chiffres ca marche pas.

Pour rappel voici le code de libre_max  ainsi que les tables  en  question :

Dabord  le code:
---------------------------------------------------------------------------------
SELECT [Taille Stock].ID, [Taille Stock].Reference, [Taille Stock].Taille, [Taille Stock].Quantite, [Somme Quantite TV].[Quantite TV], [Taille Stock].Quantite-IIf(IsNull([Somme Quantite TV].Reference) Or IsNull([Somme Quantite TV].Taille),0,[Somme Quantite TV].[Quantite TV]) AS TOTO
FROM [Taille Stock] LEFT JOIN [Somme Quantite TV] ON ([Taille Stock].Reference = [Somme Quantite TV].Reference) AND ([Taille Stock].Taille = [Somme Quantite TV].Taille);
---------------------------------------------------------------------------------

Le resultat du code donne ceci:

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /><title>Requête1</title><caption> Requête1 </caption>----
ID |Reference |Taille |Quantite |Quantite TV |TOTO |----
1, chsAbate, 4142
, 5,
, 4, ----
2, chsAbate, 3940, 8,
, 8, ----
3, chsAbate, 4142, 10,
, 10, ----
4, chsAbate, 4344, 8,
, 8, ----
5, chsAbate, 3940, 10,
, 10, ----
6, PullSimonClk, 3, 6, 1, 5, ----
7, chsDUTI, 3738, 12,
, 12, ----
8, PullSimonClk, 5, 9, 2, 7, ----
9, chsDUTI, 4344, 10,
, 10, ----
10, chsDUTI, 4546, 8,
, 8, ----
11, CostGarryDucans, 4840, 6,
, 6, ----
12, CostGarryDucans, 5042, 8,
, 8, ----
13, CostGarryDucans, 5244, 10,
, 10, ----
14, PullSimonClk, 2, 8,
, 8, ----
15, CostGarryDucans, 5648, 5,
, 5, ----
16, JeanCelio, 44, 5,
, 5, ----
17, JeanCelio, 40, 6,
, 6, ----
18, JeanCelio, 48, 7,
, 7, ----
19, ptlGFD, 42, 5,
, 5, ----
20, PullSimonClk, 4, 3, 1, 2, <tfoot></tfoot>

Maintenant voici les tables et requete impliqués dans le code ci-dessus:

1- La requete [Somme Quantite TV]:

<meta http-equiv ="Content-Type" content= "text/html;charset=UTF-8" /><title>Somme Quantite TV</title><caption> Somme Quantite TV </caption>----
Reference |Taille |Quantite TV |----
chsAbate, 3738, 2, ----
chsAbate, 4142, 6, ----
chsAbate, 4344, 2, ----
ptlGFD, 42, 4, ----
JeanCelio, 40, 2, ----
JeanCelio, 44, 1, ----
JeanCelio, 48, 1, ----
CostGarryDucans, 5042, 1, ----
PullSimonClk, 3, 1, ----
PullSimonClk, 4, 1, ----
PullSimonClk, 5, 2, <tfoot></tfoot>

code:
-------------------------------------------------
SELECT vente.VenteID, vente.Reference, vente.Taille, Sum(vente.Quantite) AS [Quantite TV]
FROM vente
GROUP BY vente.VenteID, vente.Reference, vente.Taille;
--------------------------------------------------

Résultat du code de la requete [Somme Quantite TV]

Le champ taille de cette requete et issus de la table vente dont je parlais plus haut, et donc les données de ce champ sont inserées à l'aide du groupe d'option, et voici
la table vente:

<meta http-equiv ="Content-Type" content= "text/html;charset=UTF-8" /><title>vente</title><caption> vente </caption>----
VenteID |Reference |Taille |Quantite |----
1, chsAbate, 4142, 1, ----
2, chsAbate, 4142, 2, ----
3, JeanCelio, 44, 1, ----
4, chsAbate, 4344, 2, ----
5, JeanCelio, 40, 1, ----
6, CostGarryDucans, 5042, 1, ----
7, ptlGFD, 42, 1, ----
8, PullSimonClk, 5, 2, ----
9, ptlGFD, 42, 2, ----
10, chsAbate, 4142, 3, ----
11, JeanCelio, 48, 1, ----
12, chsAbate, 3738, 2, ----
13, PullSimonClk, 3, 1, ----
15, JeanCelio, 40, 1, ----
16, PullSimonClk, 4, 1, ----
17, ptlGFD, 42, 1, <tfoot></tfoot>

Pour chercher a comprendre je suis allé verifier le type de données des champs Reference et Taille dans la table Vente


et comme je le pensais J'ai trouvé type de données: Numerique pour les deux champs


Pour le champ Reference : Numerique, car c'est une liste de choix dont la source est la table Stock

pour le champ Taille    : Numerique, car le groupe d'option n'accepte que le type numerique


Pourriez vous eclairer ma lanterne sur ce problem SVP


Merci

Health & Peace

<meta http-equiv ="Content-Type" content="text/html;charset=UTF-8" /><title>vente</title><caption>

</caption>----
| | | |----
, , , , ----
, , , , ----
, , , , ----
, , , , ----
, , , , ----
, , , , ----
, , , , ----
, , , , ----
, , , , ----
, , , , ----
, , , , ----
, , , , ----
, , , , ----
, , , , ----
, , , , ----
, , , , <tfoot></tfoot>
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
27 avril 2008 à 00:28
Salut,
En effet, t' as sûrement dû constaté  que dans la colonne Taille  de la Requete 1.les données sont alignées à gauche.Preuve que ce champ est retourné comme String.
Ce champ étant issu de Taille_Stock, c' est qu' il est déjà à l' origine de type String.

<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
/PRE>
0
Rejoignez-nous