Probleme dans un champ calculé
Fermé
jeffrey734
Messages postés
59
Date d'inscription
vendredi 19 juin 2009
Statut
Membre
Dernière intervention
5 juillet 2015
-
17 juin 2015 à 02:35
Tessel75 - 6 juil. 2015 à 12:34
Tessel75 - 6 juil. 2015 à 12:34
A voir également:
- Probleme dans un champ calculé
- Le nom du champ de tableau croisé dynamique n'est pas valide - Forum Excel
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Google Docs
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Programmation
- Excel champ calculé avec condition - Forum Excel
- Tableau Croisé Dynamique ✓ - Forum Excel
11 réponses
le meruvien
Messages postés
1125
Date d'inscription
vendredi 12 août 2011
Statut
Membre
Dernière intervention
15 décembre 2024
40
17 juin 2015 à 06:33
17 juin 2015 à 06:33
bonjour,
essaye ça:
IIf( [Numero_de_facture] = MG08* then [Expr]= [Prix] + [TPS] * 0,075
essaye ça:
IIf( [Numero_de_facture] = MG08* then [Expr]= [Prix] + [TPS] * 0,075
Bonjour,
Beaucoup des fonctions de calcul sont communes à Excel et Access, même si elles ne s'écrivent pas toujours de la même façon.
Sinon pour ton problème, il faut savoir où tu as entré ta fonction. Les calculs entrés directement dans les tables ne peuvent être qu'assez simples, sinon ça coince, alors tu dois passer par une requête. De toutes façons, les tables doivent restées les plus légères possibles, alors la saisie des calculs dans les requêtes ne pose aucun problème.
Bonne suite
Beaucoup des fonctions de calcul sont communes à Excel et Access, même si elles ne s'écrivent pas toujours de la même façon.
Sinon pour ton problème, il faut savoir où tu as entré ta fonction. Les calculs entrés directement dans les tables ne peuvent être qu'assez simples, sinon ça coince, alors tu dois passer par une requête. De toutes façons, les tables doivent restées les plus légères possibles, alors la saisie des calculs dans les requêtes ne pose aucun problème.
Bonne suite
jeffrey734
Messages postés
59
Date d'inscription
vendredi 19 juin 2009
Statut
Membre
Dernière intervention
5 juillet 2015
3
18 juin 2015 à 00:55
18 juin 2015 à 00:55
merci pour l'aide j'ai essayer ta formule Meruvien mais ca ne fonctionne pas on me dit L'espression entrée comporte une fonction dont le nombre d'arguments n'est pas corect
le meruvien
Messages postés
1125
Date d'inscription
vendredi 12 août 2011
Statut
Membre
Dernière intervention
15 décembre 2024
40
18 juin 2015 à 06:00
18 juin 2015 à 06:00
bonjour,
a mon avis c'est le "MG08*" qui met la pagaille!!
A quoi correspond ce truc??
a mon avis c'est le "MG08*" qui met la pagaille!!
A quoi correspond ce truc??
Bonjour Méruvien,
Ben alors, Où tu vas là ? Qu'est-ce que c'est cette formule ?
IIf( [Numero_de_facture] = MG08* then [Expr]= [Prix] + [TPS] * 0,075
Il y a un "Then" au milieu de la formule qui n'a rien à faire ici.
Bonjour Jeffrey,
Je te propose la formule qui serait plus simple, mais je n'ai pas compris ce qu'est le [Exp] :
IIf ( ([Numero_de_facture] like MG08*) or ([Numero_de_facture] like MG09*) or ([Numero_de_facture] like MG10*) ; «Expr» [Prix] + [TPS] *0,075; IIf ( [Numero_de_facture] =MG11*; «Expr» [Prix] + [TPS] *0,085; IIf ( [Numero_de_facture] =MG12*; «Expr» [Prix] + [TPS] *0,095; «Expr» [Prix] *0,0975 )))
Bonne suite
Ben alors, Où tu vas là ? Qu'est-ce que c'est cette formule ?
IIf( [Numero_de_facture] = MG08* then [Expr]= [Prix] + [TPS] * 0,075
Il y a un "Then" au milieu de la formule qui n'a rien à faire ici.
Bonjour Jeffrey,
Je te propose la formule qui serait plus simple, mais je n'ai pas compris ce qu'est le [Exp] :
IIf ( ([Numero_de_facture] like MG08*) or ([Numero_de_facture] like MG09*) or ([Numero_de_facture] like MG10*) ; «Expr» [Prix] + [TPS] *0,075; IIf ( [Numero_de_facture] =MG11*; «Expr» [Prix] + [TPS] *0,085; IIf ( [Numero_de_facture] =MG12*; «Expr» [Prix] + [TPS] *0,095; «Expr» [Prix] *0,0975 )))
Bonne suite
jeffrey734
Messages postés
59
Date d'inscription
vendredi 19 juin 2009
Statut
Membre
Dernière intervention
5 juillet 2015
3
Modifié par jeffrey734 le 18/06/2015 à 22:38
Modifié par jeffrey734 le 18/06/2015 à 22:38
Bonjour merci je viens de tester, mais ce a bloqué encore j'y ai pensé aujourd'hui au "comme"/like je crois, bien l'avoir oublié, mais on dirait que ce n'est pas que ça je vais tenter de vulgariser ma formule et d'expliquer un peu ma table
dans ma table j'ai mon champ numéro de facture qui commencent tous pas MG ensuite 08 à 15 qui est pour l'année et ensuite le -01 -02 etc. pour le numéro de cette année ou sinon on pourrait aussi tenter avec un condition avec mon champ [Date_de_facturation] qui devrait aussi pouvoir fonctionner
ensuite je voudrais que ma formule calcule
SI (le numéro de facture commence par MG08(peut importe la suite) FAIT mon PRIX + ma TPS (qui était de 5% dans mon champ TPS et qui fonctionne très bien) SINON SI ça commence par MG09 etc., ainsi de suite pour qu'il calcule mes taxes différentes pour chaque année (je suis au Québec les taxes ont beaucoup changé depuis 2008 lol)
Sinon je me demande si peut-être je ne ferai pas mieux d'abandonner cette idée et essayer de faire une table différente pour chaque année et ensuite je ne sais pas trop comment toute les rassembler dans la même avec une requête? merci de vos conseilles :)
dans ma table j'ai mon champ numéro de facture qui commencent tous pas MG ensuite 08 à 15 qui est pour l'année et ensuite le -01 -02 etc. pour le numéro de cette année ou sinon on pourrait aussi tenter avec un condition avec mon champ [Date_de_facturation] qui devrait aussi pouvoir fonctionner
ensuite je voudrais que ma formule calcule
SI (le numéro de facture commence par MG08(peut importe la suite) FAIT mon PRIX + ma TPS (qui était de 5% dans mon champ TPS et qui fonctionne très bien) SINON SI ça commence par MG09 etc., ainsi de suite pour qu'il calcule mes taxes différentes pour chaque année (je suis au Québec les taxes ont beaucoup changé depuis 2008 lol)
Sinon je me demande si peut-être je ne ferai pas mieux d'abandonner cette idée et essayer de faire une table différente pour chaque année et ensuite je ne sais pas trop comment toute les rassembler dans la même avec une requête? merci de vos conseilles :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re...,
Tu n'as pas répondu à la question de savoir si ton calcul est fait sur une table ou une requête. Je répète si il est sur une table, ce n'est pas la peine d'insister, tu n'y arriveras pas. Les champs calculés des tables ne prennent que des calculs simples, du genre 4 opérations et pas plus. POur les calculs plus complexes, il faut impérativement passer par une requête.
2) Si ton calcul est basé sur des années, pourquoi ne pas avoir, ou peut être existe-t-il déjà, un champ "Année", et après faire le calcul à partir e là; du genre
"Iif( annee < 10 ; aaaa ; Iif (annee < 11 ; bbbb ; Iif( Annee < 12 ; cccc ; dddd )))"
Et alors, faire le calcul final avec la valeur du champ calculé ci-dessus.
Vous faites des trucs compliqués, et après vous vous étonnés que ça coince, plutôt que faire des calculs par étapes successives, avec le calcul final à partir de plusieurs champs calculés successifs. Sans compté que cette méthode permet d'avancer progressivement et de vérifier à chaque étape ce qui passe et ce qui coince.
Bonne suite.
Tu n'as pas répondu à la question de savoir si ton calcul est fait sur une table ou une requête. Je répète si il est sur une table, ce n'est pas la peine d'insister, tu n'y arriveras pas. Les champs calculés des tables ne prennent que des calculs simples, du genre 4 opérations et pas plus. POur les calculs plus complexes, il faut impérativement passer par une requête.
2) Si ton calcul est basé sur des années, pourquoi ne pas avoir, ou peut être existe-t-il déjà, un champ "Année", et après faire le calcul à partir e là; du genre
"Iif( annee < 10 ; aaaa ; Iif (annee < 11 ; bbbb ; Iif( Annee < 12 ; cccc ; dddd )))"
Et alors, faire le calcul final avec la valeur du champ calculé ci-dessus.
Vous faites des trucs compliqués, et après vous vous étonnés que ça coince, plutôt que faire des calculs par étapes successives, avec le calcul final à partir de plusieurs champs calculés successifs. Sans compté que cette méthode permet d'avancer progressivement et de vérifier à chaque étape ce qui passe et ce qui coince.
Bonne suite.
jeffrey734
Messages postés
59
Date d'inscription
vendredi 19 juin 2009
Statut
Membre
Dernière intervention
5 juillet 2015
3
19 juin 2015 à 00:55
19 juin 2015 à 00:55
désoler j'ai du oublier la question dans ma réponse oui il est dans une table alors vous me dites que je serai mieux de passer par une requête
Je dois sélectionner une requête d'ajout? Ou mise à jour? Et ensuite je mets mon calcule a la ligne critère?
c'est vrais que je me casse peut être un peu trop la tête a tout vouloir faire d'un coup, mais j'essaye le plus de choses possible ça fais pas beaucoup de temps que je suis dans ça, ça fais partie d'un module de mon cours en informatique alors j'apprécie beaucoup votre aide merci
Je dois sélectionner une requête d'ajout? Ou mise à jour? Et ensuite je mets mon calcule a la ligne critère?
c'est vrais que je me casse peut être un peu trop la tête a tout vouloir faire d'un coup, mais j'essaye le plus de choses possible ça fais pas beaucoup de temps que je suis dans ça, ça fais partie d'un module de mon cours en informatique alors j'apprécie beaucoup votre aide merci
Re.....,
"une requête d'ajout? Ou mise à jour? "
Pas du tout, il faut une requête "sélection", ordinaire. Le calcul se fera à chaque fois que tu ouvres la requête, c'est prévu pour.
Pour les formulaires, ils seront construits autour des requêtes ou des tables, sans difficulté.
"une requête d'ajout? Ou mise à jour? "
Pas du tout, il faut une requête "sélection", ordinaire. Le calcul se fera à chaque fois que tu ouvres la requête, c'est prévu pour.
Pour les formulaires, ils seront construits autour des requêtes ou des tables, sans difficulté.
jeffrey734
Messages postés
59
Date d'inscription
vendredi 19 juin 2009
Statut
Membre
Dernière intervention
5 juillet 2015
3
19 juin 2015 à 14:38
19 juin 2015 à 14:38
daccord je pense que je commence a comprendre je vais essayer de faire ca mais par la suite y a t'il un moyen pour afficher mon champ dans ma table client? ou il faudra toujours se deplacer entre les table et requete? merci
jeffrey734
Messages postés
59
Date d'inscription
vendredi 19 juin 2009
Statut
Membre
Dernière intervention
5 juillet 2015
3
23 juin 2015 à 21:18
23 juin 2015 à 21:18
rebonjour désoler pour le délai je n'ai pas eu beaucoup de temps pour ma base de données j'ai essayé de créé ma requête et de créer un champ calculé dedans en choisissant ma date comme critère ça a l'aire de bien fonctionner, mais comment je fais pour la choisir comme source de donnée dans ma table principale [client] pour avoir toutes mes informations nécessaires au même endroit sachant que la source sera différente pour chaque année si je fais une requête différente pour chaque merci
Re...
Pas d'affolement! Tu peux utiliser ta requête directement comme source de ton formulaire. Quand tu sélectionnes la source de ton formulaire, tu sélectionnes la requête.
Pour avoir tes champs disponibles pour ton formulaire, il suffit de les mettre dans ta requête. Sans en être sûr, je crois qu'une requête peut aller jusqu'à 255 champs; ça laisse de la marge.
Si tes données sont sur des tables différentes, il suffit de les joindre par un lien pour que les données des 2 tables correspondent les unes aux autres.
Pas d'affolement! Tu peux utiliser ta requête directement comme source de ton formulaire. Quand tu sélectionnes la source de ton formulaire, tu sélectionnes la requête.
Pour avoir tes champs disponibles pour ton formulaire, il suffit de les mettre dans ta requête. Sans en être sûr, je crois qu'une requête peut aller jusqu'à 255 champs; ça laisse de la marge.
Si tes données sont sur des tables différentes, il suffit de les joindre par un lien pour que les données des 2 tables correspondent les unes aux autres.
jeffrey734
Messages postés
59
Date d'inscription
vendredi 19 juin 2009
Statut
Membre
Dernière intervention
5 juillet 2015
3
Modifié par jeffrey734 le 5/07/2015 à 21:56
Modifié par jeffrey734 le 5/07/2015 à 21:56
Rebonjour j'ai pris un peu de temps pour faire mes formulaire et état qui n'était pas encore prêts pour pouvoir essayer ce que vous m'avez dit seulement je suis encore un peu confus j'ai essayer de faire une requête qui sélectionne les factures de 2008 seulement comme exemple et ensuite calculer la 2em taxe de cette façon mon calcule fonctionne, mais il ne se retrouve pas dans ma table principale de client ce qui ne fonctionne pas ensuite pour mes états de client ou bien sinon faire un état pour chaque année peut être? je propose un peu ce qui me passe par la tête je me demande si peut être je devrais pas oublier mon idée de taxe automatique c'est que je me disais que ça serait plus simple pour l'utilisateur et éviterais des erreurs de calcule
pour la partie de "joindre par un lien" vous voulez dire quoi je crois qu'on n'a pas vu ça en classe merci beaucoup
pour la partie de "joindre par un lien" vous voulez dire quoi je crois qu'on n'a pas vu ça en classe merci beaucoup
Re-Bonjour,
"mon calcul fonctionne, mais il ne se retrouve pas dans ma table principale de client"
Le principe 1er d'une base de données est de réduire autant qu'on peut la quantité de données stockées. Ce qui implique que tout est recalculé à chaque fois. Il est donc non seulement normal de ne pas retrouver le calcul dans la table principale, mais ce serait anormal de les y retrouver.
Pour ce qui est des liens, Le mieux est est de consulter cette question, (en particulier la vue d'écran jointe):
http://www.commentcamarche.net/forum/affich-31995703-requete-access
Bonne suite
"mon calcul fonctionne, mais il ne se retrouve pas dans ma table principale de client"
Le principe 1er d'une base de données est de réduire autant qu'on peut la quantité de données stockées. Ce qui implique que tout est recalculé à chaque fois. Il est donc non seulement normal de ne pas retrouver le calcul dans la table principale, mais ce serait anormal de les y retrouver.
Pour ce qui est des liens, Le mieux est est de consulter cette question, (en particulier la vue d'écran jointe):
http://www.commentcamarche.net/forum/affich-31995703-requete-access
Bonne suite