Calcul dans un formulaire
nlbmoi
Messages postés
434
Date d'inscription
Statut
Membre
Dernière intervention
-
nlbmoi Messages postés 434 Date d'inscription Statut Membre Dernière intervention -
nlbmoi Messages postés 434 Date d'inscription Statut Membre Dernière intervention -
Bonjour
Je cherche à gérer à faire une petite gestion de paiement des cotisations à l'aide d'access.
J'ai une table qui contient mon fichier d'adhérent (T_adherent), une qui contient la liste des licences (T_licence) et une qui contient le cout de la licence des différents prestataires (T_fede, T_comite, T_ligue, T_club) pour chacune des catégories d'âge : en faisant les bonnes liaisons, j'ai associé une catégorie à son cout de licence pour chaque prestataire. Pour ça, pas de problème.
Dans un formulaire, j'ai calculé le nombre de licenciés selon la catégorie (à l'aide des fonctions CpteDom).
J'ai ajouté une zone de texte dans laquelle je renseigne le nombre de licences payées (suite à facture recue), je peux donc calculer dans ce formulaire dans une zone de texte le nombre de licences qui reste à payer (la différence). Je souhaiterai aller plus loin en calculant la somme qu'il reste à payer : il faudrait donc lier le nombre de licences qui reste à payer au cout de la licence de chaque prestataire pour chaque catégorie d'age.
J'ai essayé de rentrer dans ma source de données de la zone de texte correspondante
où nb_M7 correspond à la zone de texte qui contient le nombre de licence pour la catégorie M7 (déterminée à l'aide de CpteDom), nb_Fede_M7 correspond à la zone de texte où je renseigne le nombre de licences M7 payées. Le reste ([T_Fede]![partFede]) provient du choix que j'ai fiat en allant dans le générateur d'expression, mon nom de fichier, la table correspondante puis le champ qui contient le cout de la licence pour la fede.
Quand je lance le calcul, j'ai la mention #Nom ?
Je me doute que le problème vient du fait que dans le calcul le champ partFede n'est pas pris en compte puisque j'en ai plusieurs disponibles (un par catégorie) et qu'il n'est pas indiqué quelle catégorie sélectionnée.
Avez-vous une idée pour m'éclairer ?
Merci d'avance
Je cherche à gérer à faire une petite gestion de paiement des cotisations à l'aide d'access.
J'ai une table qui contient mon fichier d'adhérent (T_adherent), une qui contient la liste des licences (T_licence) et une qui contient le cout de la licence des différents prestataires (T_fede, T_comite, T_ligue, T_club) pour chacune des catégories d'âge : en faisant les bonnes liaisons, j'ai associé une catégorie à son cout de licence pour chaque prestataire. Pour ça, pas de problème.
Dans un formulaire, j'ai calculé le nombre de licenciés selon la catégorie (à l'aide des fonctions CpteDom).
J'ai ajouté une zone de texte dans laquelle je renseigne le nombre de licences payées (suite à facture recue), je peux donc calculer dans ce formulaire dans une zone de texte le nombre de licences qui reste à payer (la différence). Je souhaiterai aller plus loin en calculant la somme qu'il reste à payer : il faudrait donc lier le nombre de licences qui reste à payer au cout de la licence de chaque prestataire pour chaque catégorie d'age.
J'ai essayé de rentrer dans ma source de données de la zone de texte correspondante
=[nb_M7]-[nb_Fede_M7]*[T_Fede]![partFede]
où nb_M7 correspond à la zone de texte qui contient le nombre de licence pour la catégorie M7 (déterminée à l'aide de CpteDom), nb_Fede_M7 correspond à la zone de texte où je renseigne le nombre de licences M7 payées. Le reste ([T_Fede]![partFede]) provient du choix que j'ai fiat en allant dans le générateur d'expression, mon nom de fichier, la table correspondante puis le champ qui contient le cout de la licence pour la fede.
Quand je lance le calcul, j'ai la mention #Nom ?
Je me doute que le problème vient du fait que dans le calcul le champ partFede n'est pas pris en compte puisque j'en ai plusieurs disponibles (un par catégorie) et qu'il n'est pas indiqué quelle catégorie sélectionnée.
Avez-vous une idée pour m'éclairer ?
Merci d'avance
A voir également:
- Calcul dans un formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Calcul moyenne excel - Guide
- Formulaire de reclamation instagram - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
8 réponses
Bonjour
Je viens de m'en rendre compte : j'ai supprimé les fichiers correspondants sur Cjoint.
Je renvoie la base completement anonymisée : ici
Je viens de m'en rendre compte : j'ai supprimé les fichiers correspondants sur Cjoint.
Je renvoie la base completement anonymisée : ici
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour
cela ne fonctionne pas
Message reçu
Format base de données (;users\\desktop`\adherents v6. accdb) nom reconnu
Que faire?
cela ne fonctionne pas
Message reçu
Format base de données (;users\\desktop`\adherents v6. accdb) nom reconnu
Que faire?
bonjour
Je vais essayer de t'aider en envoyant conseils par email si tu veux me donner ton adresse en la copiant sur une page word que tu comresses et tu m'envoie car comment filtres les commentaires ou il y a des adresses mails..
Je vais essayer de t'aider en envoyant conseils par email si tu veux me donner ton adresse en la copiant sur une page word que tu comresses et tu m'envoie car comment filtres les commentaires ou il y a des adresses mails..
Bonjour Castours,
Je t'envoie la base de Albmoi
http://www.cjoint.com/c/EGsklwepIpm
Elle n'est pas compressée, ce sera plus simple à ouvrir. Je rappelle qu'elle est en .accdb
Je dois te dire que je n'ai jamais compris ton insistance à toujours vouloir compresser les BDD, alors que Cjoint.com accepte les fichiers jusqu'à 15Mb
En espérant que tu puisse enfin l'ouvrir.
Donne des nouvelles.
Bonne suite.
Je t'envoie la base de Albmoi
http://www.cjoint.com/c/EGsklwepIpm
Elle n'est pas compressée, ce sera plus simple à ouvrir. Je rappelle qu'elle est en .accdb
Je dois te dire que je n'ai jamais compris ton insistance à toujours vouloir compresser les BDD, alors que Cjoint.com accepte les fichiers jusqu'à 15Mb
En espérant que tu puisse enfin l'ouvrir.
Donne des nouvelles.
Bonne suite.
A Nlbmoi,
J'ai jeté un oeil rapide à ta base.
Il me semble que tu pourrais facilement supprimer les 2 ou 3 tables qui n'ont qu'un seul champ.Si les contenus te servent pour des listes de choix, tu dois savoir que tu peux construire tes listes directement avec une requête construite sur le seul champ qui reçoit cette donnée.
Bonne suite.
J'ai jeté un oeil rapide à ta base.
Il me semble que tu pourrais facilement supprimer les 2 ou 3 tables qui n'ont qu'un seul champ.Si les contenus te servent pour des listes de choix, tu dois savoir que tu peux construire tes listes directement avec une requête construite sur le seul champ qui reçoit cette donnée.
Bonne suite.
Re...,
Le problème est que je ne suis pas le seul à utiliser la base
Cela ne change rien au problème; c'est même plus compliqué parce que ça oblige à entrer les nouvelles données exprès et à part pour que la table de référence soit à jour lorsqu'on l'utilise. Alors que si la requête est basée sur le champ seulement, il suffit d'entrée les nouvelles données au fur et à mesure des saisies.
Il suffit alors d'avoir pour la source, une requête du type:
SELECT DISTINCT T_TableDEnregistrement.Champ_A_Selectionner FROM T_TableDEnregistrement;
Et il faut régler la propriété de la liste de choix sur : Limiter à liste = Non
Au besoin Castours te confirmera.
Bonne suite à tous les deux.
Le problème est que je ne suis pas le seul à utiliser la base
Cela ne change rien au problème; c'est même plus compliqué parce que ça oblige à entrer les nouvelles données exprès et à part pour que la table de référence soit à jour lorsqu'on l'utilise. Alors que si la requête est basée sur le champ seulement, il suffit d'entrée les nouvelles données au fur et à mesure des saisies.
Il suffit alors d'avoir pour la source, une requête du type:
SELECT DISTINCT T_TableDEnregistrement.Champ_A_Selectionner FROM T_TableDEnregistrement;
Et il faut régler la propriété de la liste de choix sur : Limiter à liste = Non
Au besoin Castours te confirmera.
Bonne suite à tous les deux.
non mais il faut connaître l'un et l'autre pour connaître le montant de la cotisation.
Si le type de licence est compet VB alors il faut connaître la catégorie pour calculer la cotisation. Pour tous les autres types de licence, c'est le type de licence qui détermine le montant de la cotisation (on paye le même prix quelle que soit sa catégorie).
J'ai modifié mon fichier pour mettre à jour le champ catégorie de ma table t_adherent à l'aide d'une requête mise à jour avec la fonction CategorieSaison dont le code vba est le suivant (module 2) :
Ainsi, on peut déterminer à l'aide de la seule categorie définie ainsi le montant de la licence.
Le cas de la mutation est un peu différente, car c'est quelque chose en plus de la licence : on paye ce montant en plus de la cotisation lorsqu'on prend une licence Compet VB, categorie senior et que la case Mutation est cochée (dans T_adherent).
Après, de la même manière que pour le type de licence 2, si c''est trop compliqué à gérer 2 items en même temps, on peut les mettre de côté en attendant.
Si le type de licence est compet VB alors il faut connaître la catégorie pour calculer la cotisation. Pour tous les autres types de licence, c'est le type de licence qui détermine le montant de la cotisation (on paye le même prix quelle que soit sa catégorie).
J'ai modifié mon fichier pour mettre à jour le champ catégorie de ma table t_adherent à l'aide d'une requête mise à jour avec la fonction CategorieSaison dont le code vba est le suivant (module 2) :
Public Function CategorieSaison(Annee As Long, Datenaissance As Date, Typelicence As String) As String
Dim Age As Long
Dim txtCat2 As String
Dim Typelicence_str As String
Age = Annee - Year(Datenaissance)
Typelicence_str = Typelicence
If Typelicence_str = "Compet VB" Then
Select Case Age
Case Is <= 6
txtCat2 = "M7"
Case Is = 7, 8
txtCat2 = "M9"
Case Is = 9, 10
txtCat2 = "M11"
Case Is = 11, 12
txtCat2 = "M13"
Case Is = 13, 14
txtCat2 = "M15"
Case Is = 15, 16
txtCat2 = "M17"
Case Is = 17, 18, 19
txtCat2 = "M20"
Case Is > 19
txtCat2 = "Senior"
End Select
Else
txtCat2 = Typelicence_str
End If
CategorieSaison = txtCat2
End Function
Ainsi, on peut déterminer à l'aide de la seule categorie définie ainsi le montant de la licence.
Le cas de la mutation est un peu différente, car c'est quelque chose en plus de la licence : on paye ce montant en plus de la cotisation lorsqu'on prend une licence Compet VB, categorie senior et que la case Mutation est cochée (dans T_adherent).
Après, de la même manière que pour le type de licence 2, si c''est trop compliqué à gérer 2 items en même temps, on peut les mettre de côté en attendant.