Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Simplification nombre de requête

24 réponses
Avatar
Hervé DUCARNE
Bonjour,

Une question simple :

J'ai une table avec une clé, et différents champs booléens.

Je voudrais connaitre, pour chaque champ, le nombre d'enregistrement à vrai.

Dans la requête pour calculer pour un champ, no problème, j'ai mis la clé,
dans opération je mets "compte", je mets le champ, et dans opération je mets
"où" et critère 'vrai'.

J'ai 100 champs ;-(

Il y a t'il un moyen qui puisse me permettre d'éviter de créer 100 requêtes
?

Merci.

10 réponses

1 2 3
Avatar
3stone
Salut,

"Hervé DUCARNE"
| Une question simple :
|
| J'ai une table avec une clé, et différents champs booléens.
|
| Je voudrais connaitre, pour chaque champ, le nombre d'enregistrement à vrai.
|
| Dans la requête pour calculer pour un champ, no problème, j'ai mis la clé,
| dans opération je mets "compte", je mets le champ, et dans opération je mets
| "où" et critère 'vrai'.
|
| J'ai 100 champs ;-(
|
| Il y a t'il un moyen qui puisse me permettre d'éviter de créer 100 requêtes
| ?



Tu as 100 champs boolean dans UN enregistrement ??


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Avatar
Hervé DUCARNE
"3stone" a écrit dans le message de
news:
Salut,

Tu as 100 champs boolean dans UN enregistrement ??


Bonjour,

Oui, au départ il s'agit d'un questionnaire fait sous excel.

Il y a une trentaine de questions, du genre "avez vous fait cela ? " : oui,
non, je ne sais pas, pas encore. "si non, dans combien de temps ? " : 1
mois, 1 an, 2 ans. Les personnes qui répondent au questionnaire mettent un
"1" dans la case (les cases pour certaines questions) qui correspond à leur
réponse.

J'ai rapatrié ces données dans une table access, via vba, tout marche bien.

J'ai donc un tas de champs booléens, un en fait à chaque réponse possible.
Dans mon exemple ci-dessus, ça fait 7 champs booléens.

C'est clair que j'aurais fait le questionnaire moi même, je l'aurai fait
direct dans access avec des listes déroulantes basées sur des tables, mais
là, on me sort il faudrait interpréter les réponses au questionnaire que
voici sous excel...

T'as une idée ou je vais me taper ces 100 requêtes ?

Merci.

Avatar
Dan
Salut Hervé,

Je ne voudrais pas avoir l'air d'un petit plaisantin, mais en ce qui me
concerne, j'exporterais volontiers les résultats sous .... Excel !

A+ Dan
Avatar
Hervé DUCARNE
Salut,

Euh oui, mais ce questionnaire a été envoyé par mail à 250 personnes, c'est
pour cela que j'ai fait un import de tous ces classeurs dans access...

