Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/06/2011, 15h11   #1
Membre habitué
 
Inscription : août 2005
Messages : 365
Détails du profil
Informations personnelles :
Âge : 44
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : août 2005
Messages : 365
Points : 105
Points : 105
Par défaut Message sur clic de tous les controles d'un formulaire

Bonjour

Je souhaite afficher un message informant l'utilisateur sur clic de chaque controle d'un formulaire

J'avais pensé à un truc du style

Code :
1
2
3
4
5
6
 
    Dim ctl As Control
    For Each ctl In Me.Controls
        MsgBox "Vous ne pouvez que consulter les informations dans cette fenetre !" & Chr(13) & "Cliquez sur ""Modifiez"" pour modifier les données du patient", vbInformation + vbOKOnly
 
    Next ctl
Mais cela ne fonctionne que sur le clic en dehors des champs. Comment faire pour avoir le message sur le clic sur le controle ?

Merci par avance
docjo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 16h17   #2
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 209
Points : 6 209
Envoyer un message via MSN à argyronet
Bonjour,

C'est un peu lours comme approche mais bon.
Le mieux est de verrouiller les contrôles et de les déverrouiller par confirmation depuis le bouton Modifier.
Dans l'absolu, si tu veux quand même le message, tu es contraint de l'affecter à chaque événement GotFocus() (plutôt que Click car l'utilisateur ne vas forcément de servir de sa souris) et d'appeler une procédure pour le message.

Tu peux simplifier la mise en oeuvre avec ce code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Function SetControlsMessage()
Dim ctl                                                As Control
 
    DoCmd.OpenForm "Formulaire1", acDesign
    For Each ctl In Forms(strForm).Controls
        Select Case ctl.ControlType
            Case acTextBox
                ctl.OnGotFocus = "=MessageDataLocked()"
        End Select
    Next
    Set ctl = Nothing
 
    DoCmd.Close acForm, "Formulaire1", acSaveYes
    DoCmd.OpenForm "Formulaire1"
End Function
 
Public Function MessageDataLocked()
    MsgBox "Vous ne pouvez que consulter les informations dans cette fenetre !" & Chr(13) & "Cliquez sur ""Modifiez"" pour modifier les données du patient", vbInformation + vbOKOnly
End Function
à adapter bien entendu.

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
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h40.


 
 
 
 
Partenaires

Hébergement Web