|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Étudiant Inscription : décembre 2011 Messages : 8 ![]() |
Bonjours, je souhaiterais créer une macro me permettant d'afficher des messages d'alerte (MsgBox) en fonction des résultats trouvés dans un sous-formulaire.
Je m'explique, j'ai un formulaire principal de dispensation de médicament contenant les champs "médicament" et "Patient". En fonction de ce que remplit l'utilisateur, apparait dans le sous-formulaire (Si il existe), le dernier numéro d'autorisation pour ce patient et ce médicament ainsi que la date de péremption de cette autorisation. Je souhaiterais donc afficher deux messages d'alertes sur l'évènement "Après MAJ" du champs médicament du formulaire principal (Le dernier à être remplit): - Vous ne pouvez pas délivrer ce médicament (si le N° n'existe pas) - Vous ne pouvez pas délivrer ce médicament (Si la date de péremption est dépassée) Merci d'avance pour votre aide |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() |
Bonjour,
Il n'est pas recommandé d'user du AfterUpdate dans ce cas mais plutôt du BeforeUpdate() avec l'usage du Cancel si nécessaire. L'évenement Exit est intéressant aussi dans le même esprit. Bon voici un exemple de base : Code :
Une liste déroulante filtrée et dont la date est supérieure à Now t'éviterait tous ces tracas... A cette liste tu uses de l'évenement NotInList et le tour est joué. Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
||
|
|
10
|
|
|
#3 |
|
Invité de passage
![]() Étudiant Inscription : décembre 2011 Messages : 8 ![]() |
Merci de votre aide, j'ai écris le code dans le "Before Update" comme vous me l'avez conseillé, mais cela ne fonctionne pas (Je précise que le Numéro d'autorisation se trouve dans une table différente de celle des médicaments). Pour un peu plus de précisions sur la structure de ma base:
Pour simplifier, pour ce qui m'intéresse ici, il y a 3 tables (Médicaments, patients, Numéros d'autorisation). La table numéros d'autorisation est reliée aux deux autres tables puisqu'un numéro correspond à un couple (patient, médicament) Pour mon formulaire principal de dispensation des médicaments (qui remplit une 4e table: dispensation); je vais rechercher un médicament dans la table médicament, un patient dans la table patient et ensuite s'affiche dans le sous formulaire le dernier numéro d'autorisation (pas forcément valide, il peut être périmé). [Le sous formulaire étant basé sur une requête qui va chercher le dernier numéro dans la table "numéros d'autorisation"] Donc pour faire référence à mes champs dans le code VB, je dois juste écrire leur nom ou ecrire le chemin complet qui s'y rapporte? (en supposant que mon problème vienne d'une erreur de nomenclature) du style: Code :
Forms![NomFormulaire]![NomSousFormulaire1].Form![NomSousFormulaire2].Form![MonControle].Value Merci d'avance |
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Étudiant Inscription : décembre 2011 Messages : 8 ![]() |
Voici votre code que j'ai adapté à ma base; est-il toujours correct?
Code :
Code :
strMedicamentNum = Me.Specialite_ATU.Value Merci d'avance |
||
|
|
00
|
|
|
#5 |
![]() ![]() ![]() |
Comme dit précédemment, il faut éviter l'événement AfterUpdate() dans votre cas car comme son nom l'indique, vous n'empêcherez rien...
La variable "strMedicamentNum" doit être alimentée comme suit : Vous pouvez utiliser une requête dans un DLookup à condition que ce soit une requête SELECT qui ne soit pas une requête action et qui ne requiert aucun paramètre.
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com