Puis exploiter les données dans excel, c'est pas trop ma tasse de thé, excel
connais pas trop ;o(

"Dan" a écrit dans le message de
news:43325ccb$0$976$
Salut Hervé,

Je ne voudrais pas avoir l'air d'un petit plaisantin, mais en ce qui me
concerne, j'exporterais volontiers les résultats sous .... Excel !

A+ Dan




Avatar
Bauwens François
Je ne sais plus très bien comment ça fonctionne mais je sais que dans excel
si tu as la même mise en page partout, tu peux entrée une fonction qui dans
ta première feuille et lui demander de l'appliquer à toutes les autres...

"Hervé DUCARNE" a écrit dans le message de
news:%
Salut,

Euh oui, mais ce questionnaire a été envoyé par mail à 250 personnes,
c'est

pour cela que j'ai fait un import de tous ces classeurs dans access...

Puis exploiter les données dans excel, c'est pas trop ma tasse de thé,
excel

connais pas trop ;o(

"Dan" a écrit dans le message de
news:43325ccb$0$976$
Salut Hervé,

Je ne voudrais pas avoir l'air d'un petit plaisantin, mais en ce qui me
concerne, j'exporterais volontiers les résultats sous .... Excel !

A+ Dan








Avatar
Hervé DUCARNE
Merci,

Bon, apparemment il n'y a pas moyen, je vais donc me créer mes 100 requêtes,
ça va aller vite.

A+

"Bauwens François" a écrit dans le message de
news:
Je ne sais plus très bien comment ça fonctionne mais je sais que dans
excel

si tu as la même mise en page partout, tu peux entrée une fonction qui
dans

ta première feuille et lui demander de l'appliquer à toutes les autres...

"Hervé DUCARNE" a écrit dans le message de
news:%
Salut,

Euh oui, mais ce questionnaire a été envoyé par mail à 250 personnes,
c'est

pour cela que j'ai fait un import de tous ces classeurs dans access...

Puis exploiter les données dans excel, c'est pas trop ma tasse de thé,
excel

connais pas trop ;o(

"Dan" a écrit dans le message de
news:43325ccb$0$976$
Salut Hervé,

Je ne voudrais pas avoir l'air d'un petit plaisantin, mais en ce qui
me



concerne, j'exporterais volontiers les résultats sous .... Excel !

A+ Dan












Avatar
Hervé DUCARNE
Bonjour,

Ah, une piste ! En plus, les champs dans ma table sont nommés 1, 2, 3... etc

Qui peux me filer un coup de main please ?

Merci.


"Jimmy Limousin" a écrit dans le message de
news:
jeu. 22 sept. 2005 11:34:52 Hervé DUCARNE a écrit dans le message de news
<news:# :

Merci,

Bon, apparemment il n'y a pas moyen, je vais donc me créer mes 100
requêtes, ça va aller vite.


Passez par un générateur en VBA.

Vous écrivez le corps de la première requête et vous changez le contenu
dans

une boucle.

--
Quand Jimmy dit what'd I say
I love you baby
C'est comme qui dirait
Toute la province qui chante en anglais




Avatar
Hervé DUCARNE
Re,

Ca a pas l'air mal, je l'ai adaptée comme cela, mais rien ne se crée :
Sub CreerRequetes()
Dim dbbd As Database
Dim qdReq As QueryDef
Dim stSql As String
Dim i As Long

Set dbbd = CurrentDb
For i = 1 To 100
stql = "SeLECT Count(donnees.ci_donnees) AS " & i & "FROM donnees "
& "WHERE donnees." & i & "=True " & ";"

Set qdReq = dbbd.CreateQueryDef()
qdReq.Sql = stSql
qdReq.Name = "Tester_Champ_" & Format(i, "00")
Next

End Sub

T'as (encore) une idée Jimmy ?

Un truc dans ce genre :

Sub CreerRequetes()
Dim dbbd As Database
Dim qdReq As QueryDef
Dim stSql As String
Dim i As Long

Set dbbd = CurrentDb
For i = 1 To 100
stql = "select * from Latable where Champ" & Format(i, "00") & " > true;"
Set qdReq = dbbd.CreateQueryDef()
qdReq.Sql = stSql
qdReq.Name = "Tester_Champ_" & Format(i, "00")
Next

End Sub

--
Quand Jimmy dit what'd I say
I love you baby
C'est comme qui dirait
Toute la province qui chante en anglais



Avatar
Hervé DUCARNE
Re,

Elle me plait car elle devrait fonctionner, mais aucune requête n'est créée
(pas de message d'erreur pas contre).

Par contre pour ton autre idée, laisse tomber. Ce questionnaire a été créé,
les personnes renvoies leur fichier excel une bonne fois pour toute, et
basta. Il ne re servira plus...

Tu vois pas pourquoi elle ne fais rien cette fonction please ??

Merci.


"Jimmy Limousin" a écrit dans le message de
news:
jeu. 22 sept. 2005 13:58:10 Hervé DUCARNE a écrit dans le message de news
<news:# :

T'as (encore) une idée Jimmy ?


Oui, pleins. Elle te plait pas ma fonction ?

Sinon, de manière générale :

Structurer le questionnaire tel que tu l'aurais fais si tu avais dû le
produire avec Access.

A partir de là, parcourir l'ensemble de la table, faire un recensement de
toutes les occurrences des réponses, les compiler dans des tables
indépendantes indexées, créer une nouvelle table principale et l'alimenter
à

partir des informations collectées.

Voilà, comme ça tu auras une VRAIE base de données et tu n'auras plus
besoin

de lancer 100 requêtes pour consolider l'analyse.

:))

--
Quand Jimmy dit what'd I say
I love you baby
C'est comme qui dirait
Toute la province qui chante en anglais




Avatar
Hervé DUCARNE
C'est parfait, ça tourne du feu de dieu !

Merci encore.

@+


"Jimmy Limousin" a écrit dans le message de
news:
jeu. 22 sept. 2005 14:16:14 Hervé DUCARNE a écrit dans le message de news
<news:uLsHi# :

Tu vois pas pourquoi elle ne fais rien cette fonction please ??


Voilà ce que j'ai testé.

En dehors du fait que dans ta requête tu nommes la somme du même nom que
le

champs, c'est pas beau, j'ai mis le champ entre crochets et parenthésé.
Pour

tout dire j'ai fait un copier coller de la chaine sql depuis l'assistant
pour

rédiger le squelette de la première requête, après tu fais tourner le i.

Il faut aussi rafraichir la collection de requêtes avec un append.

Aussi, il faut voir si tes champs sont numérotés de 1 à 100 sans format ou
sur deux ou trois digits, auquel cas, utiliser la fonction format(), je
trouve ça plus propre de manipuler des indices formatés.

Sub CreerRequetes()
Dim dbbd As Database
Dim qdReq As QueryDef
Dim stSql As String
Dim i As Long

Set dbbd = CurrentDb
For i = 1 To 3
stSql = "SELECT Count(donnees.ci_donnees) AS CompteDeci_donnees
FROM

donnees WHERE (((donnees.[" & CStr(i) & "])=True));"
Set qdReq = dbbd.CreateQueryDef()
qdReq.SQL = stSql
qdReq.Name = "Tester_Champ_" & Format(i, "00")
dbbd.QueryDefs.Append qdReq
Next

End Sub

--
Quand Jimmy dit what'd I say
I love you baby
C'est comme qui dirait
Toute la province qui chante en anglais




1 2 3