Veld op formulier veranderen van kleur

Status
Niet open voor verdere reacties.

oosterbaan S S

Gebruiker
Lid geworden
13 mrt 2005
Berichten
128
Hallo

Ik zou graag een veld "test" op een formulier, waar een negatieve valutawaarde in wordt getoond, aut. een andere kleur willen geven.

Nu weet ik dat dit met "voorwaardelijke opmaak" te realiseren is, maar kan dit ook via VBA ?

Ik had zelf ingevoerd:

Private Sub test_beforeupdate (cancel as integer)
if me.test.value <0 then
me.test.backcolor = RGB(255)
else
me.test.backcolor - RGB(65280
end if
end sub

Maar dit werkt bij mij niet. Wat heb ik verkeerd?
Bedankt alvast:thumb:
 
Laatst bewerkt:
Hallo,

plaats eens in code bij de AfterUpdate gebeurtenis.
Niet bij BeforeUpdate.

Groetjes,
Lode
 
Bedankt Lode voor je snelle reactie,
Je suggestie had ik ook al geprobeerd, maar werkt ook niet!

Wellicht nog een andere oplossing??:confused:
 
Hallo,

met deze code wordt de achtergrond rood(<0) of geel.
(Na enter te hebben gedrukt)

Private Sub Test_AfterUpdate()
If Test < 0 Then
Test.BackColor = vbRed
Else
Test..BackColor = vbYellow

End If

End Sub
 
Hallo Lode,

Opnieuw bedankt.
Ja... je oplossing ziet er logisch uit, maar werkt bij mij op het formulier dus ook niet.

Het gekke is dat bij "voorwaardelijke opmaak" het veld prima van kleur veranderd, alleen dan krijg ik de vreemde situatie dat het "" zoeken " op het formulier (via Ctrl F) opeens erg traag verloopt; vandaar dus het proberen via VBA.

Wellicht nog een andere suggestie??
 
Hallo,
ik had dit pas gemaakt op een formuliertje bij mij en alles werkt.
Je veldje heet toch test ??
Post anders eens je db, zonder vertrouwelijke gegevens, eventueel verkleint.
Wil er wel eens naar kijken.

Groetjes, Lode
 
Hallo Lode,

Ik ga maar eens op een nieuw formulier het een en ander testen.
Kijken of ik er dan zo uit kom...

Bedankt voor je hulp tot zover en je aanbod om mijn db te bekijken. Lukt het me niet dan zal ik de db posten.

Groeten.
 
Hallo,

het veldje moet toch pas veranderen wanneer je een waarde ingeeft of verandert ?
Of moet het reeds bij het openen van het formulier een kleurtje hebben, anders ga je bij de gebeurtenissen van het formulier zelf moeten testen.

Groetjes,

Lode
 
Beste Lode,

Eigenlijk zit het als volgt:

Het veld op het formulier is een veld wat als besturingselementbron een expressie heeft
=[totaal opbrengst order]
Met de expressie ontvangt het veld dus de waarde (ik typ dus geen waarde in dit veld in)

Het is de bedoeling dat als de waarde in dit veld boven een bepaalde grens uitkomt het veld in de betreffende record een andere kleur krijgt.

Ik heb je voorbeeld op het veld zelf geplaatst (afterupdate) en ook op het formulier, maar krijg het nog neit voorelkaar.
Het veld krijgt wel een kleur maar boven of beneden de waarde verandert de kleur niet...
:confused:
 
Hallo,

dan ga je dit moeten regelen bij het "laden", on current van het formulier.

Groetjes,
Lode
 
Ja, ook al geprobeerd...geen resultaat,
Ik heb het bijna alle mogelijkheden op het formulier geprobeerd, maar de kleur verandert niet.
Blijkbaar zit er toch iets mis met de waardevermelding <0 ??:confused:
 
Hallo,

heb even een voorbeeldje gemaakt.

Kijk bij de eigenschappen van het formulier.
Het veldje heet txtWaarde.
 

Bijlagen

Laatst bewerkt:
Beste Lode,

Heel hartelijk dank voor je bestand en voor het steeds opnieuw meedenken. Ik ben weer een stukje verder, want .... het werkt bij mij nu :thumb: ook, echter alleen op een veld dat gekoppeld is aan een tabel.

Waar het bij mij waarschijnlijk fout op gaat is, op een veld die niet verbonden is met een tabel. Zoals eerder aangegeven krijgt het veld zijn waarde vanuit enkele andere velden.
De waarden worden in de expressie bij elkaar opgeteld en vormen dan de waarde in het betreffende veld.

Als je het nu ook niet meer weet.... stuur ik je z.s.m. even een bestandje
 
Hallo,

dat gebeurt toch identiek.

Heb voorbeeldje even aangepast.
Getal1,2,3 wordt opgetelt in txtsom.
En txtsom verandert van kleur.
 

Bijlagen

Beste Lode,

Geweldig bedankt. Je voorbeeld kan gewoon niet beter.:thumb:
Ik ga er zondag opnieuw mee aan de slag in mijn database. Het moet nu ook bij mij lukken.....
Je hoort van me!

Groeten
 
Beste Lode,

Met behulp van je voorbeeld db ben ik een stuk verder gekomen, al is het probleem nog niet geheel opgelost voor mij. Het blijkt behoorlijk ingewikkeld te zijn (of ik heb behoorlijk ingewikkelde oplossingen in mij db gemaakt... dat kan natuurlijk ook!

Het veld, wat moet veranderen van kleur, ontvangt zijn data uit verschillende velden (zoals eerder gemeld). Die velden staan op een aantal subformulieren waaraan diverse queries hangen. D.m.v. een expressies worden de velden uit die subformulieren samengevoegd in 1 veld. Dat veld moet dus van kleur veranderen.

Dat veranderen van kleur doet die ook wel (selchts 1 maal) maar niet bij de opgve van > of <

Ik denk door de opbouw van het formulier (met de div subforms) het een en ander toch niet helemaal lukt.

Desondanks heeft je voorbeeld me wel op de goede weg gezet en begrijp ik nu goed hoe het een en ander functioneert.

Ik ga proberen om het hoofdformulier en de de div (hulp)subformulieren om te bouwen naar 1 formulier die dan wordt gevoed door 1 query, waarvan de query weer is opgebouwd uit de queries die de subform. voeden (snap je het nog...?
Kijken of het dan lukt.
Normaals hartelijk dank voor alle moeite

Groet:)
 
Hallo,

dat je slechts een kleurverandering ziet is normaal.
Je veranderde niets aan de gegevens schreef je.
Wil je echter dat de kleurverandering constant zich aanpast. Dat zal je bij de Afterupdate, nabijwerken van ieder veld die je gebruikt om de som te maken. De code voor 0,< en > moeten toevoegen.
Het feit dat de velden van overal komen, mag geen probleem zijn voor de kleur.
 
Wat ik bedoelde is dat je wel een kleurverandering zag maar dat het veld slechts 1 kleur weergeeft; en dan maakt het niet uit of bij het bladeren in de records er in het veld een positief bedrag dan wel een negatief bedrag staat. De kleur in het veld blijft steeds groen

Dus concluderend: geen reactie op de <0 dan rode kleur en >0 dan groene kleur


Bedoel je trouwens met "De code voor 0,< en > moeten toevoegen" dat ik in elk veld onderstaande code plaats:
If txtSom > 0 Then txtSom.BackColor = 12632256
If txtSom < 0 Then txtSom.BackColor = 10092543
 
Hallo,

in de veldjes die je bruikt om de som te maken.

Post anders even je db , verkleint, zonder vertrouwelijke gegevens.
2 Dagen zoeken voor een achtergrondkleur ??
Met een duidelijke uitleg waar en wat moet gebeuren.
Wij zouden wellicht jaren aan een db werken.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan