OVH Cloud OVH Cloud

Probleme de statisiques

10 réponses
Avatar
Sergio
Bonjour à tous

Je débute et malgré tous mes efforts et les exemples que j'ai pu récolter ça
et la , ça ne marche pas !

Voilà, je voudrais faire des stats sur une requête, c'est à dire compter
pour un champs le nombre d'enregistrements dont la valeur est identique.

Pour le reste , choix des champs et des valeurs, je dois pouvoir y arriver.

Mais si je pouvais avoir un petit exemple tout simple et qui marche ce
serait formidable.

Par exemple avec :

Base = bas.mdb
Requête = req
Champs = chp
Valeur comptée = val
Nombre calculé = nbr

Si je pouvais arrêter de tourner en rond avec tous ces round et ces select
.....

Merci d'avance Sergio.

10 réponses

Avatar
Raymond [mvp]
Bonjour.

pour faire des comptages et ce genre de calcul il faut passer par une
opération de regroupement (icône sigma du menu, totaux dans bulle d'aide).
exemple simple en sql:
SELECT Table1.Numero, Count(Table1.Numero) AS CompteDeNumero
FROM Table1
GROUP BY Table1.Numero;

N'utilise jamais le mot Val car c'est un mot réservé access.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Sergio" a écrit dans le message de
news:3fd59306$0$6966$
Bonjour à tous

Je débute et malgré tous mes efforts et les exemples que j'ai pu récolter
ça

et la , ça ne marche pas !

Voilà, je voudrais faire des stats sur une requête, c'est à dire compter
pour un champs le nombre d'enregistrements dont la valeur est identique.

Pour le reste , choix des champs et des valeurs, je dois pouvoir y
arriver.


Mais si je pouvais avoir un petit exemple tout simple et qui marche ce
serait formidable.

Par exemple avec :

Base = bas.mdb
Requête = req
Champs = chp
Valeur comptée = val
Nombre calculé = nbr

Si je pouvais arrêter de tourner en rond avec tous ces round et ces select
.....

Merci d'avance Sergio.




Avatar
Sergio
Resalut

Je ne sais pas même ou est passée ma réponse ni ou va atterrir celle-ci!
j'ai du progrès à faire.

Autre problème, quand je fais par exemple :

SELECT rqt.val1, Count(rqt.val1) AS Nbval FROM rqt GROUP BY rqt.val1;

ça me répond "Erreur de compilation attendu case"
Même quand je modifie les paramètres.

Pourquoi tant de haine ?


"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

pour faire des comptages et ce genre de calcul il faut passer par une
opération de regroupement (icône sigma du menu, totaux dans bulle d'aide).
exemple simple en sql:
SELECT Table1.Numero, Count(Table1.Numero) AS CompteDeNumero
FROM Table1
GROUP BY Table1.Numero;

N'utilise jamais le mot Val car c'est un mot réservé access.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Sergio" a écrit dans le message de
news:3fd59306$0$6966$
Bonjour à tous

Je débute et malgré tous mes efforts et les exemples que j'ai pu
récolter


ça
et la , ça ne marche pas !

Voilà, je voudrais faire des stats sur une requête, c'est à dire compter
pour un champs le nombre d'enregistrements dont la valeur est identique.

Pour le reste , choix des champs et des valeurs, je dois pouvoir y
arriver.


Mais si je pouvais avoir un petit exemple tout simple et qui marche ce
serait formidable.

Par exemple avec :

Base = bas.mdb
Requête = req
Champs = chp
Valeur comptée = val
Nombre calculé = nbr

Si je pouvais arrêter de tourner en rond avec tous ces round et ces
select


.....

Merci d'avance Sergio.








Avatar
Raymond [mvp]
Bonjour.

ce que je t'ai donné c'est le texte de la requête à exécuter mais pas les
instructions vba pour exécuter cette requête. soit tu crées une requête avec
ces instructions et tu exécute la requête, soit tu ouvres un recordset avec
ces instructions. Le point à définir est : que veux-tu faire de cette
requête ? un état ? parcourir cette requête pour faire autre chose en vba ?
......

à suivre....
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Sergio" a écrit dans le message de
news:3fd72217$0$6970$
Resalut

Je ne sais pas même ou est passée ma réponse ni ou va atterrir celle-ci!
j'ai du progrès à faire.

Autre problème, quand je fais par exemple :

SELECT rqt.val1, Count(rqt.val1) AS Nbval FROM rqt GROUP BY rqt.val1;

ça me répond "Erreur de compilation attendu case"
Même quand je modifie les paramètres.

Pourquoi tant de haine ?



Avatar
Sergio
ah la la tout ce que je voudrais faire avec ça !

merci d'abord de t'interresser à mon cas

Une fois que j'aurais compté toutes les valeurs identiques dans chaque
champs (et il y en a pas mal !) je voudrais récupérer tous ces montants
représentés par des variables et les utiliser par exemple dans un état pour
sortir un document statistique de date à date.

Tant de : isolé(e)
Tant de : isolé(e) avec enfants
etc. etc.

La requête de date à date existe je ne veux utiliser que les variables aprés
comptage.

A+ Sergio.



"Raymond [mvp]" a écrit dans le message de
news: #
Bonjour.

ce que je t'ai donné c'est le texte de la requête à exécuter mais pas les
instructions vba pour exécuter cette requête. soit tu crées une requête
avec

ces instructions et tu exécute la requête, soit tu ouvres un recordset
avec

ces instructions. Le point à définir est : que veux-tu faire de cette
requête ? un état ? parcourir cette requête pour faire autre chose en vba
?

......

à suivre....
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Sergio" a écrit dans le message de
news:3fd72217$0$6970$
Resalut

Je ne sais pas même ou est passée ma réponse ni ou va atterrir celle-ci!
j'ai du progrès à faire.

Autre problème, quand je fais par exemple :

SELECT rqt.val1, Count(rqt.val1) AS Nbval FROM rqt GROUP BY rqt.val1;

ça me répond "Erreur de compilation attendu case"
Même quand je modifie les paramètres.

Pourquoi tant de haine ?







Avatar
Raymond [mvp]
si c'est pour un état:
crée une requête enregistrée qui fonctionne.
avec l'assistant crée un état basé sur cette requête.
si ta requête n'a qu'un seul enregistrement fait ton état en vertical, si tu
en as plusieurs fais ton état en horizontal ou vertical et mets en forme ta
présentation pour la rendre plus lisible.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Sergio" a écrit dans le message de
news:3fd7422e$0$6974$
ah la la tout ce que je voudrais faire avec ça !

merci d'abord de t'interresser à mon cas

Une fois que j'aurais compté toutes les valeurs identiques dans chaque
champs (et il y en a pas mal !) je voudrais récupérer tous ces montants
représentés par des variables et les utiliser par exemple dans un état
pour

sortir un document statistique de date à date.

Tant de : isolé(e)
Tant de : isolé(e) avec enfants
etc. etc.

La requête de date à date existe je ne veux utiliser que les variables
aprés

comptage.



Avatar
Sergio
Pour éditer l'état, je pense avoir compris, mais entre la requête complète
qui marche et l'état fini, comment compter toutes ces valeurs de champs.

A moins que le calcul puisse se faire directement dans l'assitant d'état ou
dans les propriétés de l'état ?

Sinon j'en suis toujours tourner en rond pour faire cette formule avec
select et count pour extraire le nombre de valeurs identiques dans chaque
champs de la requête.

A+



"Raymond [mvp]" a écrit dans le message de
news:
si c'est pour un état:
crée une requête enregistrée qui fonctionne.
avec l'assistant crée un état basé sur cette requête.
si ta requête n'a qu'un seul enregistrement fait ton état en vertical, si
tu

en as plusieurs fais ton état en horizontal ou vertical et mets en forme
ta

présentation pour la rendre plus lisible.
--
@+


Avatar
Raymond [mvp]
tu as fait ta requête regroupement avec tous tes champs ? si oui fais ton
état par l'assistant.

si tu n'y arrives pas reviens ici pour que tu avances.


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Sergio" a écrit dans le message de
news:br7luf$rb3$
Pour éditer l'état, je pense avoir compris, mais entre la requête complète
qui marche et l'état fini, comment compter toutes ces valeurs de champs.

A moins que le calcul puisse se faire directement dans l'assitant d'état
ou

dans les propriétés de l'état ?

Sinon j'en suis toujours tourner en rond pour faire cette formule avec
select et count pour extraire le nombre de valeurs identiques dans chaque
champs de la requête.



Avatar
Sergio
Boujour me revoilà!

j'ai essayé directement dans l'état mais ça ne marche pas.
De plus j'ai besoin de garder la valeur de toutes les variables de comptage.
Donc je suis revenu à mes essais de comptage

Voici ce que j'ai essayé :
(J'ai remplacé les vrais noms par des noms plus simples)

La base : Mabase.mdb
La requête : MaRequete
Les champs qui contienent les valeurs : chp1, chp2 etc...
Les diverses valeurs : Val1, Val2 etc...
En sachant que j'ai plein de champs avec une dizaines de valeur dans chaque
(mais si j'y arrive pour un je dois y arriver pour les autres)
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Public Sub Compte_stats()

Dim Nbval As Long

' Selectionner la Base (est-ce bien utile puisqu'elle est ouverte ? )
Dim dbs As Database, rst As Recordset
Set dbs = OpenDatabase("MaBase.mdb")

' Selectionner la 1ere Requete
Dim rqt As String
rqt = "MaRequete_R"

' Selectionner les Champs
Dim chp1 As String, chp2 as string, chp3 as string 'etc...


' Selectionner la première valeur à compter
Dim val1 As String, val2 as string
val1 = "Valeur1"

' Un de mes essais de comptage ET C'EST LA QUE CA SE COMPLIQUE !!!

Set rst = dbs.OpenRecordset("select count(*) as Nbval1 from rqt where = chp1
= val1;")

' J'ai toujours le message qu' il ne trouve pas ma requête ou qu'elle
n'existe pas.

MsgBox ("La variable Nbval = " & Nbval)
End Sub


A+ Sergio

"Raymond [mvp]" a écrit dans le message de
news:
tu as fait ta requête regroupement avec tous tes champs ? si oui fais ton
état par l'assistant.

si tu n'y arrives pas reviens ici pour que tu avances.


Avatar
Raymond [mvp]
Bonjour.

au vu de te parocédure,
Passe par la fonction dcount et ça remplacera toute ta procédure avec par
exemple:
Me.résultat1 = DCount("chp1", "MaRequete_R", "[chp1] ='" & Me.Val1 & "'")
Me.résultat2 = DCount("chp1", "MaRequete_R", "[chp1] ='" & Me.Val2 & "'")
Me.résultat3 = DCount("chp2", "MaRequete_R", "[chp2] ='" & Me.Val1 & "'")
Me.résultat4 = DCount("chp2", "MaRequete_R", "[chp2] ='" & Me.Val2 & "'")
et ainsi de suite pour chaque comptage.
il doit même y avoir une possibilité de boucle, je pense.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Sergio" a écrit dans le message de
news:3fd82f7d$0$6974$
Boujour me revoilà!

j'ai essayé directement dans l'état mais ça ne marche pas.
De plus j'ai besoin de garder la valeur de toutes les variables de
comptage.

Donc je suis revenu à mes essais de comptage

Voici ce que j'ai essayé :
(J'ai remplacé les vrais noms par des noms plus simples)

La base : Mabase.mdb
La requête : MaRequete
Les champs qui contienent les valeurs : chp1, chp2 etc...
Les diverses valeurs : Val1, Val2 etc...
En sachant que j'ai plein de champs avec une dizaines de valeur dans
chaque

(mais si j'y arrive pour un je dois y arriver pour les autres)
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Public Sub Compte_stats()

Dim Nbval As Long

' Selectionner la Base (est-ce bien utile puisqu'elle est ouverte ? )
Dim dbs As Database, rst As Recordset
Set dbs = OpenDatabase("MaBase.mdb")

' Selectionner la 1ere Requete
Dim rqt As String
rqt = "MaRequete_R"

' Selectionner les Champs
Dim chp1 As String, chp2 as string, chp3 as string 'etc...


' Selectionner la première valeur à compter
Dim val1 As String, val2 as string
val1 = "Valeur1"

' Un de mes essais de comptage ET C'EST LA QUE CA SE COMPLIQUE !!!

Set rst = dbs.OpenRecordset("select count(*) as Nbval1 from rqt where chp1
= val1;")

' J'ai toujours le message qu' il ne trouve pas ma requête ou qu'elle
n'existe pas.

MsgBox ("La variable Nbval = " & Nbval)
End Sub


Avatar
Sergio
OK C'est super j'ai réussis.... (presque tout seul !)

Merci beaucoup et je vais affiner tout ça.

A bientôt

Sergio

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

au vu de te parocédure,
Passe par la fonction dcount et ça remplacera toute ta procédure avec par
exemple:
Me.résultat1 = DCount("chp1", "MaRequete_R", "[chp1] ='" & Me.Val1 & "'")
Me.résultat2 = DCount("chp1", "MaRequete_R", "[chp1] ='" & Me.Val2 & "'")
Me.résultat3 = DCount("chp2", "MaRequete_R", "[chp2] ='" & Me.Val1 & "'")
Me.résultat4 = DCount("chp2", "MaRequete_R", "[chp2] ='" & Me.Val2 & "'")
et ainsi de suite pour chaque comptage.
il doit même y avoir une possibilité de boucle, je pense.
--
@+