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

compter cases à cocher dans état

14 réponses
Avatar
C15
Bonjour =E0 toutes et =E0 tous,

J'ai un =E9tat qui r=E9capitule, pour des membres d'une association, leur p=
r=E9sence aux Ag
Ag00, Ag01, Ag02...
sous la forme de cases =E0 cocher, coch=E9es ou pas selon leur pr=E9sence.
Du fait du nombre d'ann=E9es pour certains, cela commence =E0 prendre trop =
de place.

Je voudrais cr=E9er un contr=F4le ind=E9pendant qui me compte combien de fo=
is un membre a =E9t=E9 pr=E9sent aux Ag entre sa date d'adh=E9sion [DateAdh=
esion]et l'ann=E9e 2010.
J'ai essay=E9 avec CpteDom(...)mais je me plante dans la syntaxe.
Par mieux en essayant une requ=EAte analyse crois=E9e.
Pour info je suis sous Access 2003.

Merci de votre aide.
A+

10 réponses

1 2
Avatar
db
Le 25/02/2013 14:19, C15 a écrit :
Bonjour à toutes et à tous,

J'ai un état qui récapitule, pour des membres d'une association, leur présence aux Ag
Ag00, Ag01, Ag02...
sous la forme de cases à cocher, cochées ou pas selon leur présence.
Du fait du nombre d'années pour certains, cela commence à prendre trop de place.

Je voudrais créer un contrôle indépendant qui me compte combien de fois un membre a été présent aux Ag entre sa date d'adhésion [DateAdhesion]et l'année 2010.
J'ai essayé avec CpteDom(...)mais je me plante dans la syntaxe.
Par mieux en essayant une requête analyse croisée.
Pour info je suis sous Access 2003.

Merci de votre aide.
A+




Avoir une description des tables utilisées serait d'une grande aide pour
répondre à la question...

db
Avatar
C15
Le mardi 26 février 2013 08:34:00 UTC+1, db a écrit :
Le 25/02/2013 14:19, C15 a écrit :

> Bonjour à toutes et à tous,

>

> J'ai un état qui récapitule, pour des membres d'une association, le ur présence aux Ag

> Ag00, Ag01, Ag02...

> sous la forme de cases à cocher, cochées ou pas selon leur présen ce.

> Du fait du nombre d'années pour certains, cela commence à prendre t rop de place.

>

> Je voudrais créer un contrôle indépendant qui me compte combien d e fois un membre a été présent aux Ag entre sa date d'adhésion [Dat eAdhesion]et l'année 2010.

> J'ai essayé avec CpteDom(...)mais je me plante dans la syntaxe.

> Par mieux en essayant une requête analyse croisée.

> Pour info je suis sous Access 2003.

>

> Merci de votre aide.

> A+

>



Avoir une description des tables utilisées serait d'une grande aide pou r

répondre à la question...



db



Bonjour db,

J'ai une table principale T Adhérents avec, entre autres comme champs
NAdherent Nom Prenom Adresse...DateAdhesion Ag00 Ag01 Ag02 Ag03...
Ces derniers champs sont de type Oui/Non, contrôle sous forme de case à cocher.

J'ai fait une requête avec les principaux champs que je veux afficher dan s un état comme les coordonnées des adhérents (adresse, téléphone , mail...), ainsi que leur présence aux différentes AG depuis leur entr ée dans l'asso.
C'est sur cette requête qu'est basé cet état, en fait l'annuaire de l 'assocation.

Merci de ton aide.
A+
C15
Avatar
Blaise
Le mardi 26 février 2013 11:11:14 UTC+1, C15 a écrit :
Le mardi 26 février 2013 08:34:00 UTC+1, db a écrit :

> Le 25/02/2013 14:19, C15 a écrit :

>

> > Bonjour à toutes et à tous,

>

> >

>

> > J'ai un état qui récapitule, pour des membres d'une association, leur présence aux Ag

>

> > Ag00, Ag01, Ag02...

>

> > sous la forme de cases à cocher, cochées ou pas selon leur prés ence.

>

> > Du fait du nombre d'années pour certains, cela commence à prendre trop de place.

>

> >

>

> > Je voudrais créer un contrôle indépendant qui me compte combien de fois un membre a été présent aux Ag entre sa date d'adhésion [D ateAdhesion]et l'année 2010.

>

> > J'ai essayé avec CpteDom(...)mais je me plante dans la syntaxe.

>

> > Par mieux en essayant une requête analyse croisée.

>

> > Pour info je suis sous Access 2003.

>

> >

>

> > Merci de votre aide.

>

