Comment voir le nombre total d'un article dans une base de donnée

Résolu
petiflamand
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
- 3 avril 2008 à 19:23
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
- 7 avril 2008 à 09:59
Bonjour , j'ai une base de donnée avec une table journalier, la dedans ce trouve des articles vendus
j'ai ex:
Codebar,prix,quantité,département,groupe,ect.......
dans la vente de la journée il y a plusieur fois la même chose,
donc je vend peu etre 10 X cocacola 50Xpepsi ect......

j'ai fait le code si dessous pour calculer le nombre total d'article.
comment faire pour aller plus vite ??????
évidament je n'ai pas de référence d'article pour le controle puisque on ne sait pas ce qui vas etre vendu.
Merci

nitul = 0
qqaa = 0
Set db = OpenDatabase(App.Path & "\manager.mdb")
Set rs = db.OpenRecordset("journalier")
If rs.RecordCount > 0 Then
 Set rd = db.OpenRecordset("journalier")
 rs.MoveFirst


 Do Until rs.EOF = True
 nitul = rs!cod_prod
  rd.MoveFirst
 Do Until rd.EOF = True
 If rd!cod_prod = nitul Then
 nitul1 = nitul1 + rd!quantité
 End If
 rd.MoveNext
 Loop
 
Set rt = db.OpenRecordset("journalier_detaille")
If rt.RecordCount > 0 Then
rt.MoveFirst
 Do Until rt.EOF = True
If rt!cod_prod = nitul Then
qqaa = 1
End If
rt.MoveNext
Loop
End If
If qqaa = 0 Then
rt.AddNew
rt!cod_prod = rs!cod_prod
rt!design = rs!design
rt!numero_dep = rs!numero_dep
rt!departement = rs!departement
rt!quantité = nitul1


rt.Update
End If
nitul1 = 0
qqaa = 0
 rs.MoveNext
 Loop
 End If

14 réponses

Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
5 avril 2008 à 15:18
t'as pas suivi:

set db = OpenDatabase(App.Path & "\manager.mdb")
set rs = db.OpenRecordset("SELECT cod_prod, SUM(Quantité),design......"

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
16
3 avril 2008 à 20:29
Je sais c'est php mais le sql n'est qu'à adapter !!
http://www.siteduzero.com/tuto-3-140-1-lire-des-donnees.html#ss_part_4
_______________________________________________________________________
VB.NETis good ...VB6is better
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
4 avril 2008 à 09:36
clair que l'approche par Recordset est plus lente (tu récupères toutes tes données...)
mais là, elle est particulièrement maladroite (pas une seule requete)
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
4 avril 2008 à 09:44
par exemple:

SELECT cod_prod,SUM(Quantité),design,numero_dep,departement FROM journalier GROUP BY cod_prod,design,numero_dep,departement

te permet de récupérer le cumul d'articles vendus
0

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

Posez votre question
cs_EBArtSoft
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
4 avril 2008 à 10:54
On oublie l'acces a "recordcount" et on fait une requete en  "SELECT Count(*) AS Total
FROM MaTable;"

@+

E.B.
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
4 avril 2008 à 11:00
clair...

me semble même que SELECT COUNT(0) ...

a confirmer par les SQLpros
0
petiflamand
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
4 avril 2008 à 18:34
Bonjour et Merci de vos réponse, je suis super novice en sql .

pour la requete
db.execute "SELECT cod_prod,SUM(Quantité),design,numero_dep,departement FROM journalier GROUP BY cod_prod,design,numero_dep,departement"
il me dit : impossible de faire une requete de  selection

et le total n'est pas de tout les articles mais le total des articles par numéro 
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
4 avril 2008 à 22:08
pour un Select, faut un OpenRecordSet
0
petiflamand
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
5 avril 2008 à 07:09
oui sa je sait et je l'ai fait
avec Set rs = db.OpenRecordset("journalier")
mais c'est le même résultat
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
5 avril 2008 à 07:46
hein ? il te dit encore "impossible de faire une requete selection ?"
0
petiflamand
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
5 avril 2008 à 08:06
Bonjour , oui il me mes encore ce message
0
petiflamand
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
6 avril 2008 à 10:03
Bonjour
Voici ce que j'ai fait


Set db = OpenDatabase(App.Path & "\manager.mdb")
Set rs = db.OpenRecordset("SELECT cod_prod,SUM(quantité),design,numero_dep,departement FROM moi GROUP BY cod_prod,design,numero_dep,departement")


qtt1 = rs!design il me donne COCA-COLA
qtt2 = rs!cod_prod il me donne 1
qtt3 = rs!quantité il me donne élément non trouvé dans c'ette sélection
et pourtant il y est
il  y a 10 X COCA-COLA DANS LA BASE DE DONNEE
ps:le champs rs!quantité est numérique je sait pas si sa fait quelque chose

Merci pour votre aide
0
petiflamand
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
6 avril 2008 à 10:20
Voila sa fonctionne avec ceci

Set rs = db.OpenRecordset("SELECT cod_prod,SUM(quantité) as total_article,design,numero_dep,departement FROM moi GROUP BY cod_prod,design,numero_dep,departement")
rs.MoveFirst
Do Until rs.EOF = True
 qqt = rs!total_article
qtt1 = rs!design
qtt2 = rs!cod_prod
rs.MoveNext
Loop
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
7 avril 2008 à 09:59
ok, effectivement un alias de champ peut aider ^^

tu devrais avoir de meilleures performances qu'avec ton ancien code
0