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

Mettre plusieurs champs à 0

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

J'ai un formulaire pour gérer des adhérents d'une assoc, basé sur une
table [T adhérents] dans lequel j'ai des champs liés aux cotisations
[Du09], [Du08],[Du07],[Du06],[Du05],[Du04] concernant les cotisations
des 5 dernières années que l'on peut encore réclamer.

Quand je créé un nouvel adhérent on ne peut bien sur pas lui réclamer
les cotisations des années précédentes.

Dans un post précédent Michel_D (merci à lui) m'avait proposé la
solution suivante :
VraiFaux(Year([DateAdhesion])<Year(Date());[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04];0)

Cela marche bien pour obtenir que le total soit égal à 0 ou à la somme
des cotisations réellement dues.
Mais comment faire pour que dans ma table les champs [Du09],
[Du08],[Du07],[Du06],[Du05],[Du04] soient remis à 0 (valeur par défaut=15) ?

J'en ai effectivement besoin pour un publipostage "rappel des cotisations"

Si l'année de la date d'adhésion est < l'année en cours, alors le total du
[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0
sinon
[Du09]=0
[Du08]=0
[Du07]=0
[Du06]=0
[Du05]=0
[Du04]=0
et
le total du [Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0

Je n'arrive pas à mettre cela en musique.

Merci de votre aide.

A+

C15

10 réponses

1 2
Avatar
Blaise Cacramp
Selon : Bonjour ou bonsoir

Mauvaise conception :
On ne peut pas modifier à chaque nouvelle année la structure d'une base !
Vous faites probablement une translation d'une table plate (Excel ?)

Je m'explique : vous faites référence sur une même ligne (enregistrement) à
des événement (les années) différents. Une BDD ne peut gérer cela
correctement.
Ne tombez pas non plus dans le travers de faire une table par année.

Recherchez sur ce groupe ou ailleurs de l'aide à la conception

bon courage !


Cdt, Blaise
---- ---- ----


"C15" a écrit dans le message de news:
4a140cb1$0$294$
Bonjour à tous et à toutes,

J'ai un formulaire pour gérer des adhérents d'une assoc, basé sur une
table [T adhérents] dans lequel j'ai des champs liés aux cotisations
[Du09], [Du08],[Du07],[Du06],[Du05],[Du04] concernant les cotisations des
5 dernières années que l'on peut encore réclamer.

Quand je créé un nouvel adhérent on ne peut bien sur pas lui réclamer les
cotisations des années précédentes.

Dans un post précédent Michel_D (merci à lui) m'avait proposé la solution
suivante :
VraiFaux(Year([DateAdhesion])<Year(Date());[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04];0)

Cela marche bien pour obtenir que le total soit égal à 0 ou à la somme des
cotisations réellement dues.
Mais comment faire pour que dans ma table les champs [Du09],
[Du08],[Du07],[Du06],[Du05],[Du04] soient remis à 0 (valeur par défaut)
?

J'en ai effectivement besoin pour un publipostage "rappel des cotisations"

Si l'année de la date d'adhésion est < l'année en cours, alors le total du
[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0
sinon
[Du09]=0
[Du08]=0
[Du07]=0
[Du06]=0
[Du05]=0
[Du04]=0
et
le total du [Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0

Je n'arrive pas à mettre cela en musique.

Merci de votre aide.

A+

C15


Avatar
C15
Bonsoir,

Désolé mais c'est une base que j'ai reprise et qui marche comme cela
depuis 2002.

Il est évident que ce n'est pas le top, mais j'ai pris l'habitude de
faire quelques modifs manuelles chaque année.

A+

C15

Blaise Cacramp a écrit :
Selon : Bonjour ou bonsoir

Mauvaise conception :
On ne peut pas modifier à chaque nouvelle année la structure d'une base !
Vous faites probablement une translation d'une table plate (Excel ?)

Je m'explique : vous faites référence sur une même ligne (enregistrement) à
des événement (les années) différents. Une BDD ne peut gérer cela
correctement.
Ne tombez pas non plus dans le travers de faire une table par année.

Recherchez sur ce groupe ou ailleurs de l'aide à la conception

bon courage !


Cdt, Blaise
---- ---- ----


"C15" a écrit dans le message de news:
4a140cb1$0$294$
Bonjour à tous et à toutes,

J'ai un formulaire pour gérer des adhérents d'une assoc, basé sur une
table [T adhérents] dans lequel j'ai des champs liés aux cotisations
[Du09], [Du08],[Du07],[Du06],[Du05],[Du04] concernant les cotisations des
5 dernières années que l'on peut encore réclamer.

Quand je créé un nouvel adhérent on ne peut bien sur pas lui réclamer les
cotisations des années précédentes.

Dans un post précédent Michel_D (merci à lui) m'avait proposé la solution
suivante :
VraiFaux(Year([DateAdhesion])<Year(Date());[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04];0)

Cela marche bien pour obtenir que le total soit égal à 0 ou à la somme des
cotisations réellement dues.
Mais comment faire pour que dans ma table les champs [Du09],
[Du08],[Du07],[Du06],[Du05],[Du04] soient remis à 0 (valeur par défaut)
?

J'en ai effectivement besoin pour un publipostage "rappel des cotisations"

Si l'année de la date d'adhésion est < l'année en cours, alors le total du
[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0
sinon
[Du09]=0
[Du08]=0
[Du07]=0
[Du06]=0
[Du05]=0
[Du04]=0
et
le total du [Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0

Je n'arrive pas à mettre cela en musique.

Merci de votre aide.

A+

C15






Avatar
Michel__D
Bonjour,

Je ne sais pas si j'ai tout compris, mais si tu met la valeur par défaut
de tes champs [DuXX] à 0 sauf pour le champ [DuXX] de l'année en cours
cela ne te donnerait-il pas ce que tu recherche ?


C15 a écrit :
Bonjour à tous et à toutes,

J'ai un formulaire pour gérer des adhérents d'une assoc, basé sur une
table [T adhérents] dans lequel j'ai des champs liés aux cotisations
[Du09], [Du08],[Du07],[Du06],[Du05],[Du04] concernant les cotisations
des 5 dernières années que l'on peut encore réclamer.

Quand je créé un nouvel adhérent on ne peut bien sur pas lui réclamer
les cotisations des années précédentes.

Dans un post précédent Michel_D (merci à lui) m'avait proposé la
solution suivante :
VraiFaux(Year([DateAdhesion])<Year(Date());[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04];0)


Cela marche bien pour obtenir que le total soit égal à 0 ou à la somme
des cotisations réellement dues.
Mais comment faire pour que dans ma table les champs [Du09],
[Du08],[Du07],[Du06],[Du05],[Du04] soient remis à 0 (valeur par
défaut) ?

J'en ai effectivement besoin pour un publipostage "rappel des cotisations"

Si l'année de la date d'adhésion est < l'année en cours, alors le total du
[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0
sinon
[Du09]=0
[Du08]=0
[Du07]=0
[Du06]=0
[Du05]=0
[Du04]=0
et
le total du [Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0

Je n'arrive pas à mettre cela en musique.

Merci de votre aide.

A+

C15


Avatar
C15
Bonjour à tous et à toutes,

Pour le moment je préfère avoir la valeur par défaut de mes cotisations
dues à 20 ¤ c'est plus facile de savoir ce que les gens doivent.

Par contre j'ai pensé à faire une requête mise à jour des champs [du09]
à [du04] =0 avec en critère [F Adhérents]![N° Adhérent] que j'exécute
lorsque je saisis les coordonnées d'un nouvel adhérent (par exemple sur
Clic d'un bouton existant "créer un nouvel adhérent").

A priori il n'y a pas d'interdiction de mettre à jour plusieurs champs
en même temps, n'est-il pas ?

Je ne sais si mon raisonnement est bon.
Je vais tester et vous dirais si cela tient la route.

Merci de votre aide.

A+

C15


Michel__D a écrit :
Bonjour,

Je ne sais pas si j'ai tout compris, mais si tu met la valeur par défaut
de tes champs [DuXX] à 0 sauf pour le champ [DuXX] de l'année en cours
cela ne te donnerait-il pas ce que tu recherche ?


C15 a écrit :
Bonjour à tous et à toutes,

J'ai un formulaire pour gérer des adhérents d'une assoc, basé sur une
table [T adhérents] dans lequel j'ai des champs liés aux cotisations
[Du09], [Du08],[Du07],[Du06],[Du05],[Du04] concernant les cotisations
des 5 dernières années que l'on peut encore réclamer.

Quand je créé un nouvel adhérent on ne peut bien sur pas lui réclamer
les cotisations des années précédentes.

Dans un post précédent Michel_D (merci à lui) m'avait proposé la
solution suivante :
VraiFaux(Year([DateAdhesion])<Year(Date());[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04];0)


Cela marche bien pour obtenir que le total soit égal à 0 ou à la somme
des cotisations réellement dues.
Mais comment faire pour que dans ma table les champs [Du09],
[Du08],[Du07],[Du06],[Du05],[Du04] soient remis à 0 (valeur par
défaut) ?

J'en ai effectivement besoin pour un publipostage "rappel des
cotisations"

Si l'année de la date d'adhésion est < l'année en cours, alors le
total du
[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0
sinon
[Du09]=0
[Du08]=0
[Du07]=0
[Du06]=0
[Du05]=0
[Du04]=0
et
le total du [Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0

Je n'arrive pas à mettre cela en musique.

Merci de votre aide.

A+

C15




Avatar
C15
Bonsoir à tous et à toutes,

J'ai fait l'essai avec un
DoCmd.Openquery... ma requête mise à jour de mes [duxx]
associé à mon bouton "créer un nouvel adhérent".

Cela ne marche pas car ma requête met à jour 0 ligne.
Il faudrait, je pense, faire en sorte que cette requête s'exécute quand
le nouveau numéro d'adhérent a été attribué, mais pas avant
(actuellement elle s'exécute dès qu'un formulaire vierge s'ouvre).

Un nouveau numéro d'adhérent est attribué quand une valeur commence à
être saisie (comme par exemple le titre ou la 1ère lettre du nom).
Comment faire alors pour que la requête mette à jour les [Duxx]
seulement à ce moment là ?

Merci de votre aide.

A+

C15


C15 a écrit :
Bonjour à tous et à toutes,

Pour le moment je préfère avoir la valeur par défaut de mes cotisations
dues à 20 ¤ c'est plus facile de savoir ce que les gens doivent.

Par contre j'ai pensé à faire une requête mise à jour des champs [du09]
à [du04] =0 avec en critère [F Adhérents]![N° Adhérent] que j'exécute
lorsque je saisis les coordonnées d'un nouvel adhérent (par exemple sur
Clic d'un bouton existant "créer un nouvel adhérent").

A priori il n'y a pas d'interdiction de mettre à jour plusieurs champs
en même temps, n'est-il pas ?

Je ne sais si mon raisonnement est bon.
Je vais tester et vous dirais si cela tient la route.

Merci de votre aide.

A+

C15


Michel__D a écrit :
Bonjour,

Je ne sais pas si j'ai tout compris, mais si tu met la valeur par défaut
de tes champs [DuXX] à 0 sauf pour le champ [DuXX] de l'année en cours
cela ne te donnerait-il pas ce que tu recherche ?


C15 a écrit :
Bonjour à tous et à toutes,

J'ai un formulaire pour gérer des adhérents d'une assoc, basé sur une
table [T adhérents] dans lequel j'ai des champs liés aux cotisations
[Du09], [Du08],[Du07],[Du06],[Du05],[Du04] concernant les cotisations
des 5 dernières années que l'on peut encore réclamer.

Quand je créé un nouvel adhérent on ne peut bien sur pas lui réclamer
les cotisations des années précédentes.

Dans un post précédent Michel_D (merci à lui) m'avait proposé la
solution suivante :
VraiFaux(Year([DateAdhesion])<Year(Date());[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04];0)


Cela marche bien pour obtenir que le total soit égal à 0 ou à la
somme des cotisations réellement dues.
Mais comment faire pour que dans ma table les champs [Du09],
[Du08],[Du07],[Du06],[Du05],[Du04] soient remis à 0 (valeur par
défaut) ?

J'en ai effectivement besoin pour un publipostage "rappel des
cotisations"

Si l'année de la date d'adhésion est < l'année en cours, alors le
total du
[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0
sinon
[Du09]=0
[Du08]=0
[Du07]=0
[Du06]=0
[Du05]=0
[Du04]=0
et
le total du [Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0

Je n'arrive pas à mettre cela en musique.

Merci de votre aide.

A+

C15






Avatar
Michel__D
Bonjour,

Il faut paramêtrer tes champs au niveau de ta table (valeur par défaut = 0)


"C15" a écrit dans le message de news:
Bonsoir à tous et à toutes,

J'ai fait l'essai avec un
DoCmd.Openquery... ma requête mise à jour de mes [duxx]
associé à mon bouton "créer un nouvel adhérent".

Cela ne marche pas car ma requête met à jour 0 ligne.
Il faudrait, je pense, faire en sorte que cette requête s'exécute quand le nouveau numéro d'adhérent a été attribué, mais pas
avant (actuellement elle s'exécute dès qu'un formulaire vierge s'ouvre).

Un nouveau numéro d'adhérent est attribué quand une valeur commence à être saisie (comme par exemple le titre ou la 1ère lettre du
nom).
Comment faire alors pour que la requête mette à jour les [Duxx] seulement à ce moment là ?

Merci de votre aide.

A+

C15


C15 a écrit :
Bonjour à tous et à toutes,

Pour le moment je préfère avoir la valeur par défaut de mes cotisations dues à 20 ¤ c'est plus facile de savoir ce que les gens
doivent.

Par contre j'ai pensé à faire une requête mise à jour des champs [du09] à [du04] =0 avec en critère [F Adhérents]![N° Adhérent]
que j'exécute lorsque je saisis les coordonnées d'un nouvel adhérent (par exemple sur Clic d'un bouton existant "créer un nouvel
adhérent").

A priori il n'y a pas d'interdiction de mettre à jour plusieurs champs en même temps, n'est-il pas ?

Je ne sais si mon raisonnement est bon.
Je vais tester et vous dirais si cela tient la route.

Merci de votre aide.

A+

C15


Michel__D a écrit :
Bonjour,

Je ne sais pas si j'ai tout compris, mais si tu met la valeur par défaut
de tes champs [DuXX] à 0 sauf pour le champ [DuXX] de l'année en cours
cela ne te donnerait-il pas ce que tu recherche ?


C15 a écrit :
Bonjour à tous et à toutes,

J'ai un formulaire pour gérer des adhérents d'une assoc, basé sur une table [T adhérents] dans lequel j'ai des champs liés aux
cotisations [Du09], [Du08],[Du07],[Du06],[Du05],[Du04] concernant les cotisations des 5 dernières années que l'on peut encore
réclamer.

Quand je créé un nouvel adhérent on ne peut bien sur pas lui réclamer les cotisations des années précédentes.

Dans un post précédent Michel_D (merci à lui) m'avait proposé la solution suivante :
VraiFaux(Year([DateAdhesion])<Year(Date());[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04];0)

Cela marche bien pour obtenir que le total soit égal à 0 ou à la somme des cotisations réellement dues.
Mais comment faire pour que dans ma table les champs [Du09], [Du08],[Du07],[Du06],[Du05],[Du04] soient remis à 0 (valeur par
défaut) ?

J'en ai effectivement besoin pour un publipostage "rappel des cotisations"

Si l'année de la date d'adhésion est < l'année en cours, alors le total du
[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0
sinon
[Du09]=0
[Du08]=0
[Du07]=0
[Du06]=0
[Du05]=0
[Du04]=0
et
le total du [Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0

Je n'arrive pas à mettre cela en musique.

Merci de votre aide.

A+

C15








Avatar
C15
Bonsoir à tous et à toutes,

Si je paramètre les champs à 0 par défaut, il faut que je recalcule à
chaque fois ce que doivent les mauvais payeurs, et cela ne me plait pas
trop...
En ayant une valeur par défaut à 15, il me suffit de cliquer sur une
case à cocher pour avoir 0 en somme due dès que le paiement est
enregistré, et cela me parait plus simple pour le trésorier.

Merci de ton aide.

A+

C15


Michel__D a écrit :
Bonjour,

Il faut paramêtrer tes champs au niveau de ta table (valeur par défaut = 0)


"C15" a écrit dans le message de
news:
Bonsoir à tous et à toutes,

J'ai fait l'essai avec un
DoCmd.Openquery... ma requête mise à jour de mes [duxx]
associé à mon bouton "créer un nouvel adhérent".

Cela ne marche pas car ma requête met à jour 0 ligne.
Il faudrait, je pense, faire en sorte que cette requête s'exécute
quand le nouveau numéro d'adhérent a été attribué, mais pas avant
(actuellement elle s'exécute dès qu'un formulaire vierge s'ouvre).

Un nouveau numéro d'adhérent est attribué quand une valeur commence à
être saisie (comme par exemple le titre ou la 1ère lettre du nom).
Comment faire alors pour que la requête mette à jour les [Duxx]
seulement à ce moment là ?

Merci de votre aide.

A+

C15


C15 a écrit :
Bonjour à tous et à toutes,

Pour le moment je préfère avoir la valeur par défaut de mes
cotisations dues à 20 ¤ c'est plus facile de savoir ce que les gens
doivent.

Par contre j'ai pensé à faire une requête mise à jour des champs
[du09] à [du04] =0 avec en critère [F Adhérents]![N° Adhérent] que
j'exécute lorsque je saisis les coordonnées d'un nouvel adhérent (par
exemple sur Clic d'un bouton existant "créer un nouvel adhérent").

A priori il n'y a pas d'interdiction de mettre à jour plusieurs
champs en même temps, n'est-il pas ?

Je ne sais si mon raisonnement est bon.
Je vais tester et vous dirais si cela tient la route.

Merci de votre aide.

A+

C15


Michel__D a écrit :
Bonjour,

Je ne sais pas si j'ai tout compris, mais si tu met la valeur par
défaut
de tes champs [DuXX] à 0 sauf pour le champ [DuXX] de l'année en cours
cela ne te donnerait-il pas ce que tu recherche ?


C15 a écrit :
Bonjour à tous et à toutes,

J'ai un formulaire pour gérer des adhérents d'une assoc, basé sur
une table [T adhérents] dans lequel j'ai des champs liés aux
cotisations [Du09], [Du08],[Du07],[Du06],[Du05],[Du04] concernant
les cotisations des 5 dernières années que l'on peut encore réclamer.

Quand je créé un nouvel adhérent on ne peut bien sur pas lui
réclamer les cotisations des années précédentes.

Dans un post précédent Michel_D (merci à lui) m'avait proposé la
solution suivante :
VraiFaux(Year([DateAdhesion])<Year(Date());[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04];0)


Cela marche bien pour obtenir que le total soit égal à 0 ou à la
somme des cotisations réellement dues.
Mais comment faire pour que dans ma table les champs [Du09],
[Du08],[Du07],[Du06],[Du05],[Du04] soient remis à 0 (valeur par
défaut) ?

J'en ai effectivement besoin pour un publipostage "rappel des
cotisations"

Si l'année de la date d'adhésion est < l'année en cours, alors le
total du
[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0
sinon
[Du09]=0
[Du08]=0
[Du07]=0
[Du06]=0
[Du05]=0
[Du04]=0
et
le total du [Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0

Je n'arrive pas à mettre cela en musique.

Merci de votre aide.

A+

C15











Avatar
Michel__D
Bonjour,

On doit pas se comprendre, la valeur par défaut d'un champ d'une table
veut dire que pour tout nouvel enregistrement pour lequel la valeur
du champ n'est pas spécifié celui-ci prend la valeur par défaut car
sinon généralement c'est la valeur nulle qui est appliqué.

En y réfléchissant, j'ai de plus en plus de doute concernant la structure
de la table.


C15 a écrit :
Bonsoir à tous et à toutes,

Si je paramètre les champs à 0 par défaut, il faut que je recalcule à
chaque fois ce que doivent les mauvais payeurs, et cela ne me plait pas
trop...
En ayant une valeur par défaut à 15, il me suffit de cliquer sur une
case à cocher pour avoir 0 en somme due dès que le paiement est
enregistré, et cela me parait plus simple pour le trésorier.

Merci de ton aide.

A+

C15


Michel__D a écrit :
Bonjour,

Il faut paramêtrer tes champs au niveau de ta table (valeur par défaut
= 0)


"C15" a écrit dans le message de
news:
Bonsoir à tous et à toutes,

J'ai fait l'essai avec un
DoCmd.Openquery... ma requête mise à jour de mes [duxx]
associé à mon bouton "créer un nouvel adhérent".

Cela ne marche pas car ma requête met à jour 0 ligne.
Il faudrait, je pense, faire en sorte que cette requête s'exécute
quand le nouveau numéro d'adhérent a été attribué, mais pas avant
(actuellement elle s'exécute dès qu'un formulaire vierge s'ouvre).

Un nouveau numéro d'adhérent est attribué quand une valeur commence à
être saisie (comme par exemple le titre ou la 1ère lettre du nom).
Comment faire alors pour que la requête mette à jour les [Duxx]
seulement à ce moment là ?

Merci de votre aide.

A+

C15


C15 a écrit :
Bonjour à tous et à toutes,

Pour le moment je préfère avoir la valeur par défaut de mes
cotisations dues à 20 ¤ c'est plus facile de savoir ce que les gens
doivent.

Par contre j'ai pensé à faire une requête mise à jour des champs
[du09] à [du04] =0 avec en critère [F Adhérents]![N° Adhérent] que
j'exécute lorsque je saisis les coordonnées d'un nouvel adhérent
(par exemple sur Clic d'un bouton existant "créer un nouvel adhérent").

A priori il n'y a pas d'interdiction de mettre à jour plusieurs
champs en même temps, n'est-il pas ?

Je ne sais si mon raisonnement est bon.
Je vais tester et vous dirais si cela tient la route.

Merci de votre aide.

A+

C15


Michel__D a écrit :
Bonjour,

Je ne sais pas si j'ai tout compris, mais si tu met la valeur par
défaut
de tes champs [DuXX] à 0 sauf pour le champ [DuXX] de l'année en
cours
cela ne te donnerait-il pas ce que tu recherche ?


C15 a écrit :
Bonjour à tous et à toutes,

J'ai un formulaire pour gérer des adhérents d'une assoc, basé sur
une table [T adhérents] dans lequel j'ai des champs liés aux
cotisations [Du09], [Du08],[Du07],[Du06],[Du05],[Du04] concernant
les cotisations des 5 dernières années que l'on peut encore réclamer.

Quand je créé un nouvel adhérent on ne peut bien sur pas lui
réclamer les cotisations des années précédentes.

Dans un post précédent Michel_D (merci à lui) m'avait proposé la
solution suivante :
VraiFaux(Year([DateAdhesion])<Year(Date());[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04];0)


Cela marche bien pour obtenir que le total soit égal à 0 ou à la
somme des cotisations réellement dues.
Mais comment faire pour que dans ma table les champs [Du09],
[Du08],[Du07],[Du06],[Du05],[Du04] soient remis à 0 (valeur par
défaut) ?

J'en ai effectivement besoin pour un publipostage "rappel des
cotisations"

Si l'année de la date d'adhésion est < l'année en cours, alors le
total du
[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0
sinon
[Du09]=0
[Du08]=0
[Du07]=0
[Du06]=0
[Du05]=0
[Du04]=0
et
le total du [Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0

Je n'arrive pas à mettre cela en musique.

Merci de votre aide.

A+

C15













Avatar
C15
Bonjour,

Ma table T adhérents comporte entre autres des champs [Cxx] concernant
les cotisations à payer de [Duxx] concernant les cotisations dues
(valeur par défaut 20).

Le principe est que l'on peut réclamer aux adhérents jusqu'aux 5
dernières années, sinon carton rouge.

J'ai un formulaire F adhérents pour entrer les données nominatives sur
lequel j'ai un bouton pour ouvrir un autre formulaire "F cotisations".
Sur celui-ci j'ai des cases à cocher Cxx sur lesquelles je clique
lorsque le paiement est effectué, mettant le Duxx à 0.
J'y ai aussi un contrôle pour calculer le montant du des 5 dernières années.

Pour un adhérent "ancien", tout va bien, il me suffit de cocher les Cxx
et j'ai le montant des cotisations restantes dues.

Pour un nouvel adhérent, il est évident que l'on ne peut lui réclamer le
montant des 5 dernières années.

Grâce à toi et à d'autres idées que j'ai piquées sur le forum, j'ai fait
une requête mise à jour :
>>>
UPDATE [T Adhérents] SET [T Adhérents].Du09 = 0, [T Adhérents].Du08 = 0,
[T Adhérents].Du07 = 0, [T Adhérents].Du06 = 0, [T Adhérents].Du05 = 0,
[T Adhérents].Du04 = 0
WHERE ((([T Adhérents].N°Adherent)=[Formulaires]![F
Adhérents]![N°Adherent]));
>>>

J'ai voulu la déclencher, à partir de mon F Adhérents, soit le bouton
"créer une nouvelle fiche", soit sur le bouton "valider la saisie", soit
sur l'évènement "après insertion" donnant par exemple ceci :
>>>
Private Sub Form_AfterInsert()

Dim stDocName As String

MsgBox "Vous allez exécuter une requête qui va mettre à 0 les
cotisations des 5 denières années", vbQuestion
stDocName = "R mise à jour cotisation nouvel adhérent"
DoCmd.OpenQuery stDocName, acViewNormal, acEdit

End Sub
>>>

Cela ne marche pas, alors que si j'exécute la requête directement, cela
marche.

Merci de ton aide pour me dire quel est le meilleur moyen pour exécuter
cette requête.

A+

C15


Michel__D a écrit :
Bonjour,

On doit pas se comprendre, la valeur par défaut d'un champ d'une table
veut dire que pour tout nouvel enregistrement pour lequel la valeur
du champ n'est pas spécifié celui-ci prend la valeur par défaut car
sinon généralement c'est la valeur nulle qui est appliqué.

En y réfléchissant, j'ai de plus en plus de doute concernant la structure
de la table.


C15 a écrit :
Bonsoir à tous et à toutes,

Si je paramètre les champs à 0 par défaut, il faut que je recalcule à
chaque fois ce que doivent les mauvais payeurs, et cela ne me plait
pas trop...
En ayant une valeur par défaut à 15, il me suffit de cliquer sur une
case à cocher pour avoir 0 en somme due dès que le paiement est
enregistré, et cela me parait plus simple pour le trésorier.

Merci de ton aide.

A+

C15


Michel__D a écrit :
Bonjour,

Il faut paramêtrer tes champs au niveau de ta table (valeur par
défaut = 0)


"C15" a écrit dans le message
de news:
Bonsoir à tous et à toutes,

J'ai fait l'essai avec un
DoCmd.Openquery... ma requête mise à jour de mes [duxx]
associé à mon bouton "créer un nouvel adhérent".

Cela ne marche pas car ma requête met à jour 0 ligne.
Il faudrait, je pense, faire en sorte que cette requête s'exécute
quand le nouveau numéro d'adhérent a été attribué, mais pas avant
(actuellement elle s'exécute dès qu'un formulaire vierge s'ouvre).

Un nouveau numéro d'adhérent est attribué quand une valeur commence
à être saisie (comme par exemple le titre ou la 1ère lettre du nom).
Comment faire alors pour que la requête mette à jour les [Duxx]
seulement à ce moment là ?

Merci de votre aide.

A+

C15


C15 a écrit :
Bonjour à tous et à toutes,

Pour le moment je préfère avoir la valeur par défaut de mes
cotisations dues à 20 ¤ c'est plus facile de savoir ce que les gens
doivent.

Par contre j'ai pensé à faire une requête mise à jour des champs
[du09] à [du04] =0 avec en critère [F Adhérents]![N° Adhérent] que
j'exécute lorsque je saisis les coordonnées d'un nouvel adhérent
(par exemple sur Clic d'un bouton existant "créer un nouvel
adhérent").

A priori il n'y a pas d'interdiction de mettre à jour plusieurs
champs en même temps, n'est-il pas ?

Je ne sais si mon raisonnement est bon.
Je vais tester et vous dirais si cela tient la route.

Merci de votre aide.

A+

C15


Michel__D a écrit :
Bonjour,

Je ne sais pas si j'ai tout compris, mais si tu met la valeur par
défaut
de tes champs [DuXX] à 0 sauf pour le champ [DuXX] de l'année en
cours
cela ne te donnerait-il pas ce que tu recherche ?


C15 a écrit :
Bonjour à tous et à toutes,

J'ai un formulaire pour gérer des adhérents d'une assoc, basé sur
une table [T adhérents] dans lequel j'ai des champs liés aux
cotisations [Du09], [Du08],[Du07],[Du06],[Du05],[Du04] concernant
les cotisations des 5 dernières années que l'on peut encore
réclamer.

Quand je créé un nouvel adhérent on ne peut bien sur pas lui
réclamer les cotisations des années précédentes.

Dans un post précédent Michel_D (merci à lui) m'avait proposé la
solution suivante :
VraiFaux(Year([DateAdhesion])<Year(Date());[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04];0)


Cela marche bien pour obtenir que le total soit égal à 0 ou à la
somme des cotisations réellement dues.
Mais comment faire pour que dans ma table les champs [Du09],
[Du08],[Du07],[Du06],[Du05],[Du04] soient remis à 0 (valeur par
défaut) ?

J'en ai effectivement besoin pour un publipostage "rappel des
cotisations"

Si l'année de la date d'adhésion est < l'année en cours, alors le
total du
[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0
sinon
[Du09]=0
[Du08]=0
[Du07]=0
[Du06]=0
[Du05]=0
[Du04]=0
et
le total du [Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0

Je n'arrive pas à mettre cela en musique.

Merci de votre aide.

A+

C15















Avatar
Michel__D
Bonjour,

1)
Donc il faudrait mettre la valeur par défaut sur les champs [Cxx] de ta table
[T adhérents] sauf pour le champ [Cxx] correspondant à l'année en cours.

2)
Pour exécuter une requête action, il ne faut pas employer la méthode OpenQuery
qui est dédié aux requêtes sélection/analyse croisée et tu peux utiliser
par exemple la méthode RunSQL de l'objet DoCmd.

Private Sub Form_AfterInsert()
Dim sSQL As String

MsgBox "Vous allez exécuter une requête qui va mettre à 0 les cotisations des 5 denières années", vbQuestion
sSQL = "UUPDATE [T Adhérents] AS T " & _
"SET T.Du09 = 0, T.Du08 = 0, T.Du07 = 0, T.Du06 = 0, T.Du05 = 0, T.Du04 = 0 " & _
"WHERE T.[N°Adherent]=" & [Formulaires]![F Adhérents]![N°Adherent] & ";"
DoCmd.SetWarnings False
DoCmd.RunSQL sSQL
DoCmd.SetWarnings True
End Sub


C15 a écrit :
Bonjour,

Ma table T adhérents comporte entre autres des champs [Cxx] concernant
les cotisations à payer de [Duxx] concernant les cotisations dues
(valeur par défaut 20).

Le principe est que l'on peut réclamer aux adhérents jusqu'aux 5
dernières années, sinon carton rouge.

J'ai un formulaire F adhérents pour entrer les données nominatives sur
lequel j'ai un bouton pour ouvrir un autre formulaire "F cotisations".
Sur celui-ci j'ai des cases à cocher Cxx sur lesquelles je clique
lorsque le paiement est effectué, mettant le Duxx à 0.
J'y ai aussi un contrôle pour calculer le montant du des 5 dernières
années.

Pour un adhérent "ancien", tout va bien, il me suffit de cocher les Cxx
et j'ai le montant des cotisations restantes dues.

Pour un nouvel adhérent, il est évident que l'on ne peut lui réclamer le
montant des 5 dernières années.

Grâce à toi et à d'autres idées que j'ai piquées sur le forum, j'ai fait
une requête mise à jour :
>>>
UPDATE [T Adhérents] SET [T Adhérents].Du09 = 0, [T Adhérents].Du08 = 0,
[T Adhérents].Du07 = 0, [T Adhérents].Du06 = 0, [T Adhérents].Du05 = 0,
[T Adhérents].Du04 = 0
WHERE ((([T Adhérents].N°Adherent)=[Formulaires]![F
Adhérents]![N°Adherent]));
>>>

J'ai voulu la déclencher, à partir de mon F Adhérents, soit le bouton
"créer une nouvelle fiche", soit sur le bouton "valider la saisie", soit
sur l'évènement "après insertion" donnant par exemple ceci :
>>>
Private Sub Form_AfterInsert()

Dim stDocName As String

MsgBox "Vous allez exécuter une requête qui va mettre à 0 les
cotisations des 5 denières années", vbQuestion
stDocName = "R mise à jour cotisation nouvel adhérent"
DoCmd.OpenQuery stDocName, acViewNormal, acEdit

End Sub
>>>

Cela ne marche pas, alors que si j'exécute la requête directement, cela
marche.

Merci de ton aide pour me dire quel est le meilleur moyen pour exécuter
cette requête.

A+

C15


Michel__D a écrit :
Bonjour,

On doit pas se comprendre, la valeur par défaut d'un champ d'une table
veut dire que pour tout nouvel enregistrement pour lequel la valeur
du champ n'est pas spécifié celui-ci prend la valeur par défaut car
sinon généralement c'est la valeur nulle qui est appliqué.

En y réfléchissant, j'ai de plus en plus de doute concernant la structure
de la table.


C15 a écrit :
Bonsoir à tous et à toutes,

Si je paramètre les champs à 0 par défaut, il faut que je recalcule à
chaque fois ce que doivent les mauvais payeurs, et cela ne me plait
pas trop...
En ayant une valeur par défaut à 15, il me suffit de cliquer sur une
case à cocher pour avoir 0 en somme due dès que le paiement est
enregistré, et cela me parait plus simple pour le trésorier.

Merci de ton aide.

A+

C15


Michel__D a écrit :
Bonjour,

Il faut paramêtrer tes champs au niveau de ta table (valeur par
défaut = 0)


"C15" a écrit dans le message
de news:
Bonsoir à tous et à toutes,

J'ai fait l'essai avec un
DoCmd.Openquery... ma requête mise à jour de mes [duxx]
associé à mon bouton "créer un nouvel adhérent".

Cela ne marche pas car ma requête met à jour 0 ligne.
Il faudrait, je pense, faire en sorte que cette requête s'exécute
quand le nouveau numéro d'adhérent a été attribué, mais pas avant
(actuellement elle s'exécute dès qu'un formulaire vierge s'ouvre).

Un nouveau numéro d'adhérent est attribué quand une valeur commence
à être saisie (comme par exemple le titre ou la 1ère lettre du nom).
Comment faire alors pour que la requête mette à jour les [Duxx]
seulement à ce moment là ?

Merci de votre aide.

A+

C15


C15 a écrit :
Bonjour à tous et à toutes,

Pour le moment je préfère avoir la valeur par défaut de mes
cotisations dues à 20 ¤ c'est plus facile de savoir ce que les
gens doivent.

Par contre j'ai pensé à faire une requête mise à jour des champs
[du09] à [du04] =0 avec en critère [F Adhérents]![N° Adhérent] que
j'exécute lorsque je saisis les coordonnées d'un nouvel adhérent
(par exemple sur Clic d'un bouton existant "créer un nouvel
adhérent").

A priori il n'y a pas d'interdiction de mettre à jour plusieurs
champs en même temps, n'est-il pas ?

Je ne sais si mon raisonnement est bon.
Je vais tester et vous dirais si cela tient la route.

Merci de votre aide.

A+

C15


Michel__D a écrit :
Bonjour,

Je ne sais pas si j'ai tout compris, mais si tu met la valeur par
défaut
de tes champs [DuXX] à 0 sauf pour le champ [DuXX] de l'année en
cours
cela ne te donnerait-il pas ce que tu recherche ?


C15 a écrit :
Bonjour à tous et à toutes,

J'ai un formulaire pour gérer des adhérents d'une assoc, basé
sur une table [T adhérents] dans lequel j'ai des champs liés aux
cotisations [Du09], [Du08],[Du07],[Du06],[Du05],[Du04]
concernant les cotisations des 5 dernières années que l'on peut
encore réclamer.

Quand je créé un nouvel adhérent on ne peut bien sur pas lui
réclamer les cotisations des années précédentes.

Dans un post précédent Michel_D (merci à lui) m'avait proposé la
solution suivante :
VraiFaux(Year([DateAdhesion])<Year(Date());[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04];0)


Cela marche bien pour obtenir que le total soit égal à 0 ou à la
somme des cotisations réellement dues.
Mais comment faire pour que dans ma table les champs [Du09],
[Du08],[Du07],[Du06],[Du05],[Du04] soient remis à 0 (valeur par
défaut) ?

J'en ai effectivement besoin pour un publipostage "rappel des
cotisations"

Si l'année de la date d'adhésion est < l'année en cours, alors
le total du
[Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0
sinon
[Du09]=0
[Du08]=0
[Du07]=0
[Du06]=0
[Du05]=0
[Du04]=0
et
le total du [Du09]+[Du08]+[Du07]+[Du06]+[Du05]+[Du04]=0

Je n'arrive pas à mettre cela en musique.

Merci de votre aide.

A+

C15

















1 2