> > A+

>

> >

>

>

>

> Avoir une description des tables utilisées serait d'une grande aide p our

>

> répondre à la question...

>

>

>

> db



Bonjour db,



J'ai une table principale T Adhérents avec, entre autres comme champs

NAdherent Nom Prenom Adresse...DateAdhesion Ag00 Ag01 Ag02 Ag03...

Ces derniers champs sont de type Oui/Non, contrôle sous forme de case à cocher.



J'ai fait une requête avec les principaux champs que je veux afficher d ans un état comme les coordonnées des adhérents (adresse, télépho ne, mail...), ainsi que leur présence aux différentes AG depuis leur en trée dans l'asso.

C'est sur cette requête qu'est basé cet état, en fait l'annuaire de l'assocation.



Merci de ton aide.

A+

C15



Bonjour C15
Il aurait fallut 3 tables : une table Adhérents, une table Assemblées e t une table Présences. Là, on aurait pu faire du comptage.
Bien à toi
Avatar
db
Le 26/02/2013 11:11, C15 a écrit :

Bonjour db,

J'ai une table principale T Adhérents avec, entre autres comme champs
NAdherent Nom Prenom Adresse...DateAdhesion Ag00 Ag01 Ag02 Ag03...
Ces derniers champs sont de type Oui/Non, contrôle sous forme de case à cocher.

J'ai fait une requête avec les principaux champs que je veux afficher dans un état comme les coordonnées des adhérents (adresse, téléphone, mail...), ainsi que leur présence aux différentes AG depuis leur entrée dans l'asso.
C'est sur cette requête qu'est basé cet état, en fait l'annuaire de l'assocation.

Merci de ton aide.
A+
C15







Une solution pas très élégante, et dont je ne suis pas sûr qu'elle
fonctionne sous Access 2003 :

- créer un contrôle dans le détail de l'état pour afficher le nombre de
présences (par exemple : NbPrésences)
- créer l'événement Au Formatage de la section détail en y mettant cette
ligne :


Me.NbPrésences.Value = DonnePrésences(Me.NAdherent.Value)


et coller cette fonction dans le même module :

Function DonnePrésences(nAdh As Integer)
Dim db As DAO.Database, rst As DAO.Recordset, fld As Field, n As Byte
Set db = CurrentDb
n = 0
Set rst = db.OpenRecordset("select * from T_Adhérents where NAdhherent="
& nAdh)
For Each fld In rst.Fields
If fld.Type = dbBoolean and left(fld.name,2)="Ag" Then
n = n - fld.Value
End If
Next
Set rst = Nothing
Set db = Nothing
DonnePrésences = n
End Function


Bien sûr, il faut adapter le nom des contrôles...

Je répète : c'est lourdingue, et il vaudrait mieux suivre les conseils
de Blaise...

db
Avatar
C15
Le mardi 26 février 2013 11:53:00 UTC+1, Blaise a écrit :
Le mardi 26 février 2013 11:11:14 UTC+1, C15 a écrit :

> Le mardi 26 février 2013 08:34:00 UTC+1, db a écrit :

>

> > Le 25/02/2013 14:19, C15 a écrit :

>

> >

>

> > > Bonjour à toutes et à tous,

>

> >

>

> > >

>

> >

>

> > > J'ai un état qui récapitule, pour des membres d'une association , leur présence aux Ag

>

> >

>

> > > Ag00, Ag01, Ag02...

>

> >

>

> > > sous la forme de cases à cocher, cochées ou pas selon leur pr ésence.

>

> >

>

> > > Du fait du nombre d'années pour certains, cela commence à prend re trop de place.

>

> >

>

> > >

>

> >

>

> > > Je voudrais créer un contrôle indépendant qui me compte combi en de fois un membre a été présent aux Ag entre sa date d'adhésion [DateAdhesion]et l'année 2010.

>

> >

>

> > > J'ai essayé avec CpteDom(...)mais je me plante dans la syntaxe.

>

> >

>

> > > Par mieux en essayant une requête analyse croisée.

>

> >

>

> > > Pour info je suis sous Access 2003.

>

> >

>

> > >

>

> >

>

> > > Merci de votre aide.

>

> >

>

> > > A+

>

> >

>

> > >

>

> >

>

> >

>

> >

>

> > Avoir une description des tables utilisées serait d'une grande aide pour

>

> >

>

> > répondre à la question...

>

> >

>

> >

>

> >

>

> > db

>

>

>

> Bonjour db,

>

>

>

> J'ai une table principale T Adhérents avec, entre autres comme champs

>

> NAdherent Nom Prenom Adresse...DateAdhesion Ag00 Ag01 Ag02 Ag03...

>

> Ces derniers champs sont de type Oui/Non, contrôle sous forme de case à cocher.

>

>

>

> J'ai fait une requête avec les principaux champs que je veux afficher dans un état comme les coordonnées des adhérents (adresse, télép hone, mail...), ainsi que leur présence aux différentes AG depuis leur entrée dans l'asso.

>

> C'est sur cette requête qu'est basé cet état, en fait l'annuaire de l'assocation.

>

>

>

> Merci de ton aide.

>

> A+

>

> C15



Bonjour C15

Il aurait fallut 3 tables : une table Adhérents, une table Assemblées et une table Présences. Là, on aurait pu faire du comptage.

Bien à toi



Bonjour Blaise,

Je viens de modifier la structure de ma base (j'en avais hérité telle q uelle) avec une T Adhérents (j'y ai gardé toutes les infos personnelles ) et une TAG où j'ai mes cases à cocher AG83 AG84...avec bien sûr une relation /intégrité référentielle par N°Adhérent.

La requête SQL de mon état devient alors :
SELECT [T Adhérents].*, TAG.AG83, TAG.AG84, TAG.AG85, TAG.AG86, TAG.AG87, TAG.AG88, TAG.AG89, TAG.AG90, TAG.AG91, TAG.AG92, TAG.AG93, TAG.AG94, TAG. AG95, TAG.AG96, TAG.AG97, TAG.AG98, TAG.AG99, TAG.AG00, TAG.AG01, TAG.AG02, TAG.AG03, TAG.AG04, TAG.AG05, TAG.AG06, TAG.AG07, TAG.AG08, TAG.AG09, TAG. AG10, TAG.AG11, TAG.AG12, TAG.AG13, TAG.AG14, TAG.AG15, TAG.AG16, TAG.AG17, TAG.AG18, TAG.AG19, TAG.AG20, TAG.AG21, TAG.AG22, TAG.AG23, TAG.AG24, TAG. AG25, TAG.AG26, TAG.AG27, TAG.AG28, TAG.AG29, TAG.AG30, TAG.AG31, TAG.AG32, TAG.AG33, TAG.AG34, TAG.AG35
FROM [T Adhérents] INNER JOIN TAG ON [T Adhérents].N°Adherent = TAG .N°Adherent
WHERE ((([T Adhérents].Nom)<"b") AND (([T Adhérents].Adherent)=True))
ORDER BY [T Adhérents].Nom;

Est-ce exploitable pour mon décompte?
Sinon je ne vois pas trop comment créer et organiser les T Assemblées e t Présences dont tu parles.

Merci de ton aide.
A+

C15
Avatar
C15
Le mardi 26 février 2013 13:30:45 UTC+1, db a écrit :
Le 26/02/2013 11:11, C15 a �crit :



> Bonjour db,

>

> J'ai une table principale T Adh�rents avec, entre autres comme champs

> NAdherent Nom Prenom Adresse...DateAdhesion Ag00 Ag01 Ag02 Ag03...

> Ces derniers champs sont de type Oui/Non, contr�le sous forme d e case � cocher.

>

> J'ai fait une requ�te avec les principaux champs que je veux af ficher dans un �tat comme les coordonn�es des adh�r ents (adresse, t�l�phone, mail...), ainsi que leur prï¿ ½sence aux diff�rentes AG depuis leur entr�e dans l'asso.

> C'est sur cette requ�te qu'est bas� cet �tat, e n fait l'annuaire de l'assocation.

>

> Merci de ton aide.

> A+

> C15

>

>

>





Une solution pas tr�s �l�gante, et dont je ne sui s pas s�r qu'elle

fonctionne sous Access 2003 :



- cr�er un contr�le dans le d�tail de l'� tat pour afficher le nombre de

pr�sences (par exemple : NbPr�sences)

- cr�er l'�v�nement Au Formatage de la section d �tail en y mettant cette

ligne :





Me.NbPr�sences.Value = DonnePr�sences(Me.NAdherent.Valu e)





et coller cette fonction dans le m�me module :



Function DonnePr�sences(nAdh As Integer)

Dim db As DAO.Database, rst As DAO.Recordset, fld As Field, n As Byte

Set db = CurrentDb

n = 0

Set rst = db.OpenRecordset("select * from T_Adh�rents where NAd hherent="

& nAdh)

For Each fld In rst.Fields

If fld.Type = dbBoolean and left(fld.name,2)="Ag" Then

n = n - fld.Value

End If

Next

Set rst = Nothing

