achtergrondkleur veld veranderen bij focus

  • Onderwerp starter Onderwerp starter pecha
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

pecha

Gebruiker
Lid geworden
1 okt 2004
Berichten
15
Goedendag,

Ik wil graag van een veld de achtergrondkleur verandert zien als het de focus krijgt (en ook weer als het de focus verliest). Ik zal waarschijnlijk een algemene module moeten aanmaken, die ik uit ieder veld benadert. Maar dan moet ik ook bij ieder veld bij de focus naar die module verwijzen. Ik was benieuwd of dit op een simpele manier kan worden opgelost. Graag met wat code als voorbeeld.

alvast bedankt
 
over wat heb je het? ik denk niet dat iemand er hier erg wijs uit word????? gebruik je een bepaald programma.... wat voor windows heb je.... waar gaat het nou helamaal over? probeer dat eerst eens normaal uit teleggen:thumb:
 
Het gaat over Microsoft Access (2000), het is toch ook het access forum?

Ik wil dus dat als een veld op een formulier de focus krijgt dat dat veld een andere achtergrond krijgt, zodat de gebruiker snel ziet in welk veld die staat om een invoer te doen.

Groeten,
Peter
 
bij eigenschappen van veld / gebeurtenissen/bij focus zet je als code (ik heb nu als voorbeeld rood gepakt , maar je kunt elke kleur pakken die je wilt door bij eigenschappen de backcolour te veranderen via het palet en daar komt dan een nummer uit, welk je dan weer in je code zet ipv vbRed)

Private Sub VoornaamContactpersoon_GotFocus()
VoornaamContactpersoon.BackColor = vbRed
End Sub


als je het veld weer verlaat, zet je bij gebeurtenissen/ focus verloren de volgende code (eigelijk zelfde verhaal) en dan krijgt het veld weer zijn oude kleur.

Private Sub VoornaamContactpersoon_LostFocus()
VoornaamContactpersoon.BackColor = vbWhite
End Sub

succes gost
 
Dank je Gostdog,

Kan dit ook in een algemene code worden gestopt, zodat als ik een andere kleur wil, alleen een verandering in de algemene code hoeft te doen i.p.v. iedere ingave veld.

Peter
 
ik denk dat dat wel kan , ik heb een voorbeeld meegegeven van een procedure die ik in de vb code van een formulier gebruik (dus geen global code maar een private op formulier niveau)

om het een en ander te verduidelijken : het gaat hier om een order formulier waar in een subformulier alle orders staan van een betreffende klant , dit subformulier staat in dataform modus , dus een spreadsheetachtig subformpje.
ik wou toen graag om direct naar een order te gaan op een van de velden kunnen kilkken om direct de order te openen en ik wou dit bij elk veld kunnen doen.
dus zie dat de bovenste procedure met de naam "OrderOpenen" de code bevat om het formulier frmOrders03 te openen en dat de gebeurtenisprocedure
dblclick per veld allen maar de verwijzing naar je procedure "OrderOpenen" heeft. Dus als ik op een willekeurig veld klik treed de procedure OrderOpenen in werking. Dit kun je ook toepassen voor de kleurverandering per veld , alleen met deze methode moet je dit per formulier (de procedure er in zetten)en per veld (de verwijzing aangeven) doen. misshien dat er mensen zijn die dit op een simpelere manier weten maar dat is buiten mijn bereik

--------------------------------------------------------------------------
Private Sub OrderOpenen()

On Error GoTo Err_OrderOpenen

Dim stDocName As String
Dim stLinkCriteria As String
Dim stTest As String

stDocName = "frmOrders03"

stLinkCriteria = "[KlantId]=" & Me![KlantId]

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_OrderOpenen:
Exit Sub

Err_OrderOpenen:
MsgBox Err.Description
Resume Exit_OrderOpenen

End Sub
--------------------------------------------------------------------
Private Sub Orderdatum_DblClick(Cancel As Integer)
OrderOpenen
End Sub
----------------------------------------------------------------
Private Sub OrderId_DblClick(Cancel As Integer)
OrderOpenen
End Sub
----------------------------------------------------------------
Private Sub Tekst14_DblClick(Cancel As Integer)
OrderOpenen
End Sub
----------------------------------------------------------------
Private Sub Verzenddatum_DblClick(Cancel As Integer)
OrderOpenen
End Sub


succes Gostdog
 
manierf zonder code

ik ken een erg eenvoudige en doeltreffende manier om hetzelfde te bereiken zonder 1 teken code:

1. selecteer het besturingselement.
2. Stel de achtergrondkleur in op de kleur die de control moet gaan krijgen indien het de focus heeft.
3. Stel vervolgens de achtergrondkleur in op transparant.

De controls zijn dan standaard wit van achtergrondkleur en als de control de focus krijgt dan wordt de achtergrondkleur de kleur die je in stap 2 in hebt gesteld.

Het is geen geavanceerde methode, maar persoonlijk vind ik dit erg handig om aan te geven welk control (meestal een tekstvak bij mij) de focus heeft.
 
Hai thomrob,
kun je jouw procedure van instellen iets verduidelijken want als ik bij de eigenschapen/opmaak kijk zie ik alleen de backcoloreigenschap, maar niet waar dat bij focus backcolor is.
of gebruik je vba code bij de gebeurtenissen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan