Avatar billede joggeren Nybegynder
10. december 2003 - 09:47 Der er 43 kommentarer og
2 løsninger

Besked bestemt af værdi i felt

Jeg har et felt "Tekst12"

Jeg vil gerne have et felt ved siden af, som hvis værdien i tekst12 er negativ skriver: "For lidt på lager" evt med rød skrift.

Modsat skal den skrive, hvis værdien er lig med eller positiv: "nok på lager" evt med grøn skrift.

Hvordan laver man det?
Avatar billede overchord Nybegynder
10. december 2003 - 10:05 #1
Opret et label ved siden af tekstboksen, eks kaldet lblWarning

Paa teksboksen skal der ligge en kode paa haendelsen After Update:

If Me.Text12 < 0 Then
Me.LblWarning.Caption = "For lidt paa lager"
Me.LblWarning.ForeColor = vbRed
ElseIf Me.Text12 > 0 Then
Me.LblWarning.Caption = "Nok paa lager"
Me.LblWarning.ForeColor = vbGreen
End If
Avatar billede joggeren Nybegynder
10. december 2003 - 10:12 #2
Label...?

Er det en etiket eller tekst boks?
Avatar billede hubs Nybegynder
10. december 2003 - 10:12 #3
etiket
Avatar billede joggeren Nybegynder
10. december 2003 - 10:15 #4
Hvis jeg laver en etiket, kan jeg kun skrive hvad der skal stå inde i den. Bruger Access 97.
Avatar billede hubs Nybegynder
10. december 2003 - 10:18 #5
ja du laver bare en default værdi. Den bliver stadigvæk ændret til den rigtige tekst i henhold til din tekstbox
Avatar billede joggeren Nybegynder
10. december 2003 - 10:23 #6
Virker ikke

Private Sub Tekst14_AfterUpdate()

If Me.Tekst14 < 0 Then
Me.lblwarning.Caption = "For lidt paa lager"
Me.lblwarning.ForeColor = vbRed
ElseIf Me.Tekst14 > 0 Then
Me.lblwarning.Caption = "Nok paa lager"
Me.lblwarning.ForeColor = vbGreen
End If

Feltet er helt blank, selvom der er en minusværdi.
Avatar billede joggeren Nybegynder
10. december 2003 - 10:23 #7
Boksen hedder tekst 14 nu...
Avatar billede hubs Nybegynder
10. december 2003 - 10:26 #8
har du husket at navngive dit labelfelt lblwarning?
Avatar billede joggeren Nybegynder
10. december 2003 - 10:30 #9
ja...
Avatar billede hubs Nybegynder
10. december 2003 - 10:35 #10
nu er det vel ikke noget med en af dine underformularere igen :o) Ellers prøv at skrive hele 'stien' i stedet for 'Me', altså noget i retning:

Forms!DinFormular.lblwarning.Caption...
osv.
Avatar billede hubs Nybegynder
10. december 2003 - 10:36 #11
hov sådan her er vist mere rigtigt

Forms!DinFormular!lblwarning.Caption...
Avatar billede overchord Nybegynder
10. december 2003 - 10:38 #12
me.lblwarning burde altsaa virke hvis de ligger i den samme formular.
Avatar billede joggeren Nybegynder
10. december 2003 - 10:39 #13
hehe... denne gang foregår det hele i samme formular.. hehe..

Hjælper ikke..
Avatar billede joggeren Nybegynder
10. december 2003 - 10:40 #14
Vi er enige om, at feltet hvor koden skal stå, er i det felt hvor selve værdien er?

Og... det er en værdi der bliver beregnet.. dvs.. den skal først lige beregne det, når den åbnes.
Avatar billede hubs Nybegynder
10. december 2003 - 10:46 #15
aaah det er der dit problem er. Du indtaster altså ikke selv noget i feltet?
Avatar billede hubs Nybegynder
10. december 2003 - 10:56 #16
Hvis det er tilfældet så har du 2 muligheder, enten indtaste den kode som overchord har givet dig i AfterUpdate på det felt de rent faktisk indtaster i eller du kan proppe din ind i OnCurrent eventet for hele formen, så skulle det gerne virker.
Avatar billede hubs Nybegynder
10. december 2003 - 10:57 #17
Faktisk ville jeg gøre det i begge, altså både indtaste koden i AfterUpdate og OnCurrent, på den måde virker den både når de 'cycler' gennem dine records og hvis du indtaster ny info
Avatar billede joggeren Nybegynder
10. december 2003 - 11:17 #18
Så virker det! ;-)

