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

Année d'adhésion

5 réponses
Avatar
C15
Bonjour à tous et toutes,

J'ai une base pour gérer une association.

Le point doit être fait sur les cotisations dues.

Dans une requête je voudrais que pour les adhérents inscrits après le 1/10
la somme due soit la cotisation annuelle (15?), pour les autres la somme des
cotisations des 5 années précédentes.

Je n'arrive pas à l'exprimer avec la fonction vraifaux (en fait comment
obtenir le "dernier "1er octobre).


Merci de votre aide

A+

c15

5 réponses

Avatar
Willi2004
Bonjour C15.
Le "dernier" premier Octobre dont tu parles est-il celui obtenu en prenant
comme repère la date en cours?
Si c'est bien le cas, alors tu peux coller le code suivant dans un module.

Function DernierPremierOctobre()
If Month(Date) >= 10 Then
DernierPremierOctobre = DateSerial(Year(Date), 10, 1)
Else
DernierPremierOctobre = DateSerial(Year(Date) - 1, 10, 1)
End If
End Function

Ensuite dans ta requête, tu peux faire appel à cette fonction en écrivant
par exemple dans une colonne vide et sur la ligne "Champ:"
DerPremOct : DernierPremierOctobre()


Si le "dernier" premier Octobre doit être obtenu en prenant comme repère une
date quelconque et pas nécessairement la date en cours, alors utilises
plutôt le code suivant à la place du premier:

Function DernierPremierOctobre(UneDate)
If Month(UneDate) >= 10 Then
DernierPremierOctobre = DateSerial(Year(UneDate), 10, 1)
Else
DernierPremierOctobre = DateSerial(Year(UneDate) - 1, 10, 1)
End If
End Function

Et dans ta requête, tu peux faire appel à cette fonction en écrivant par
exemple
DerPremOct : DernierPremierOctobre(Date1)
où "Date1" est le nom donné à ton Champ date.


" C15" a écrit dans le message de
news: 4608268c$0$21143$
Bonjour à tous et toutes,

J'ai une base pour gérer une association.

Le point doit être fait sur les cotisations dues.

Dans une requête je voudrais que pour les adhérents inscrits après le 1/10
la somme due soit la cotisation annuelle (15?), pour les autres la somme
des cotisations des 5 années précédentes.

Je n'arrive pas à l'exprimer avec la fonction vraifaux (en fait comment
obtenir le "dernier "1er octobre).


Merci de votre aide

A+

c15




Avatar
C15
Bonjour Willy,

Le problème était le suivant :
Si l'adhérent s'inscrit après le 1er octobre, la cotisation qu'il doit est
de 15, sinon ce qu'il doit est égal à Du07+Du06+Du05+Du04+Du03+Du02 (la
cotisation annuelle + les cotisations éventuellement impayées des 5
dernières années). Cela nous permet de radier les adhérents n'ayant plus
payé leurs cotisations depuis 5 ans.


Suite à ta proposition voilà ce que j'ai fait :

SELECT [T Adhérents].N°Adherent, [T Adhérents].Nom, [T Adhérents].Prenom,
IIf([DateAdhesion]>=[Exercice_en_cours],15,[Du07]+[Du06]+[Du05]+[Du04]+[Du03]+[Du02])
AS Montant_dû, [T Adhérents].DateAdhesion, dernierPremierOctobre() AS
Exercice_en_cours
FROM [T Adhérents]
WHERE ((([T Adhérents].Adherent)=True));

Cela a l'air de marcher, peux-tu me dire si cela te semble cohérent ?
Par contre pour info je suis obligé d'afficher dans ma requête le champ
Exercice_en_cours (que tu avais appelé DernierPremierOctobre), mais
j'utilise cette requête dans 2 formulaires.

enfin il a fallu que je modifie le code :

Function DernierPremierOctobre()
'If Month(UneDate) >= 10 Then
'DernierPremierOctobre = DateSerial(Year(Date), 10, 1)
'Else
DernierPremierOctobre = DateSerial(Year(Date) - 1, 10, 1)
End If
End Function

car sinon c'était le 01/10/2007 qui était considéré comme le dernier.

Merci beaucoup de ton aide, j'ai à vérifer un petit truc et je te ferai
signe;

A+

C15


"Willi2004" a écrit dans le message de news:
e3tAK9%
Bonjour C15.
Le "dernier" premier Octobre dont tu parles est-il celui obtenu en prenant
comme repère la date en cours?
Si c'est bien le cas, alors tu peux coller le code suivant dans un module.

Function DernierPremierOctobre()
If Month(Date) >= 10 Then
DernierPremierOctobre = DateSerial(Year(Date), 10, 1)
Else
DernierPremierOctobre = DateSerial(Year(Date) - 1, 10, 1)
End If
End Function

Ensuite dans ta requête, tu peux faire appel à cette fonction en écrivant
par exemple dans une colonne vide et sur la ligne "Champ:"
DerPremOct : DernierPremierOctobre()


Si le "dernier" premier Octobre doit être obtenu en prenant comme repère
une date quelconque et pas nécessairement la date en cours, alors utilises
plutôt le code suivant à la place du premier:

Function DernierPremierOctobre(UneDate)
If Month(UneDate) >= 10 Then
DernierPremierOctobre = DateSerial(Year(UneDate), 10, 1)
Else
DernierPremierOctobre = DateSerial(Year(UneDate) - 1, 10, 1)
End If
End Function

Et dans ta requête, tu peux faire appel à cette fonction en écrivant par
exemple
DerPremOct : DernierPremierOctobre(Date1)
où "Date1" est le nom donné à ton Champ date.


" C15" a écrit dans le message de
news: 4608268c$0$21143$
Bonjour à tous et toutes,

J'ai une base pour gérer une association.

Le point doit être fait sur les cotisations dues.

Dans une requête je voudrais que pour les adhérents inscrits après le
1/10
la somme due soit la cotisation annuelle (15?), pour les autres la somme
des cotisations des 5 années précédentes.

Je n'arrive pas à l'exprimer avec la fonction vraifaux (en fait comment
obtenir le "dernier "1er octobre).


Merci de votre aide

A+

c15









Avatar
Willi2004
VraiFaux(Mois([DateAdhésion])> Et Jour([DateAdhésion])>1 ; 15 ;
Du07+Du06+Du05+Du04+Du03+Du02)

C'est mieux?



" C15" a écrit dans le message de
news: 4608af29$0$21143$
Bonjour Willy,

Le problème était le suivant :
Si l'adhérent s'inscrit après le 1er octobre, la cotisation qu'il doit est
de 15, sinon ce qu'il doit est égal à Du07+Du06+Du05+Du04+Du03+Du02 (la
cotisation annuelle + les cotisations éventuellement impayées des 5
dernières années). Cela nous permet de radier les adhérents n'ayant plus
payé leurs cotisations depuis 5 ans.


Suite à ta proposition voilà ce que j'ai fait :

SELECT [T Adhérents].N°Adherent, [T Adhérents].Nom, [T Adhérents].Prenom,
IIf([DateAdhesion]>=[Exercice_en_cours],15,[Du07]+[Du06]+[Du05]+[Du04]+[Du03]+[Du02])
AS Montant_dû, [T Adhérents].DateAdhesion, dernierPremierOctobre() AS
Exercice_en_cours
FROM [T Adhérents]
WHERE ((([T Adhérents].Adherent)=True));

Cela a l'air de marcher, peux-tu me dire si cela te semble cohérent ?
Par contre pour info je suis obligé d'afficher dans ma requête le champ
Exercice_en_cours (que tu avais appelé DernierPremierOctobre), mais
j'utilise cette requête dans 2 formulaires.

enfin il a fallu que je modifie le code :

