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
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.
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.
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
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?
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
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.
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.
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)
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..
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?
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?
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 = ""
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
Synes godt om
Ny brugerNybegynder
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.