Nu bliver jeg lidt vanskelig.. den grønne er lidt for utydelig.. kan man få den i mørkegrøn?

Hubs du må lige svare.. du har vist også fortjent nogle points.
Avatar billede hubs Nybegynder
10. december 2003 - 11:19 #19
Den her er lidt grønnere :o)

Me.lblwarning.ForeColor = RGB(0, 128, 0)
Avatar billede hubs Nybegynder
10. december 2003 - 11:20 #20
du kan selv justere styrken. Jo højere tal (op til 255) jo lysere grøn.
Avatar billede joggeren Nybegynder
10. december 2003 - 11:21 #21
Hmmm... den beregner ud fra nogle poster i detaljesektionen. Hvis jeg skifter post der, ændrer tallet sig. Meldingen ændrer sig dog ikke. Hvor skal jeg sætte koden ind der, for også at ændre melding, når jeg skifter imellem posterne der?
Avatar billede hubs Nybegynder
10. december 2003 - 11:24 #22
I OnCurrent i formen så burde det virke
Avatar billede hubs Nybegynder
10. december 2003 - 11:24 #23
hov nej... jeg mener under update for det felt du andre
Avatar billede hubs Nybegynder
10. december 2003 - 11:26 #24
altså AfterUpdate... puha jeg roder vist lidt rundt i det :o) det må være mangel på det blod jeg donerede i morges :o)
Avatar billede joggeren Nybegynder
10. december 2003 - 11:28 #25
Det virker ikke helt

Den kommer altid med en rød melding... selvom tallet er positivt

Private Sub Form_Current()

If Me.Tekst14 < 0 Then
Me.lblwarning.Caption = "For lidt på lager"
Me.lblwarning.ForeColor = vbRed
ElseIf Me.Tekst14 > 0 Then
Me.lblwarning.Caption = "Nok på lager"
Me.lblwarning.ForeColor = RGB(0, 128, 0)
End If

End Sub
Avatar billede hubs Nybegynder
10. december 2003 - 11:33 #26
Er det når du bare kigger igennem dine poster, eller når du indtaster noget???
Avatar billede joggeren Nybegynder
10. december 2003 - 11:36 #27
Tallet bliver beregnet af nogle andre tal.

Formularens data sker på baggrund af en anden formular. I den formular kan jeg så åbne en ny formular, som er den vi arbejder i. Dvs. hvis tallet er minus, kan jeg eksempelvis lukke formularen ned, og ændre i de oprindelige data, så tallet bliver positivt.

Det virker også fint.. dog ændrer beskeden sig ikke.
Avatar billede joggeren Nybegynder
10. december 2003 - 11:38 #28
Jeg kan se, at lige når jeg går over i formularen står minus tal der... hvorefter den skifter til et positivt tal.

Tror det er det der skaber problemerne...
Avatar billede hubs Nybegynder
10. december 2003 - 11:38 #29
Lige for at repetere...
Din "Private Sub Form_Current()" virker i det øjeblik du åbner formen, men kun på de eksisterende data'er, hvis du vil ha at den skal ændre sig alt efter hvad du indtaster i et andet felt, som skal du også sætte koden ind under AfterUpdate for dette felt.
Avatar billede hubs Nybegynder
10. december 2003 - 11:39 #30
jo det kan sagtens være problemet..
hvordan kan det være at der står et negativt tal først?
Avatar billede hubs Nybegynder
10. december 2003 - 11:45 #31
lige for at give mig selv et lille overblik. så befinder "Tekst14" sig i én formular og værdien er bestemt af nogle andre felter som befinder sig i en helt anden formular? eller er jeg helt galt på den :o)
Avatar billede joggeren Nybegynder
10. december 2003 - 11:48 #32
Har sat koden ind i Afterupdate... både for formularen, og det enkelte felt.. det hjælper ikke...
Avatar billede joggeren Nybegynder
10. december 2003 - 11:50 #33
De befinder sig i en tabel... som jeg kan ændre i den ene formular... hvorefter jeg åbner en ny formular op, hvor dataene er baseret på tallene i tabellen... med noget lagerstatus.

Der står et negativt tal meget kort... der sker en lager-behov beregning... og det er behov tallet der står som negativt..
Avatar billede hubs Nybegynder
10. december 2003 - 11:53 #34
aaaah dvs at den formular du åbner kun viser resultater baseret på info fra en tabel, du ændre med andre ord ikke nogen data selv i den nye formular du åbner?
Avatar billede joggeren Nybegynder
10. december 2003 - 12:02 #35
Nej...
Avatar billede hubs Nybegynder
10. december 2003 - 12:10 #36
Hvis du har sat koden ind i "Form_Current()"  for den nye formular du åbner? så burde den virke.

Kan du gennemse flere poster i den nye formular eller er der kun én post? Hvis der er flere poster så prøv lige at klikke igennem dem, viser feltet stadigvæk
et negativt tal inden det bliver opdateret til det aktuelle, hver gang du skifter mellem de forskellige poster?
Avatar billede joggeren Nybegynder
10. december 2003 - 12:39 #37
Hmm... nu ryger vi i noget underformular!

Der er flere poster i formularen, hvor behovet står.

mene... lagertallene står i en underformular!
Avatar billede hubs Nybegynder
10. december 2003 - 13:11 #38
lol de pokkers underformularere :o) har du mulighed for at sende DB'en til mig så kan jeg lige kigge på den, hvis den ellers ikke fylder alt for meget

jacob.simonsen@rockwool.com
Avatar billede overchord Nybegynder
10. december 2003 - 13:13 #39
Det lyder som om dit hovedproblem er at teksten ikke andrer sig fra record til record (eller beregning til beregning). Hvis f.eks feltet er tomt i den naeste post vil det stadig staa med roedt fordi den ikke er andret fra koden. Evt kan du laegge en default vaerdi paa nul ind i tekstfeltet hvor beregningen optraeder (hvorfor den ikke dukker op i hovedformen ved jeg ikke).
Derefter tilfoejer du en
elseif Me.Tekst14 = 0 Then
me.lblwarning.caption = ""
Avatar billede joggeren Nybegynder
10. december 2003 - 13:29 #40
Sendt..
Avatar billede hubs Nybegynder
10. december 2003 - 14:00 #41
Prøv lige at fjerne hele "Private Sub Betegnelse_LostFocus()" Fra din behovgarn1 formular.

Du kan faktisk fjerne det meste af koden, du behøver kun din Form_Current og din kommandoknap.
Avatar billede joggeren Nybegynder
10. december 2003 - 14:02 #42
Fjernet...
Avatar billede joggeren Nybegynder
17. december 2003 - 15:24 #43
Så er det løst.... synes dette var mest retfærdigt...
Avatar billede hubs Nybegynder
17. december 2003 - 15:37 #44
Takker mænge gange for points,
Ta evt lige og skriv løsningen, så den kan findes igen :o)
Avatar billede joggeren Nybegynder
17. december 2003 - 15:39 #45
Private Sub Form_Current()
Me.Tekst14 = DSum("[Lager]", "Lager", "[Tykkelse] = '" & Me.Tykkelse & "'") - [SumOfBehov]
If Me.Tekst14 < 0 Then
Me.lblwarning.Caption = "For lidt på lager"
Me.lblwarning.ForeColor = vbRed
ElseIf Me.Tekst14 > 0 Then
Me.lblwarning.Caption = "Nok på lager"
Me.lblwarning.ForeColor = RGB(0, 128, 0)
Else
Me.lblwarning.Caption = "Lager går i nul"
End If
End Sub
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