Avatar billede cgleerup Nybegynder
01. november 2001 - 12:08 Der er 8 kommentarer og
1 løsning

Dato overskredet

Et felt i en formular, der indeholder dato data skal væksle imellem to farver, hvis datoen ikke er overskredet skal den være sort, og hvis den er overskredet skal den være blå
Avatar billede nybegynderen Nybegynder
01. november 2001 - 12:39 #1
Du kan benytte den indbyggede funktion; betinget formatering....\'

Farmater / Betinget formatering..., følg herefter guiden.....

Avatar billede nybegynderen Nybegynder
01. november 2001 - 12:40 #2
Der skulle stå: formater / Betinget formatering....
Avatar billede nih Novice
01. november 2001 - 12:40 #3
I formens vedÅbning hændelse:

If me.txtboxNavn > date() then
  me.txtboxNavn.backcolor = 111111
end if


Niels
Avatar billede cgleerup Nybegynder
01. november 2001 - 14:47 #4
virker ikke!

Den kan slet ikke finde ud af de kommandoer.
Desuden bruger man ikke længere () efter date i access, den tvinger det selv til blot at hede Date

:-)
Avatar billede mugs Novice
01. november 2001 - 17:39 #5
Dim lngRed As Long, lngYellow As Long, lngBlack As Long, lngWhite As Long
lngRed = RGB(255, 0, 0)
lngYellow = RGB(255, 255, 0)
lngBlack = RGB(0, 0, 0)
lngWhite = RGB(255, 255, 255)
If DATO >Date Then
DATO.Forecolor = lngRed
Else
DATO.ForeColor = lngBlack
End If

Koden fungerer i Access97
Avatar billede nih Novice
01. november 2001 - 20:25 #6
-> cqleerup  - Godt jeg ikke skal udtale det  ;)

VBA er ikke konsekvent i brugen af () ved funktionskald. Nogle gange skal de med andre gange ikke.

Mugs\'s kode ser MEGET fornuftig ud - Om den virker efter hensigten afhænger af hvilken hændelse du vælger at skrive den i. Vær opmærksom på at hændelsen er valgt i egenskabsarket - det er ikke nok bare at kopiere proceduren ind i formens kodemodul

Niels
Avatar billede mugs Novice
01. november 2001 - 20:37 #7
nih > Du har ret, koden er lagt i formularens OnCurrent hændelse. D.v.s. jo sige at feltet ikke skifter farve før der flyttes til en anden post og tilbage igen eller formularen lukkes og åbnes. Det er jo ikke særlig smart. men det kan vel rettes ved efter End If at indsætte linien:

Me.Refresh

som til spørgerens orientering opdaterer den underliggende tabel / forespørgsel.

Tak for din kommentar :o) 
Avatar billede mugs Novice
01. november 2001 - 20:53 #8
Jeg har ændret koden:

Den skal ligge i datofeltets Change event, og skal se således ud:

Dim lngRed As Long, lngYellow As Long, lngBlack As Long, lngWhite As Long
lngRed = RGB(255, 0, 0)
lngYellow = RGB(255, 255, 0)
lngBlack = RGB(0, 0, 0)
lngWhite = RGB(255, 255, 255)
If Felt1 < \"4\" Then
Felt1.ForeColor = lngRed
Felt1.BackColor = lngWhite
Else
Felt1.ForeColor = lngYellow
Felt1.BackColor = lngBlack
End If
Me.Refresh
Avatar billede mugs Novice
03. december 2001 - 16:13 #9
cqleerup > Jeg bør tilføje, at tallene i paranteserne henfører til hvor meget farve (komplimentærfarver?), der er i de farver, du ser på skærmen.

F.eks.:
lngRed = RGB(255, 0, 0)

Hvis du ændrer tallet 255 (som er max.) til en lavere værdi, vil den røde farve få et mindre indhold af rødt, og dermed blive blegere.

Iøvrigt tak for point. 
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester