Année d'adhésion

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Willi2004
Le #6230481
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" 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




C15
Le #6230471
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" 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" 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









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

C'est mieux?



" C15" 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" 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" 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













C15
Le #6230331
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"
VraiFaux(Mois([DateAdhésion])> Et Jour([DateAdhésion])>1 ; 15 ;
Du07+Du06+Du05+Du04+Du03+Du02)

C'est mieux?



" C15" 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" 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" 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


















Willi2004
Le #6230301
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"
VraiFaux(Mois([DateAdhésion])> Et Jour([DateAdhésion])>1 ; 15 ;
Du07+Du06+Du05+Du04+Du03+Du02)

C'est mieux?



" C15" 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" 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" 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


















Publicité
Poster une réponse
Anonyme