Function DernierPremierOctobre()
'If Month(UneDate) >= 10 Then
'DernierPremierOctobre = DateSerial(Year(Date), 10, 1)
'Else
DernierPremierOctobre = DateSerial(Year(Date) - 1, 10, 1)
End If
End Function

car sinon c'était le 01/10/2007 qui était considéré comme le dernier.

Merci beaucoup de ton aide, j'ai à vérifer un petit truc et je te ferai
signe;

A+

C15


"Willi2004" a écrit dans le message de news:
e3tAK9%
Bonjour C15.
Le "dernier" premier Octobre dont tu parles est-il celui obtenu en
prenant comme repère la date en cours?
Si c'est bien le cas, alors tu peux coller le code suivant dans un
module.

Function DernierPremierOctobre()
If Month(Date) >= 10 Then
DernierPremierOctobre = DateSerial(Year(Date), 10, 1)
Else
DernierPremierOctobre = DateSerial(Year(Date) - 1, 10, 1)
End If
End Function

Ensuite dans ta requête, tu peux faire appel à cette fonction en écrivant
par exemple dans une colonne vide et sur la ligne "Champ:"
DerPremOct : DernierPremierOctobre()


Si le "dernier" premier Octobre doit être obtenu en prenant comme repère
une date quelconque et pas nécessairement la date en cours, alors
utilises plutôt le code suivant à la place du premier:

Function DernierPremierOctobre(UneDate)
If Month(UneDate) >= 10 Then
DernierPremierOctobre = DateSerial(Year(UneDate), 10, 1)
Else
DernierPremierOctobre = DateSerial(Year(UneDate) - 1, 10, 1)
End If
End Function

Et dans ta requête, tu peux faire appel à cette fonction en écrivant par
exemple
DerPremOct : DernierPremierOctobre(Date1)
où "Date1" est le nom donné à ton Champ date.


" C15" a écrit dans le message de
news: 4608268c$0$21143$
Bonjour à tous et toutes,

J'ai une base pour gérer une association.

Le point doit être fait sur les cotisations dues.

Dans une requête je voudrais que pour les adhérents inscrits après le
1/10
la somme due soit la cotisation annuelle (15?), pour les autres la somme
des cotisations des 5 années précédentes.

Je n'arrive pas à l'exprimer avec la fonction vraifaux (en fait comment
obtenir le "dernier "1er octobre).


Merci de votre aide

A+

c15













Avatar
C15
Bonsoir,

Désolé mais ce n'est pas mieux car là, tous les adhérents inscrits après le
1/10 quelque soit l'année, ont une cotisation à 15.


Mais rassures-toi, le rapide essai que j'ai fait hier soir, basé sur ta
proposition et avec les petites corrections que je me suis permis
d'apporter, semble marcher.

Il me faut faire quelques vérifications, en particulier parce que j'utilise
cela dans 2 formulaires, et il semblerait que dans l'un d'eux, cela ne
marche pas comme je voudrais.
Je dois revoir ma copie.

Je te tiendrais bien sûr au courant. Tu as fait 95% du boulot, à moi les 5 %
restants.

Vu ta réponse, j'ai peur d'avoir encore à faire appel à toi, car j'ai un
problème récurent dont je voudrais bien me débarasser.

Merci encore de ton aide.

A+

C15


"Willi2004" a écrit dans le message de news:

VraiFaux(Mois([DateAdhésion])> Et Jour([DateAdhésion])>1 ; 15 ;
Du07+Du06+Du05+Du04+Du03+Du02)

C'est mieux?



" C15" a écrit dans le message de
news: 4608af29$0$21143$
Bonjour Willy,

Le problème était le suivant :
Si l'adhérent s'inscrit après le 1er octobre, la cotisation qu'il doit
est
de 15, sinon ce qu'il doit est égal à Du07+Du06+Du05+Du04+Du03+Du02 (la
cotisation annuelle + les cotisations éventuellement impayées des 5
dernières années). Cela nous permet de radier les adhérents n'ayant plus
payé leurs cotisations depuis 5 ans.


Suite à ta proposition voilà ce que j'ai fait :

SELECT [T Adhérents].N°Adherent, [T Adhérents].Nom, [T Adhérents].Prenom,
IIf([DateAdhesion]>=[Exercice_en_cours],15,[Du07]+[Du06]+[Du05]+[Du04]+[Du03]+[Du02])
AS Montant_dû, [T Adhérents].DateAdhesion, dernierPremierOctobre() AS
Exercice_en_cours
FROM [T Adhérents]
WHERE ((([T Adhérents].Adherent)=True));

Cela a l'air de marcher, peux-tu me dire si cela te semble cohérent ?
Par contre pour info je suis obligé d'afficher dans ma requête le champ
Exercice_en_cours (que tu avais appelé DernierPremierOctobre), mais
j'utilise cette requête dans 2 formulaires.

enfin il a fallu que je modifie le code :

Function DernierPremierOctobre()
'If Month(UneDate) >= 10 Then
'DernierPremierOctobre = DateSerial(Year(Date), 10, 1)
'Else
DernierPremierOctobre = DateSerial(Year(Date) - 1, 10, 1)
End If
End Function

car sinon c'était le 01/10/2007 qui était considéré comme le dernier.

Merci beaucoup de ton aide, j'ai à vérifer un petit truc et je te ferai
signe;

A+

C15


"Willi2004" a écrit dans le message de news:
e3tAK9%
Bonjour C15.
Le "dernier" premier Octobre dont tu parles est-il celui obtenu en
prenant comme repère la date en cours?
Si c'est bien le cas, alors tu peux coller le code suivant dans un
module.

Function DernierPremierOctobre()
If Month(Date) >= 10 Then
DernierPremierOctobre = DateSerial(Year(Date), 10, 1)
Else
DernierPremierOctobre = DateSerial(Year(Date) - 1, 10, 1)
End If
End Function

Ensuite dans ta requête, tu peux faire appel à cette fonction en
écrivant
par exemple dans une colonne vide et sur la ligne "Champ:"
DerPremOct : DernierPremierOctobre()


Si le "dernier" premier Octobre doit être obtenu en prenant comme repère
une date quelconque et pas nécessairement la date en cours, alors
utilises plutôt le code suivant à la place du premier:

Function DernierPremierOctobre(UneDate)
If Month(UneDate) >= 10 Then
DernierPremierOctobre = DateSerial(Year(UneDate), 10, 1)
Else
DernierPremierOctobre = DateSerial(Year(UneDate) - 1, 10, 1)
End If
End Function

Et dans ta requête, tu peux faire appel à cette fonction en écrivant par
exemple
DerPremOct : DernierPremierOctobre(Date1)
où "Date1" est le nom donné à ton Champ date.


" C15" a écrit dans le message de
news: 4608268c$0$21143$
Bonjour à tous et toutes,

J'ai une base pour gérer une association.

Le point doit être fait sur les cotisations dues.

Dans une requête je voudrais que pour les adhérents inscrits après le
1/10
la somme due soit la cotisation annuelle (15?), pour les autres la
somme
des cotisations des 5 années précédentes.

Je n'arrive pas à l'exprimer avec la fonction vraifaux (en fait comment
obtenir le "dernier "1er octobre).


Merci de votre aide

A+

c15


















Avatar
Willi2004
La cotisation à 15 est valable pour les dates d'adhésion ultérieures au 1er
Octobre de l'année 2007 uniquement?
Pas bien grave. On peut adapter la formule:

VraiFaux(Année([DateAdhésion]) 07 Et Mois([DateAdhésion]) Et
Jour([DateAdhésion])>1;15;VraiFaux(Année([DateAdhésion]) 07 Et
Mois([DateAdhésion])>10;15;Du07+Du06+Du05+Du04+Du03+Du02))

Tiens-moi au courant.

"Willi2004" a écrit dans le message de news:

VraiFaux(Mois([DateAdhésion])> Et Jour([DateAdhésion])>1 ; 15 ;
Du07+Du06+Du05+Du04+Du03+Du02)

C'est mieux?



" C15" a écrit dans le message de
news: 4608af29$0$21143$
Bonjour Willy,

Le problème était le suivant :
Si l'adhérent s'inscrit après le 1er octobre, la cotisation qu'il doit
est
de 15, sinon ce qu'il doit est égal à Du07+Du06+Du05+Du04+Du03+Du02 (la
cotisation annuelle + les cotisations éventuellement impayées des 5
dernières années). Cela nous permet de radier les adhérents n'ayant plus
payé leurs cotisations depuis 5 ans.


Suite à ta proposition voilà ce que j'ai fait :

SELECT [T Adhérents].N°Adherent, [T Adhérents].Nom, [T Adhérents].Prenom,
IIf([DateAdhesion]>=[Exercice_en_cours],15,[Du07]+[Du06]+[Du05]+[Du04]+[Du03]+[Du02])
AS Montant_dû, [T Adhérents].DateAdhesion, dernierPremierOctobre() AS
Exercice_en_cours
FROM [T Adhérents]
WHERE ((([T Adhérents].Adherent)=True));

Cela a l'air de marcher, peux-tu me dire si cela te semble cohérent ?
Par contre pour info je suis obligé d'afficher dans ma requête le champ
Exercice_en_cours (que tu avais appelé DernierPremierOctobre), mais
j'utilise cette requête dans 2 formulaires.

enfin il a fallu que je modifie le code :

Function DernierPremierOctobre()
'If Month(UneDate) >= 10 Then
'DernierPremierOctobre = DateSerial(Year(Date), 10, 1)
'Else
DernierPremierOctobre = DateSerial(Year(Date) - 1, 10, 1)
End If
End Function

car sinon c'était le 01/10/2007 qui était considéré comme le dernier.

Merci beaucoup de ton aide, j'ai à vérifer un petit truc et je te ferai
signe;

A+

C15


"Willi2004" a écrit dans le message de news:
e3tAK9%
Bonjour C15.
Le "dernier" premier Octobre dont tu parles est-il celui obtenu en
prenant comme repère la date en cours?
Si c'est bien le cas, alors tu peux coller le code suivant dans un
module.

Function DernierPremierOctobre()
If Month(Date) >= 10 Then
DernierPremierOctobre = DateSerial(Year(Date), 10, 1)
Else
DernierPremierOctobre = DateSerial(Year(Date) - 1, 10, 1)
End If
End Function

Ensuite dans ta requête, tu peux faire appel à cette fonction en
écrivant
par exemple dans une colonne vide et sur la ligne "Champ:"
DerPremOct : DernierPremierOctobre()


Si le "dernier" premier Octobre doit être obtenu en prenant comme repère
une date quelconque et pas nécessairement la date en cours, alors
utilises plutôt le code suivant à la place du premier:

Function DernierPremierOctobre(UneDate)
If Month(UneDate) >= 10 Then
DernierPremierOctobre = DateSerial(Year(UneDate), 10, 1)
Else
DernierPremierOctobre = DateSerial(Year(UneDate) - 1, 10, 1)
End If
End Function

Et dans ta requête, tu peux faire appel à cette fonction en écrivant par
exemple
DerPremOct : DernierPremierOctobre(Date1)
où "Date1" est le nom donné à ton Champ date.


" C15" a écrit dans le message de
news: 4608268c$0$21143$
Bonjour à tous et toutes,

J'ai une base pour gérer une association.

Le point doit être fait sur les cotisations dues.

Dans une requête je voudrais que pour les adhérents inscrits après le
1/10
la somme due soit la cotisation annuelle (15?), pour les autres la
somme
des cotisations des 5 années précédentes.

Je n'arrive pas à l'exprimer avec la fonction vraifaux (en fait comment
obtenir le "dernier "1er octobre).


Merci de votre aide

A+

c15