Access Evenements sur "click" et "s

Résolu/Fermé
scipiones Messages postés 19 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 11 mars 2008 - 1 mars 2008 à 14:53
 anomas - 8 nov. 2008 à 11:51
Bonjour,


J'ai créé un formulaire qui contient des champs calculés. Je sais que cela ne se fait pas, mais je voudrais mémoriser un champ calculé dans ma table (à savoir des points de fidélité).


Il s'agit en fait d'un formulaire de caisse. J'ai d'un côté les services dans un sous frm, de l'autre les forfaits, dans un autre sous frm. Dans le formulaire principal, j'ai donc un champ qui additionne le montant des prestations.

Le principe est simple : 1€ = 1 point de fidelité.

J'ai donc écrit un code VBA qui me sert à mémoriser dans mon champ Points_Fidelite_Client, la valeur du montant des prestations + ce qui existait avant, à savoir :

Dim RM As Variant
RM = Forms![TEST]![nvpoint]
Me.[Points_Fidelite_Client] = Me.[Points_Fidelite_Client] + RM
Me.Refresh
...

Le problème est le suivant :

Lorsque je créé un évenement sur click du champ [Points_Fidelite_Client], tout fonctionne à merveille, le champ [Points_Fidelite_Client] enregistre la valeur du champ ici [nvpoint], je ferme, je réouvre, la valeur a bien été calculée et enregistrée.

Mais vous avouerez que ce n'est pas pratique de cliquer sur le champ pour que la mise à jour du champ se fasse. Le problème est que lorsque je créé un évenement, lorsque je mets mon code sur la sortie par exemple, rien ne se passe, pire il me dit que ma syntaxe de code :

Me.[Points_Fidelite_Client] = Me.[Points_Fidelite_Client] + RM

...est mauvaise :s

J'ai tenté de créé une fonction, mais je ne sais pas comment reformuler la syntaxe que j'ai faite. Apparemment, elle ne fonctionne que lorsque je suis sur le formulaire, et seulement sur les évenements de type "click"...

Je pensais faire une fonction et l'appeler grâce à la macro de sortie de mon formulaire, et taper un code du style :

Dim RM As Variant
RM = Forms![TEST]![nvpoint]
Me.[Points_Fidelite_Client] = Me.[Points_Fidelite_Client] + RM
Me.Refresh
...

Mais cela ne fonctionne pas. Je pense que c'est le "Me." qui pose problème, peut être faut-il spécifier le chemin entier, mais n'ayant jamais coder en VBA, j'ai du mal à trouver la bonne syntaxe, pourriez vous m'aiguiller ?


Je ne sais pas si l'explication est assez complète, je reste en stand by, et reviens checker les réponses dans l'aprem ;)


Merci de votre aide !
A voir également:

2 réponses

scipiones Messages postés 19 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 11 mars 2008 3
3 mars 2008 à 00:02
Bon comme je n'avais pas de réponse, j'ai continué à tenter de bidouiller le VBA, et j'ai trouvé, comme je suis un gentleman, je vous indique la solution :

La fonction est intégrée dans un module, appelée par ma macro de sortie (avant les autres actions d'enregistrement et de remise à zéro de la fiche client "fantôme"), la voici :


Function Refresh()
RM = Forms![frm_caisse]![Texte15]
Forms![frm_caisse]![Points_Fidelite_Client] = Forms![frm_caisse]![Points_Fidelite_Client] + RM
End Function


Certains diront que c'était évident, mais enfin avec 4 mois d'Access dans les pattes ^^"


@pluche
2
slt scipiones

moi je n'ai que 3 semaines de ACCESS "...dans les pattes" et j'ai 1 pb un peu similaire au tien en VBA

Je veux à partir de mon formulaire dépendant (créé à partir d'une table nommée CARNETS) enregistrer
50 attestations (dans une table nommée ATTESTATIONS) contenant plusieurs colonnes mais dont seules
2 sont renseignée (dont une étant bien entendu la clé primaire de la table ATTESTATIONS et l'autre la clé primaire de la table CARNETS ayant migrée dans la table ATTESTATIONS).

J'ai créé une procédure pour cela:

Sub INSERT_ATT(NDebut As Double)

NDebut = forms![frmNewCarnet]![NumDebut]
Dim SQL As String

Numero = NDebut

SQL = "INSERT INTO ATTESTATIONS (NumDebut,NumAtt) VALUES (NDebut,Numero))"

For i = 1 To 50
DoCmd.RunSQL (SQL)
Numero = Numero + 1
End

End Sub

Je voudrait savoir comment, sur clilc du boutton je peux activer cette procédure.

Merci pour les infos ...
0
scipiones Messages postés 19 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 11 mars 2008 3
2 mars 2008 à 21:45
Je vois qu'Access a l'air de rassembler les foules xD
1