2014-06-28 1 views
0

J'ai déjà utilisé l'accès par le passé, mais de façon très limitée.Access 2007 - Enregistrement du calcul dans la table d'accès

J'essaie de prendre un champ calculé sur mon formulaire et de l'enregistrer dans la base de données.

Mes champs sont: quantité, coût, sous-total

Dans ma forme, je changé le contrôle de code source du champ Sous-total à ceci: = [quantité] * [coût]

Le formulaire montre la calcul correct total.

Puis, sous l'événement I a créé un événement afterupdate:

Sous subtotal_AfterUpdate privé() Me.subtotal = [de quanity] * [coût] End Sub

Ne sauvegarde pas la base de données.

J'ai essayé beaucoup d'idées différentes sur internet et elles ont toutes échoué. Donc, il me manque quelque chose. J'ai besoin du sous-total pour enregistrer dans la base de données car je l'utiliserai plus tard dans d'autres formulaires et rapports.

En fait, je devrais probablement préciser que je veux le résultat du calcul d'enregistrer dans le champ de sous-total, pas le calcul lui-même.

Merci beaucoup,

Kim

+1

En général, il n'est pas recommandé d'enregistrer un champ calculé dans la base de données. Au lieu de cela, il suffit de modifier votre requête SELECT pour inclure le calcul, comme SELECT [quantité], [coût], [quantité] * [coût] Comme SousTotal FROM ... (le reste de la requête) –

+0

Je comprends mais je voudrais sauvé pour diverses raisons, je ne veux pas qu'il ait à calculer à chaque fois, juste une fois et il sera mis dans la base de données. –

Répondre

0

OUI! Je l'ai appris à travailler :)

J'ai créé un événement BeforeUpdate pour le champ de la quantité: (car il fait partie du calcul)

Private Sub quantity_BeforeUpdate (Cancel As Integer)
Me.subtotal = Me. quantité * Me.cost
End Sub

Cela fonctionne très bien, même les mises à jour lorsque la quantité ou les coûts changent dans le formulaire, et il stocke le résultat que j'ai besoin.

Kim