Voici mon souhait. J'ai une table assez longue qui contient les champs
suivants (entre autres) :
Code.rubrique (ce code est li=E9 au contenu d'une table "Rubriques")
Nombre
Quantit=E9
Montant
je souhaiterais faire des simulations de calcul. Mon souci, c'est que
le calcul =E0 faire n'est pas toujours le m=EAme en fonction de la
rubrique
Parfois, c'est nb*qt=E9., parfois il faut juste prendre le montant ....
et les cas sont assez divers.
Mon id=E9e =E9tait de cr=E9er un champ dans la table "Rubriques" intitul=E9
"calcul" dans lequel j'indiquerai le calcul =E0 faire.
Par exemple : nb * Qt=E9 ou Montant * 2
Ensuite, avec VBA et DAO, j'ouvre un recordset et j'applique sur
chaque ligne la formule qui provient du champ "calcul".
Mon souci, c'est que je ne vois pas trop comment traduire le champ
texte "nb * qt=E9" pour faire le calcule en VBA.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
3stone
Salut,
LDLOGON wrote:
Voici mon souhait. J'ai une table assez longue qui contient les champs suivants (entre autres) :
Code.rubrique (ce code est lié au contenu d'une table "Rubriques") Nombre Quantité Montant
je souhaiterais faire des simulations de calcul. Mon souci, c'est que le calcul à faire n'est pas toujours le même en fonction de la rubrique Parfois, c'est nb*qté., parfois il faut juste prendre le montant .... et les cas sont assez divers.
Mon idée était de créer un champ dans la table "Rubriques" intitulé "calcul" dans lequel j'indiquerai le calcul à faire. Par exemple : nb * Qté ou Montant * 2
Il ne faut surtout pas faire de telle chose !!! La formule de calculs n'ont rien à faire dans un champ de table. Je pense aussi que tu as un (gros) problème de conception. Pour remédier à cela, tu devrais lire ceci (et les 3 pages suivantes) http://www.3stone.be/access/articles.php?lng=fr&pg"1
Ensuite, avec VBA et DAO, j'ouvre un recordset et j'applique sur chaque ligne la formule qui provient du champ "calcul".
Il se peut que tu aies besoin d'utiliser le VBA, pour autant que tu le maitrise un temps soit peu...
Mais, à lire tes besoin, tu dois aussi pouvoir t'en sortir avec un champ "calculé" dans la requête.
Voici mon souhait. J'ai une table assez longue qui contient les champs
suivants (entre autres) :
Code.rubrique (ce code est lié au contenu d'une table "Rubriques")
Nombre
Quantité
Montant
je souhaiterais faire des simulations de calcul. Mon souci, c'est que
le calcul à faire n'est pas toujours le même en fonction de la
rubrique
Parfois, c'est nb*qté., parfois il faut juste prendre le montant ....
et les cas sont assez divers.
Mon idée était de créer un champ dans la table "Rubriques" intitulé
"calcul" dans lequel j'indiquerai le calcul à faire.
Par exemple : nb * Qté ou Montant * 2
Il ne faut surtout pas faire de telle chose !!!
La formule de calculs n'ont rien à faire dans un champ de table.
Je pense aussi que tu as un (gros) problème de conception.
Pour remédier à cela, tu devrais lire ceci (et les 3 pages suivantes)
http://www.3stone.be/access/articles.php?lng=fr&pg"1
Ensuite, avec VBA et DAO, j'ouvre un recordset et j'applique sur
chaque ligne la formule qui provient du champ "calcul".
Il se peut que tu aies besoin d'utiliser le VBA, pour autant
que tu le maitrise un temps soit peu...
Mais, à lire tes besoin, tu dois aussi pouvoir t'en sortir avec
un champ "calculé" dans la requête.
Voici mon souhait. J'ai une table assez longue qui contient les champs suivants (entre autres) :
Code.rubrique (ce code est lié au contenu d'une table "Rubriques") Nombre Quantité Montant
je souhaiterais faire des simulations de calcul. Mon souci, c'est que le calcul à faire n'est pas toujours le même en fonction de la rubrique Parfois, c'est nb*qté., parfois il faut juste prendre le montant .... et les cas sont assez divers.
Mon idée était de créer un champ dans la table "Rubriques" intitulé "calcul" dans lequel j'indiquerai le calcul à faire. Par exemple : nb * Qté ou Montant * 2
Il ne faut surtout pas faire de telle chose !!! La formule de calculs n'ont rien à faire dans un champ de table. Je pense aussi que tu as un (gros) problème de conception. Pour remédier à cela, tu devrais lire ceci (et les 3 pages suivantes) http://www.3stone.be/access/articles.php?lng=fr&pg"1
Ensuite, avec VBA et DAO, j'ouvre un recordset et j'applique sur chaque ligne la formule qui provient du champ "calcul".
Il se peut que tu aies besoin d'utiliser le VBA, pour autant que tu le maitrise un temps soit peu...
Mais, à lire tes besoin, tu dois aussi pouvoir t'en sortir avec un champ "calculé" dans la requête.
Pour cette réponse rapide. Je m'aperçois que je n'ai pas forcément été très clair.
En fait, pourquoi je veux stocker la formule dans un champ texte de la table "rubriques", c'est parce que le calcul doit être différent en foonction du code de la rubrique.
Par exemple : Si c'est la rubrique 01. je dois faire nb * qté Si c'est la rubrique 02. je dois faire nb * qté * 2 si c'est la rubrique 03, la formule doit être qté * tx_minimal
En fait, dans ma table j'ai un champ simulation. et je dois le compléter en appliquant une formule qui sera différente selon le code de la rubrique.
Il se peut que tu aies besoin d'utiliser le VBA, pour autant que tu le maitrise un temps soit peu...
Je ne suis pas un pro, mais c'est souvent de avec VBA et DAO que je fais mes calculs, car je trouve cela un peu plus clair que les requêtes calculées.
Encore merci.
Merci,
Pour cette réponse rapide.
Je m'aperçois que je n'ai pas forcément été très clair.
En fait, pourquoi je veux stocker la formule dans un champ texte de la
table "rubriques", c'est parce que le calcul doit être différent en
foonction du code de la rubrique.
Par exemple :
Si c'est la rubrique 01. je dois faire nb * qté
Si c'est la rubrique 02. je dois faire nb * qté * 2
si c'est la rubrique 03, la formule doit être qté * tx_minimal
En fait, dans ma table j'ai un champ simulation. et je dois le
compléter en appliquant une formule qui sera différente selon le code
de la rubrique.
Il se peut que tu aies besoin d'utiliser le VBA, pour autant
que tu le maitrise un temps soit peu...
Je ne suis pas un pro, mais c'est souvent de avec VBA et DAO que je
fais mes calculs, car je trouve cela un peu plus clair que les
requêtes calculées.
Pour cette réponse rapide. Je m'aperçois que je n'ai pas forcément été très clair.
En fait, pourquoi je veux stocker la formule dans un champ texte de la table "rubriques", c'est parce que le calcul doit être différent en foonction du code de la rubrique.
Par exemple : Si c'est la rubrique 01. je dois faire nb * qté Si c'est la rubrique 02. je dois faire nb * qté * 2 si c'est la rubrique 03, la formule doit être qté * tx_minimal
En fait, dans ma table j'ai un champ simulation. et je dois le compléter en appliquant une formule qui sera différente selon le code de la rubrique.
Il se peut que tu aies besoin d'utiliser le VBA, pour autant que tu le maitrise un temps soit peu...
Je ne suis pas un pro, mais c'est souvent de avec VBA et DAO que je fais mes calculs, car je trouve cela un peu plus clair que les requêtes calculées.
Encore merci.
3stone
Salut,
LDLOGON wrote:
Merci,
Pour cette réponse rapide. Je m'aperçois que je n'ai pas forcément été très clair.
En fait, pourquoi je veux stocker la formule dans un champ texte de la table "rubriques", c'est parce que le calcul doit être différent en foonction du code de la rubrique.
Par exemple : Si c'est la rubrique 01. je dois faire nb * qté Si c'est la rubrique 02. je dois faire nb * qté * 2 si c'est la rubrique 03, la formule doit être qté * tx_minimal
En fait, dans ma table j'ai un champ simulation. et je dois le compléter en appliquant une formule qui sera différente selon le code de la rubrique.
Comme je disais, ce sont les valeurs que l'ont sauve dans les tables... et tu as un problème de conception.
Ici, la valeur _semble_ être désigné par "la rubrique" et il faut donc compléter la table "rubrique" et y ajouter la valeur qui va bien!
Pour cette réponse rapide.
Je m'aperçois que je n'ai pas forcément été très clair.
En fait, pourquoi je veux stocker la formule dans un champ texte de la
table "rubriques", c'est parce que le calcul doit être différent en
foonction du code de la rubrique.
Par exemple :
Si c'est la rubrique 01. je dois faire nb * qté
Si c'est la rubrique 02. je dois faire nb * qté * 2
si c'est la rubrique 03, la formule doit être qté * tx_minimal
En fait, dans ma table j'ai un champ simulation. et je dois le
compléter en appliquant une formule qui sera différente selon le code
de la rubrique.
Comme je disais, ce sont les valeurs que l'ont sauve dans les tables...
et tu as un problème de conception.
Ici, la valeur _semble_ être désigné par "la rubrique" et il faut donc
compléter la table "rubrique" et y ajouter la valeur qui va bien!
Pour cette réponse rapide. Je m'aperçois que je n'ai pas forcément été très clair.
En fait, pourquoi je veux stocker la formule dans un champ texte de la table "rubriques", c'est parce que le calcul doit être différent en foonction du code de la rubrique.
Par exemple : Si c'est la rubrique 01. je dois faire nb * qté Si c'est la rubrique 02. je dois faire nb * qté * 2 si c'est la rubrique 03, la formule doit être qté * tx_minimal
En fait, dans ma table j'ai un champ simulation. et je dois le compléter en appliquant une formule qui sera différente selon le code de la rubrique.
Comme je disais, ce sont les valeurs que l'ont sauve dans les tables... et tu as un problème de conception.
Ici, la valeur _semble_ être désigné par "la rubrique" et il faut donc compléter la table "rubrique" et y ajouter la valeur qui va bien!
Effectivement, c'est dans la table "rubrique" que je veux préciser quel calcul il faut faire. Prenons l'exemple d'un programme de paye. les rubriques peuvent se calculer de plusieurs façons : si salaire mensuel : 151.67 * taux_horaire si heures supp : nb_heures_supp * taux * 1.25 si ancienneté : base_ancienneté * taux_ancienneté.
donc, ce que je voudrais, c'est que dans la table "rubriques" il y ait un champ texte précisant le calcul que l'on doit effectuer : ex : nb * qté ex2 : taux_ancienneté * base_ancienneté .....
dans ma table "historique_rubriques" je balaie ligne par ligne avec DAO et j'effectue le calcul prévu en fonction du code de la rubrique. Bien entendu, les différentes variables sont présentes dans la table "historique_rubriques".
ainsi si j'arrive sur la rubrique : '01' et que la formule correspondante est : "qté * taux_horaire" je fais le calcul en vba : Rst!nb * Rst!tx_hor '02' et que la formule correspondante est : "nb_heures_supp * taux_horaire * 1.25" je fais le calcul en vba : Rst!nb_hsupp * Rst! tx_hor * 1.25
Ce que je n'arrive pas à faire, c'est traduire un champ texte "Rst!Qté * Rst!taux_horaire" en calcul VBA : Rst!Qté * Rst!taux_horaire"
J'ai bien conscience de ne pas être très clair, et je vous suis d'autant plus reconnaissant de me consacrer ce temps.
Ici, la valeur _semble_ être désigné par "la rubrique" et il faut d onc
compléter la table "rubrique" et y ajouter la valeur qui va bien!
Effectivement, c'est dans la table "rubrique" que je veux préciser
quel calcul il faut faire.
Prenons l'exemple d'un programme de paye.
les rubriques peuvent se calculer de plusieurs façons :
si salaire mensuel : 151.67 * taux_horaire
si heures supp : nb_heures_supp * taux * 1.25
si ancienneté : base_ancienneté * taux_ancienneté.
donc, ce que je voudrais, c'est que dans la table "rubriques" il y ait
un champ texte précisant le calcul que l'on doit effectuer :
ex : nb * qté
ex2 : taux_ancienneté * base_ancienneté
.....
dans ma table "historique_rubriques" je balaie ligne par ligne avec
DAO et j'effectue le calcul prévu en fonction du code de la rubrique.
Bien entendu, les différentes variables sont présentes dans la table
"historique_rubriques".
ainsi si j'arrive sur la rubrique :
'01' et que la formule correspondante est : "qté * taux_horaire" je
fais le calcul en vba : Rst!nb * Rst!tx_hor
'02' et que la formule correspondante est : "nb_heures_supp *
taux_horaire * 1.25" je fais le calcul en vba : Rst!nb_hsupp * Rst!
tx_hor * 1.25
Ce que je n'arrive pas à faire, c'est traduire un champ texte "Rst!Qté
* Rst!taux_horaire" en calcul VBA : Rst!Qté * Rst!taux_horaire"
J'ai bien conscience de ne pas être très clair, et je vous suis
d'autant plus reconnaissant de me consacrer ce temps.
Effectivement, c'est dans la table "rubrique" que je veux préciser quel calcul il faut faire. Prenons l'exemple d'un programme de paye. les rubriques peuvent se calculer de plusieurs façons : si salaire mensuel : 151.67 * taux_horaire si heures supp : nb_heures_supp * taux * 1.25 si ancienneté : base_ancienneté * taux_ancienneté.
donc, ce que je voudrais, c'est que dans la table "rubriques" il y ait un champ texte précisant le calcul que l'on doit effectuer : ex : nb * qté ex2 : taux_ancienneté * base_ancienneté .....
dans ma table "historique_rubriques" je balaie ligne par ligne avec DAO et j'effectue le calcul prévu en fonction du code de la rubrique. Bien entendu, les différentes variables sont présentes dans la table "historique_rubriques".
ainsi si j'arrive sur la rubrique : '01' et que la formule correspondante est : "qté * taux_horaire" je fais le calcul en vba : Rst!nb * Rst!tx_hor '02' et que la formule correspondante est : "nb_heures_supp * taux_horaire * 1.25" je fais le calcul en vba : Rst!nb_hsupp * Rst! tx_hor * 1.25
Ce que je n'arrive pas à faire, c'est traduire un champ texte "Rst!Qté * Rst!taux_horaire" en calcul VBA : Rst!Qté * Rst!taux_horaire"
J'ai bien conscience de ne pas être très clair, et je vous suis d'autant plus reconnaissant de me consacrer ce temps.
3stone
Salut,
LDLOGON wrote:
Ici, la valeur _semble_ être désigné par "la rubrique" et il faut donc compléter la table "rubrique" et y ajouter la valeur qui va bien!
Effectivement, c'est dans la table "rubrique" que je veux préciser quel calcul il faut faire. Prenons l'exemple d'un programme de paye. les rubriques peuvent se calculer de plusieurs façons : si salaire mensuel : 151.67 * taux_horaire si heures supp : nb_heures_supp * taux * 1.25 si ancienneté : base_ancienneté * taux_ancienneté.
donc, ce que je voudrais, c'est que dans la table "rubriques" il y ait un champ texte précisant le calcul que l'on doit effectuer : ex : nb * qté ex2 : taux_ancienneté * base_ancienneté .....
dans ma table "historique_rubriques" je balaie ligne par ligne avec DAO et j'effectue le calcul prévu en fonction du code de la rubrique. Bien entendu, les différentes variables sont présentes dans la table "historique_rubriques".
ainsi si j'arrive sur la rubrique : '01' et que la formule correspondante est : "qté * taux_horaire" je fais le calcul en vba : Rst!nb * Rst!tx_hor '02' et que la formule correspondante est : "nb_heures_supp * taux_horaire * 1.25" je fais le calcul en vba : Rst!nb_hsupp * Rst! tx_hor * 1.25
Ce que je n'arrive pas à faire, c'est traduire un champ texte "Rst!Qté * Rst!taux_horaire" en calcul VBA : Rst!Qté * Rst!taux_horaire"
Je reste sur ma position, je te déconseille cette démarche! Je pense que tu essayes d'appliquer une réflexion à la Excel ;-)
Au besoin, tu dois ajouter une table du style TauxMultiplicateur" en liaison avec ta table Rubrique.
Effectivement, c'est dans la table "rubrique" que je veux préciser
quel calcul il faut faire.
Prenons l'exemple d'un programme de paye.
les rubriques peuvent se calculer de plusieurs façons :
si salaire mensuel : 151.67 * taux_horaire
si heures supp : nb_heures_supp * taux * 1.25
si ancienneté : base_ancienneté * taux_ancienneté.
donc, ce que je voudrais, c'est que dans la table "rubriques" il y ait
un champ texte précisant le calcul que l'on doit effectuer :
ex : nb * qté
ex2 : taux_ancienneté * base_ancienneté
.....
dans ma table "historique_rubriques" je balaie ligne par ligne avec
DAO et j'effectue le calcul prévu en fonction du code de la rubrique.
Bien entendu, les différentes variables sont présentes dans la table
"historique_rubriques".
ainsi si j'arrive sur la rubrique :
'01' et que la formule correspondante est : "qté * taux_horaire" je
fais le calcul en vba : Rst!nb * Rst!tx_hor
'02' et que la formule correspondante est : "nb_heures_supp *
taux_horaire * 1.25" je fais le calcul en vba : Rst!nb_hsupp * Rst!
tx_hor * 1.25
Ce que je n'arrive pas à faire, c'est traduire un champ texte "Rst!Qté
* Rst!taux_horaire" en calcul VBA : Rst!Qté * Rst!taux_horaire"
Je reste sur ma position, je te déconseille cette démarche!
Je pense que tu essayes d'appliquer une réflexion à la Excel ;-)
Au besoin, tu dois ajouter une table du style TauxMultiplicateur"
en liaison avec ta table Rubrique.
Effectivement, c'est dans la table "rubrique" que je veux préciser quel calcul il faut faire. Prenons l'exemple d'un programme de paye. les rubriques peuvent se calculer de plusieurs façons : si salaire mensuel : 151.67 * taux_horaire si heures supp : nb_heures_supp * taux * 1.25 si ancienneté : base_ancienneté * taux_ancienneté.
donc, ce que je voudrais, c'est que dans la table "rubriques" il y ait un champ texte précisant le calcul que l'on doit effectuer : ex : nb * qté ex2 : taux_ancienneté * base_ancienneté .....
dans ma table "historique_rubriques" je balaie ligne par ligne avec DAO et j'effectue le calcul prévu en fonction du code de la rubrique. Bien entendu, les différentes variables sont présentes dans la table "historique_rubriques".
ainsi si j'arrive sur la rubrique : '01' et que la formule correspondante est : "qté * taux_horaire" je fais le calcul en vba : Rst!nb * Rst!tx_hor '02' et que la formule correspondante est : "nb_heures_supp * taux_horaire * 1.25" je fais le calcul en vba : Rst!nb_hsupp * Rst! tx_hor * 1.25
Ce que je n'arrive pas à faire, c'est traduire un champ texte "Rst!Qté * Rst!taux_horaire" en calcul VBA : Rst!Qté * Rst!taux_horaire"
Je reste sur ma position, je te déconseille cette démarche! Je pense que tu essayes d'appliquer une réflexion à la Excel ;-)
Au besoin, tu dois ajouter une table du style TauxMultiplicateur" en liaison avec ta table Rubrique.
Je reste sur ma position, je te déconseille cette démarche! Je pense que tu essayes d'appliquer une réflexion à la Excel ;-)
Là, vous avez visé juste ! c'est vrai que j'ai souvent des raisonnements "excel" ce qui pénalise un peu mes appli. Access dès qu'elles deviennent un peu complexes.
Je vais voir comment retravailler cela.
Encore merci
Je reste sur ma position, je te déconseille cette démarche!
Je pense que tu essayes d'appliquer une réflexion à la Excel ;-)
Là, vous avez visé juste ! c'est vrai que j'ai souvent des
raisonnements "excel" ce qui pénalise un peu mes appli. Access dès
qu'elles deviennent un peu complexes.
Je reste sur ma position, je te déconseille cette démarche! Je pense que tu essayes d'appliquer une réflexion à la Excel ;-)
Là, vous avez visé juste ! c'est vrai que j'ai souvent des raisonnements "excel" ce qui pénalise un peu mes appli. Access dès qu'elles deviennent un peu complexes.
Je vais voir comment retravailler cela.
Encore merci
Serge Deimerly
Va voir du côté de la fonction eval(string) qui permet d'utiliser une zone de texte ou un champ pour effectuer un calcul cette fonction géniale existe depuis Access 2 mais n'est jamais officiellement documentée exemple dans la fenêtre d'exécution immédiate de VBA ? eval("1 + 1") et ça marche!
Va voir du côté de la fonction eval(string) qui permet d'utiliser une zone
de texte ou un champ pour effectuer un calcul
cette fonction géniale existe depuis Access 2 mais n'est jamais
officiellement documentée
exemple dans la fenêtre d'exécution immédiate de VBA
? eval("1 + 1") et ça marche!
Va voir du côté de la fonction eval(string) qui permet d'utiliser une zone de texte ou un champ pour effectuer un calcul cette fonction géniale existe depuis Access 2 mais n'est jamais officiellement documentée exemple dans la fenêtre d'exécution immédiate de VBA ? eval("1 + 1") et ça marche!