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 29/08/2006, 11h18   #1
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 661
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 661
Points : 6 228
Points : 6 228
Envoyer un message via MSN à argyronet
Par défaut Changer dynamiquement la couleur d'une étiquette d'un Textbox

Bonjour,

Voici un petit code source intéressant...
Comment changer dynamiquement la couleur d'une étiquette d'un Textbox ?

Objectif :
Vous remplissez un Textbox dans un formulaire et vous souhaitez que la couleur de l'étiquette qui lui est attachée change de couleur selon que le Textbox contient ou non quelque chose :
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
Option Compare Database
Option Explicit

Private Sub MyTextBox_BeforeUpdate(Cancel As Integer)
**Call ChangeColorCaption(MyTextBox, RGB(25, 160, 240))
End Sub

Private Sub ChangeColorCaption(TxtBox As TextBox, ByVal ChangedColor As Long)
Dim oCtl As Control
Dim oLabel As Label
Dim oForm As Form
Dim strContent As Variant
Dim strLabel As String
Dim lngColor
**strContent = TxtBox.Text
**If IsNull(strContent) Or Len(strContent) = 0 Then
****lngColor = RGB(0, 0, 0)
**Else
****lngColor = ChangedColor
**End If
**Set oForm = Form
**Set oCtl = TxtBox
**strLabel = oCtl.Controls.Item(0).ControlName
**Set oLabel = oForm.Controls(strLabel)
**oLabel.ForeColor = lngColor
**Set oCtl = Nothing
**Set oForm = Nothing
**Set oLabel = Nothing
End Sub
Le changement se fait sur l'événement BeforeUpdate() et considère les paramètres :
  • NomDuControl TextBox
  • Couleur RGB
associés lors de l'appel de la procédure ChangeColorCaption()

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
Vieux 29/08/2006, 12h01   #2
Expert Confirmé Sénior

 
Avatar de cafeine
 
Inscription : juin 2002
Messages : 3 882
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 3 882
Points : 4 500
Points : 4 500
Hello Argy,

en complément / additif de ta source, je poste la méthode pour généraliser ce code à l'ensemble des textbox, ce qui peut être pratique pour un formulaire de 50 textbox ...

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
Private Sub Form_Load()

Dim ctl As Control

For Each ctl In Me.Controls
    If ctl.ControlType = acTextBox Then
        ctl.BeforeUpdate = "=TrackControl(""" & ctl.Name & """)"
    End If
Next ctl

Set ctl = Nothing

End Sub


Private Function TrackControl(ByVal ctlName As String)

If IsNull(Me.Controls(ctlName)) Or Len(Me.Controls(ctlName)) = 0 Then
    Me.Controls(Me.Controls(ctlName).Controls.Item(0).ControlName).ForeColor = RGB(0, 0, 0)
Else
    Me.Controls(Me.Controls(ctlName).Controls.Item(0).ControlName).ForeColor = RGB(25, 160, 240)
End If

End Function
__________________
Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème

Développez une application de gestion des comptes bancaires dans Access de A à Z
Déjà 12 tutoriels, le dernier en date : Comment faire un TextBox auto-extensible dans un formulaire ?


cafeine 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 10h09.


 
 
 
 
Partenaires

Hébergement Web