Carte du site
 Remerciements
 Netiquette
 Bugs
 Tables
 Requêtes
 Formulaires
 États (rapports)
 Modules
 APIs
 Chaînes
 Date/Time
 Général
 Ressources
 Téléchargeables

 Termes d'usage

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.

'**************** Code Start **************
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
'**************** Code End ****************

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

 

© 1998-2001, Dev Ashish, All rights reserved. Optimized for Microsoft Internet Explorer