Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Contribuez
Contribuez Access : Vos contributions. Postez ici vos codes sources, conseils, astuces et autres propositions. Ce forum n'est pas un forum technique mais destiné aux contributions pour www.developpez.com
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 18/11/2005, 19h17   #1
Membre actif
 
Inscription : juin 2002
Messages : 252
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 252
Points : 197
Points : 197
Par défaut [Sources] Mettre en évident les champs afin de faciliter la navigation

Titre: Animer les champs
Auteur: Gdal
Intérêt: Diriger l'utilisateur afin qu'il ne se perde pas.

Ces deux fonctions permettent de mettre en valeur un champ lorsqu'il reçoit le focus.

Pour cela mes contrôles sont nommés de cette façon (je suis pas sur que se soit très conventionnel )
TextBox Txt_Nom
Label Lbl_Txt_Nom
ListBox Lst_Nom
Label Lbl_Lst_Nom

Et sur les évènements "Sur réception focus" & "Sur perte focus", j'appelle les fonctions "Fct_ReceptionFocus()" & "Fct_PerteFocus()"
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
 
Option Compare Database
Option Explicit
 
Function Fct_ReceptionFocus()
 
On Error GoTo Traitement
 
'Composition des noms des contrôles
    'TextBox    Txt_Nom
    'Label      Lbl_Txt_Nom
    'ListBox    Lst_Nom
    'Label      Lbl_Lst_Nom
'Fonctionnement
    'Je récupère le contrôle actif et j'en déduit le label auquel
    'j'applique les apparences
 
    Dim Frm As Form
    Dim Ctl As Control
    Dim TypeCtl As String
    Dim Lbl As String
    Dim CtlLst As String
 
    Set Frm = Screen.ActiveForm
    Set Ctl = Screen.ActiveControl
 
    '********************
    'Type de contrôle
        'Zone de texte [Txt]
        'Liste modifiable [Lst]
        'Bouton de commande [Cmd]
    TypeCtl = Left(Ctl.Name, 3)
 
    'Récupérer le nom du label associé au contrôle
 
    Lbl = "Lbl_" & Ctl.Name
 
    Select Case TypeCtl
    Case "Txt"
    Ctl.SpecialEffect = 2
 
    Case "Lst"
    Ctl.SpecialEffect = 2
    Ctl.Dropdown
 
    Case "Cmd"
 
    End Select
 
    'Police en italic
    Frm(Lbl).FontItalic = True
    'Couleur de la police
    Frm(Lbl).ForeColor = RGB(255, 255, 0)
    'Police souligner
    Frm(Lbl).FontUnderline = True
 
Traitement:
Select Case Err.Number
Case 2475
Exit Function
Case Else
'MsgBox Err.Number & " " & Err.Description
End Select
 
End Function
 
Function Fct_PerteFocus()
 
On Error GoTo Traitement
 
'Composition des noms des contrôles
    'TextBox    Txt_Nom
    'Label      Lbl_Txt_Nom
    'ListBox    Lst_Nom
    'Label      Lbl_Lst_Nom
'Fonctionnement
    'Je récupère le contrôle actif et j'en déduit le label auquel j'applique les apparences
 
    Dim Frm As Form
    Dim Ctl As Control
    Dim TypeCtl As String
    Dim Lbl As String
    Dim CtlLst As String
 
    Set Frm = Screen.ActiveForm
    Set Ctl = Screen.ActiveControl
 
    '********************
    'Type de contrôle
        'Zone de texte [Txt]
        'Liste modifiable [Lst]
        'Bouton de commande [Cmd]
    TypeCtl = Left(Ctl.Name, 3)
 
    'Récupérer le nom du label associé au contrôle
    Lbl = "Lbl_" & Ctl.Name
 
    Select Case TypeCtl
    Case "Txt"
    Ctl.SpecialEffect = 0
 
    Case "Lst"
    Ctl.SpecialEffect = 0
 
    Case "Cmd"
 
    End Select
 
    'Police en italic
    Frm(Lbl).FontItalic = False
    'Couleur de la police
    Frm(Lbl).ForeColor = RGB(204, 255, 255)
    'Police souligner
    Frm(Lbl).FontUnderline = False
 
Traitement:
Select Case Err.Number
Case 2475
Exit Function
Case Else
'MsgBox Err.Number & " " & Err.Description
End Select
 
End Function
Ainsi le champ peut changer de forme, de couleur, ....

Gdal

PS: Merci à tous les membres de Developpez.com pour leur aide, leur site, et leur boulot....
Gdal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2005, 19h21   #2
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
Comment ça changer de forme ?

Pour la couleur, la police etc, il y a aussi la mise en forme conditionnelle qui nécessite aucun code
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2005, 10h12   #3
Membre actif
 
Inscription : juin 2002
Messages : 252
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 252
Points : 197
Points : 197
Bonjour,

Apparence plutôt.....
Par exemple sur la base que je suis en train de réaliser.
La couleur de fond des formulaires est bleu et par défaut tous les contrôles sont en deux dimensions et le label associé est en bleu clair.
Lorsque le champ reçoit le focus sur un champ texte, par exemple, l'apparence de ce champ est modifié (3D enfoncé, ....) sa police pourrait-être également changée, et son label associé passe en italic et en jaune.... Sa créé un effet visuel qui permet à l'utilisateur de mieu se repérer (surtout pour ceux qui aiment se déplacer dans les formulaires avec la tabulation)

quand à la forme conditionnelle je me vois mal reprendre tous les contrôles d'une base pour modifier un paramètre (couleur ...). Alors qu'avec la fonction il suffit que j'ajoute ou modifie une ligne et s'est l'ensmble de la base qui est modifié.

Voili voulou

Gdal
Gdal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2005, 18h00   #4
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
De toute façon, la mise en forme conditionnelle ne s'applique pas aux label

Citation:
quand à la forme conditionnelle je me vois mal reprendre tous les contrôles d'une base pour modifier un paramètre
Et bien selectionne tous les contrôles auxquel tu veut appliquer la mise en forme conditionnelle et applique la sur l'ensemble

De même tu peux aussi l'appliquer en VBA
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2005, 18h23   #5
Membre émérite
 
Avatar de FRED.G
 
Inscription : novembre 2002
Messages : 1 029
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2002
Messages : 1 029
Points : 898
Points : 898
C'est vrai que le principe d'utiliser des constantes ou des variables, et des fonctions génériques, ce qu'a cherché à faire Gdal, est une bonne habitude pour coder proprement et efficacement.

Cependant dans ce cas précis, je rejoins Tofalu puisque ma préférence va aussi à l'utilisation de la mise en forme conditionnelle.

Certes, il y a un côté rabarbatif de la mise à jour. Mais ce travail concerne la partie développemnt de l'appli et non son usage courant par l'utilisateur final.

Si au niveau de l'utilisation courante de l'appli, il faut éviter au maximum les tâches rébarbatives, quitte à ajouter quelques lignes de codes, il n'en est pas nécessairemzent de même au niveau du développement.

Si au moment du développement, passer du temps à définir "manuellement" les objets et leur propriétés peut permettre d'éviter du code définitif, alors mieux vaux effectivement passer un plus de temps au départ et avoir à l'arrivée un code minimal.

J'ai bien dit "éviter du code définitif" car on peut également se créer du code "provisoire" qui ne sert qu'au moment du developpement. Dans cette dernière optique, programmer la MFC via VBA peut être une solution comme l'a rappelé Tofalu. Et une fois l'appli développée, on vire le code en question.
__________________
"Fred point G"

Recherche vieux jeux et autres ordis anciens !!

(\ _ /)
(='.'=)
(")-(")
FRED.G est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h55.


 
 
 
 
Partenaires

Hébergement Web