Rechercher : dans
Par :

ACCESS : champ calculé formulair & lien table

Dernière réponse le 10 fév 2009 à 03:48:53 schneider, le 15 mai 2006 à 10:05:59 
 Signaler ce message aux modérateurs

Bonjour
Dans une table le champ calcul est déclaré.
Dans le formulaire dans le champ calcul, une formule est saisie
Le résultat est bien obtenu dans le champ calcul du formulaire
Mais il ne se répercute pas dans le champ calcul de la table.
Il faut faire un copier coller.

Est-il possible d'obtenir le résultat d'un calcul dans le formulair dans la table concernée.

Merci
Luc

Meilleures réponses pour « ACCESS : champ calculé formulair & lien table » dans :
Javascript - Effacer un champ de formulaire lors du clic (focus) VoirIl vous est sûrement arrivé de tomber sur un formulaire HTML avec des valeurs pré-remplies décrivant par exemple le type de valeur attendue. L'intention est louable mais il est désagréable de devoir sélectionner ce texte et le supprimer avant de...
Tableur - Les feuilles de calcul VoirLa notion de feuille de calcul Un tableur présente les données et les formules sous forme d'un tableau (lignes et colonnes) appelé feuille de calcul. Une feuille de calcul est constitué de lignes (numérotées à l'aide de chiffres) et de colonnes...

1

HDU, le 15 mai 2006 à 10:26:38

Bonjour,

Pourquoi stocker un calcul dans une table ????
On ne stocke pas ce genre d'info, le calcul est réalisé au besoin...


a+ Quand jimmy dit what’d I say, I love you baby
C’est comme qui dirait, Toute la province qui chante en anglais

Répondre à HDU

2

schneider, le 15 mai 2006 à 11:34:45

Merci pour la réponse
Je suis tout à fait d'accord.
Mais un collègue m'a posé la question prétendant que c'était possible.
Je lui ai répondu que non.
Mais je voudrais en être sûr et certain.

A+

Répondre à schneider

3

blux, le 15 mai 2006 à 12:46:34

Salut,

la réponse est oui ! On peut le faire.

Mais l'usage et les règles de bonne gestion d'une base de données font que c'est une chose à éviter soigneusement. :-)
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

4

schneider, le 15 mai 2006 à 17:07:19

Merci pour la réponse

je ne sais pas faire, j'utilise des requêtes.

Mais par simple curiosité, comment fait-on ?

A+

Répondre à schneider

5

blux, le 15 mai 2006 à 17:11:17
  • +1

Il suffit de mettre un morceau de code dans le formulaire, qui agira sur l'évènement : "mon champ calcul est mis à jour". Il ira mettre à jour le champ calcul de l'enregistrement en cours dans le formulaire...
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

6

schneider, le 15 mai 2006 à 17:16:24

Merci

Mais j'ai pas compris

Dommage

Répondre à schneider

7

blux, le 16 mai 2006 à 09:11:32

Petite explication :

Un formulaire est composé d'objets qui contiennent des données (liste, liste déroulante, zone de texte...) ou qui n'en contiennent pas (bouton, case à cocher...)

Il y a moyen de faire "agir" ces objets lorsque quelque chose leur arrive : un clic sur un bouton, un changement dans un choix... C'est ce qu'on appelle de la programmation "évènementielle".

Donc, dans ton formulaire, ta zone de calcul a des propriétés que tu peux renseigner, elles se trouvent dans l'onglet 'évènement' de ton objet (accessible en mode création de formulaire avec un clic droit sur l'objet, choix propriétés). Tu peux ainsi définir les actions à faire lorsque survient tel ou tel évènement.

Dans ton cas, il suffit de taper du code VBA pour mettre à jour le champ dans la table...

C'est plus clair ?
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

8

schneider, le 16 mai 2006 à 10:09:48

Merci pour la réponse.

C'est clair.

Je ne sais programmer en VBA donc cela règle le problème.

J'ai une réponse complète que je pourrais donc soummettre sans soucis à mon collègue.

MERCI BCP

Luc

Répondre à schneider

9

sebbiker, le 16 fév 2007 à 15:36:28

Salut,

A titre d'info personnelle, quel est le code pour mise a jour du champ calculé du form dans la table?

Merci
A+

seb

Répondre à sebbiker

10

Nadia, le 23 avr 2007 à 12:05:11

Bonjour,

Cela m'interess aussi.

J'aimerais stoké le calcul dans ma table parce que quand je sors un état, acces va chercher l'info dans la table et me donne donc une valeur à zero au lieu du résultat de mon calcul.

J'aimerais utiliser une procédure évenementielle et utiliser VBA mai je suis également null en la matière.

Merci

Répondre à Nadia

11

HDU, le 30 avr 2007 à 09:34:23

Bonjour,

Change la source de ton état !!!!! Au lieu de le baser sur la table, bases le sur une requête...

Quand jimmy dit what’d I say, I love you baby
C’est comme qui dirait, Toute la province qui chante en anglais

Répondre à HDU

12

nadia, le 30 avr 2007 à 09:48:25

Merci mais j'ai déjà essayé, cela ne fonctionne pas.

Tant pis

Bonne journée qd même ;o)

Répondre à nadia

13

HDU, le 30 avr 2007 à 09:58:29

Cela DOIT fonctionner ! Ce n'est pas en stockant une valeur dans une table que c'est propre, à long terme, tu vas te retrouver "bloquée".

Dis nous pourquoi ça ne marche pas, il n'y a aucune raison... Quand jimmy dit what’d I say, I love you baby
C’est comme qui dirait, Toute la province qui chante en anglais

Répondre à HDU

14

 Elbie49, le 17 aoû 2007 à 17:22:17
  • +2

Bonjour,

Moi aussi j'ai été confrontée au même problème, et je pense avoir trouvé la solution... En voici un exemple, à chacun ensuite de l'adapter à ses besoins.

Supposons qu'on ait une table Tbl_Recettes avec les champs :

Spectateurs
PrixPlace
RecetteMatch

On a créé un formulaire Frm_Recettes à partir de la table avec les champs :

Spectateurs
PrixPlace
Recette

Recette est un champ calculé correspondant à : Spectateurs*PrixPlace

On suppose que les informations sont saisies dans l'ordre ci-dessous. Pour insérer la recette du match dans la table à partir du formulaire, il faut sélectionner le contrôle PrixPlace, puis Propriétés, Procédure événementielle, Sur sortie, entrer le code VBA suivant :

Private Sub PrixPlace_Exit(Cancel As Integer)
Dim RM As Variant
RM = Forms![Frm_Recettes]![Recette]
Me.[RecetteMatch] = RM
Me.Refresh
End Sub

Et les données sont mises à jour dans la base, magique !!!

Faites-en bon usage, à savoir que comme le disait HDU, on ne stocke pas en général le résultat d'un calcul dans une table, mais bon, on peut avoir besoin de le faire pour une raison particulière...

Elbie49

Répondre à Elbie49
Collection CommentÇaMarche.net