Forms: Utiliser l'info bulle (ControlTipText) pour afficher une valeur |
Author(s) Dev Ashish |
|
Utiliser l'info bulle (ControlTipText) pour afficher une valeur.
(Q) Certains de mes enregistrements ont des valeurs qui
dépasse les limites du contrôle. Puis-je afficher toute l'information sans que
l'usager n'ait à cliquer sur le champ, ni à utiliser de clé du clavier pour
accéder à toute l'information?
(A) Les contrôle d'un formulaire Access ont la
propriété ControlTipText (le truc sur fond jaune qui surgit (popup)
lorsque vous laissez le curseur de souris sur le contrôle, sans bouger, pour
quelque temps). Cette propriété peut être utilisée pour afficher la
valeur complète du contrôle.
Noter que si le formulaire est en
continue, modifier cette propriété modifie celle du même contrôle de tous
les enregistrements.
Noter également que sShowToolTip
fonctionne tout aussi bien pour des combo box. En supposant qu'il y a deux
colonnes, un champ ID de référence et un champ descriptif, la procédure
choisi la seconde colonne. J'impose la condition columnCount=2 car avec
plus de deux colonnes, il est difficile de déterminer laquelle doit être
affichée.
Couper-coller cette procédure
dans un nouveau module.
Public Sub sShowToolTip(frm As Form)
Dim ctl As Control, i As Integer
On Error Resume Next
For Each ctl In frm.Controls
With ctl
If .ControlType = acTextBox Then
.ControlTipText = .value
ElseIf .ControlType = acComboBox Then
If .ColumnCount = 2 And .value <> "" Then
.ControlTipText = .Column(.BoundColumn)
End If
End If
End With
Next ctl
Set ctl = Nothing: Set frm = Nothing
End Sub
Maintenant, dans la procédure événementielle Current du formulaire,
utiliser quelque chose du genre
Private Sub Form_Current()
Call sShowToolTip(me)
End Sub
S'il vous faut mettre à jour l'information, après un modification par
exemple, simplement appeler la même sous-routine à nouveau.
Private Sub SomeTextBox_AfterUpdate()
Call sShowToolTip(me)
End Sub
|