Probleme dans un champ calculé
jeffrey734
Messages postés
59
Date d'inscription
Statut
Membre
Dernière intervention
-
Tessel75 -
Tessel75 -
bonjour j'etais en train d'essayer de créer un champ calculer dans ma base de donnée access seulement j'avais plutot l'habitude sur excel et dans access ca a l'aire d'etre différent
en gros j'essaye de faire en sorte que mon champ calcule des taxe dependament de mon numero de facture j'ai donc essayer ceci pour faire plus simple mais j'arrive pas a la faire fonctionné
IIf( [Numero_de_facture] = MG08*; «Expr» [Prix] + [TPS] * 0,075; «Expr» [Prix] * 0,0975)
MG08* est pour mes numero de facture par xemple (MG08-01) le * comme generique
si vous pouriez m'eclairer sur le pourquoi ca ne fonctionne pas pour que finalement j'arrive a faire fonctionner cette formule ci
IIf( [Numero_de_facture] =MG08*; «Expr» [Prix] + [TPS] *0,075; IIf( [Numero_de_facture] =MG09*; «Expr» [Prix] + [TPS] *0,075;IIf( [Numero_de_facture] =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;IIf( [Numero_de_facture] =MG13*; «Expr» [Prix] *0,0975;IIf([Numero_de_facture] =MG14*; «Expr» [Prix] *0,0975; «Expr» [Prix] *0,0975))))))
merci a vous
en gros j'essaye de faire en sorte que mon champ calcule des taxe dependament de mon numero de facture j'ai donc essayer ceci pour faire plus simple mais j'arrive pas a la faire fonctionné
IIf( [Numero_de_facture] = MG08*; «Expr» [Prix] + [TPS] * 0,075; «Expr» [Prix] * 0,0975)
MG08* est pour mes numero de facture par xemple (MG08-01) le * comme generique
si vous pouriez m'eclairer sur le pourquoi ca ne fonctionne pas pour que finalement j'arrive a faire fonctionner cette formule ci
IIf( [Numero_de_facture] =MG08*; «Expr» [Prix] + [TPS] *0,075; IIf( [Numero_de_facture] =MG09*; «Expr» [Prix] + [TPS] *0,075;IIf( [Numero_de_facture] =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;IIf( [Numero_de_facture] =MG13*; «Expr» [Prix] *0,0975;IIf([Numero_de_facture] =MG14*; «Expr» [Prix] *0,0975; «Expr» [Prix] *0,0975))))))
merci a vous
A voir également:
- Probleme dans un champ calculé
- Le nom du champ de tableau croisé dynamique n'est pas valide - Forum Excel
- Excel champ calculé avec condition - Forum Excel
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Excel
- Comment on calcule une moyenne - Guide
- Clémence souhaite faire calculer automatiquement les prix de 30 produits dans trois devises. elle a déjà saisi une formule de calcul pour le tarif du premier produit dans la première devise. corrigez sa formule afin que recopiée vers le bas puis vers la droite, elle remplisse correctement tout le tableau. - Forum Excel
11 réponses
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
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
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
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.
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é.
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.
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