Set db = Nothing

DonnePr�sences = n

End Function





Bien s�r, il faut adapter le nom des contr�les...



Je r�p�te : c'est lourdingue, et il vaudrait mieux suivre les conseils

de Blaise...



db



Bonjour Db

En attendant la réponse de Blaise à ma question (il a certainement rais on car la structure de la base ne m'a jamais trop plu mais cette restructur ation complète que je ne saisis pas tout à fait), j'ai essayé ta solu tion ; elle marche.
Merci.
J'aurai voulu aller un peu plus loin.
Décompter les présences entre l'année d'adhésion (DateAdhesion)et p ar exemple 2005.
J'aurai alors le contrôle NbPrésences avec le décompte jusqu'à 2004 et à côté les cases à cocher (cochées ou pas) 2005 2006 et à s uivre.
Merci de ton aide.
A+

C15
Avatar
db
Le 26/02/2013 14:48, C15 a écrit :

J'aurai voulu aller un peu plus loin.
Décompter les présences entre l'année d'adhésion (DateAdhesion)et par exemple 2005.
J'aurai alors le contrôle NbPrésences avec le décompte jusqu'à 2004 et à côté les cases à cocher (cochées ou pas) 2005 2006 et à suivre.



Et comment connait-on la date des AG ?
Avatar
Blaise
Le mardi 26 février 2013 14:13:36 UTC+1, C15 a écrit :


Sinon je ne vois pas trop comment créer et organiser les T Assemblées et Présences dont tu parles.



Merci de ton aide.

A+



C15


Une table T_Adherents avec comme Cle Adh_Id
Une table T_Assemblees avec comme cle Ass_Id
Une T_Presences avec deux champs Adh_Id et Ass_Id
Les relations 1 à + entre la t_adherents et la T_Presences, aussi entre l a T_Assemblees et al T_Presences. on ajoute une ligne à T_Presences par présence.

Étant donné le nombre d'assemblées et le probable nombre d'adhérent s que je suppose conséquent, il faudrait programmer en VBA le passage de l'ancienne structure à la nouvelle et malgré cela ce serait un travail conséquent.

Il vaut mieux aller vers une solution comme le propose db
Avatar
C15
Le mardi 26 février 2013 16:34:59 UTC+1, Blaise a écrit :
Le mardi 26 février 2013 14:13:36 UTC+1, C15 a écrit :



>

> Sinon je ne vois pas trop comment créer et organiser les T Assemblé es et Présences dont tu parles.

>

>

>

> Merci de ton aide.

>

> A+

>

>

>

> C15

Une table T_Adherents avec comme Cle Adh_Id

Une table T_Assemblees avec comme cle Ass_Id

Une T_Presences avec deux champs Adh_Id et Ass_Id

Les relations 1 à + entre la t_adherents et la T_Presences, aussi entre la T_Assemblees et al T_Presences. on ajoute une ligne à T_Presences pa r présence.



Étant donné le nombre d'assemblées et le probable nombre d'adhére nts que je suppose conséquent, il faudrait programmer en VBA le passage d e l'ancienne structure à la nouvelle et malgré cela ce serait un travai l conséquent.



Il vaut mieux aller vers une solution comme le propose db



Bonsoir,

Pour info on a 1026 adhérents inscrits depuis le début de l'assoc en 19 83, 726 actifs et environ 120 à chaque AG.
Par ailleurs, déjà le fait d'avoir ôté les champs AG de la T Adhé rents (ainsi que des champs C83...et Du83...) pour faire 4 tables principal es m'oblige à revoir toutes mes requêtes, mes formulaires et mes état s.
Par ailleurs mes incompétences en Vba se limitent à des procédures ex trêmement simples et/ou des modifs à ce que des gens comme vous propose z sur le net.

Je vais quand même creuser ta proposition , mais la tâche est donc sans doute hors de portée.
Merci de ton aide.

A+

C15
Avatar
C15
Le mardi 26 février 2013 15:22:56 UTC+1, db a écrit :
Le 26/02/2013 14:48, C15 a �crit :



> J'aurai voulu aller un peu plus loin.

> D�compter les pr�sences entre l'ann�e d'adhï ¿½sion (DateAdhesion)et par exemple 2005.

> J'aurai alors le contr�le NbPr�sences avec le dï¿ ½compte jusqu'� 2004 et � c�t� les cases � cocher (coch�es ou pas) 2005 2006 et � suivre.



Et comment connait-on la date des AG ?



Bonjour,
Les Ag ont lieu tous les ans depuis 1983.
Merci de ton aide.
A+

C15
1 2