Calcul dans un formulaire

Fermé
nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023 - 13 juil. 2015 à 09:41
nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023 - 3 août 2015 à 08:10
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
=[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:

8 réponses

bonjour
Quand on fait un calcul, les champs solicitès doivent êtres en numériques pas en texte
0
bonjour
tu es sous access ou excel?
0
Bonjour
Peux tu mettre ta base sur le site avec cjoint pour mieux comprendre ton probleme
0
nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023 24
14 juil. 2015 à 10:36
Bonjour

Je suis sous access. Ma base ici
Pour ma base, le résultat que je souhaiterai est visible dans le formulaire Formulaire 1.
0
castours > nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023
14 juil. 2015 à 18:11
bonjour
Avant de la mettre sur cjoinr, il faut compresser la base puis faire le lien
0
Bonjour
ATTENTION!!!
J'ai regardé ta base pour voir le problème et je me suis rendu compte que ta base n'est pas anonymisée. Elle porte les noms complets, adresses e-mails et téléphone.
Je demande la suppression de tes réponses précédentes.
Bonne suite.
0
castours > Tessel75
15 juil. 2015 à 10:42
Bonjour Tessel
Es ce cela qui gene l'ouverture de la base quand je decompresse?
As tu dans tes archives winzip 8.1 français?
Merci
Guy
0
nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023 24 > Tessel75
15 juil. 2015 à 10:43
Bonjour

Je viens de m'en rendre compte : j'ai supprimé les fichiers correspondants sur Cjoint.
Je renvoie la base completement anonymisée : ici
0
bonjour
merci de ta reponse
oui j'ai un access 2007 et je vais essayer ta solution
0

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?
0
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 152
16 juil. 2015 à 10:13
Alors la, je sèche.. je vais essayer de la convertir en .mdb
0
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 152 > eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022
16 juil. 2015 à 10:23
Ba j'arrive pas à la convertir
0
castours > eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022
16 juil. 2015 à 17:22
Bonjour
Tu ne pourras pas. C'est une version inferieur access 2007. on peut convertir access 2003 vers 2007 mais pas l'inversr
0
nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023 24
18 juil. 2015 à 07:35
Ah donc pas possible de m'aider ?
0
castours > nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023
18 juil. 2015 à 08:49
Bonjour
Je t'avais envoyé une recommandation de passer tous les champs qui supportent des calculs en numérique. Access ne fait pas de calcul avec du texte.
0
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..
0
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.
0
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.
0
castours > Tessel75
18 juil. 2015 à 16:38
Bonjour Tessel

Toujours le meme probleme format base pas reconnu
Peut etre version superieur a 2007, alors la , on ne fonctionne pas.
0
J'ai fait une copie en .mdb (2003-2007), essaie si ça passe.
http://www.cjoint.com/c/EGsrheM3sFm
0
castours > Tessel
18 juil. 2015 à 19:49
bonjour
C'est tout bon, j'ai pu ouvrir la base
Merci de ton aide
0
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.
0
nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023 24
20 juil. 2015 à 10:52
Bonjour

Je ne comprends pas bien ta méthode : quand tu as une liste de choix dans un formulaire, tu utilises une requête ?
0
castours > nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023
Modifié par castours le 20/07/2015 à 15:58
bonjour
oui tu peux utiliser un requete pour faire un tri croissant de ta liste ou directement de la table.
0
castours > nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023
20 juil. 2015 à 16:18
bonjour
Il y a plusieurs possibilités de créer un liste déroulante. Tu peux la faire au moment de la création de la table ou dans un formulaire en transformant un champ existant en liste deroulante..
0
Tessel75 > nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023
20 juil. 2015 à 19:59
Benh ! Oui ! C'est même la méthode la plus facile à privilégier pour faire une liste déroulante. Mais je laisse Castours te montrer un exemple puisqu'il a commencé à prendre en charge ta demande depuis déjà plusieurs jours.
0
types de licences et categorie c'est la meme chose?
0
nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023 24
22 juil. 2015 à 07:17
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) :
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.
0