Hallo Und Guten tag
Ich habe in einem Formulare die Feld Status , die von 1 bis 5 bewertet
und muss mit der zeit verändert automatisch
zb : wenn von heute bis ende des Garantie nur 3 Monate noch gibt dann von Status 1 zu 2 ändern
und wenn Garantie abgelaufen ist dann von 2 zu 3 ändert
mit 4 und 5 wir nichts verändert
Viele Grüße
Hallo,
schreibe eine Funktion ("CalcStatus()"), die den Status aktuell berechnet und zurück liefert und rufe diese Funktion im Steuerelementinhalt eines Form-Textfeldes auf:
=CalcStatus()
Dazu muss aber die Bedeutung ALLER 5 Status-Werte bekannt und berechenbar sein.
ich habe diese Funktion geschrieben ist das Richtig
wie kann aufrufen und ganze spalte automatisch anwenden
Public Function StatusBestimmen(Nächste_Kal As Variant) As Integer
Dim DifferenzInMonat As Integer
Dim Statusnr As Integer
Dim diDifferenzInyear As Integer
If IsNull(Nächste_Kal) Then Exit Function
DifferenzInyear = DateDiff("y", Date, Nächste_Kal)
If DifferenzInyear < 1 Then
DifferenzInMonat = DateDiff("m", Date, Nächste_Kal)
If DifferenzInMonat >= 3 And Not IsNull(Me!Status) Then
StatusBestimmen = 1
End If
If DifferenzInMonat < 3 And DifferenzInMonat > 1 And Not IsNull(Me.Status) Then
StatusBestimmen = 2
End If
If DifferenzInMonat < 0 And Not IsNull(Me!Status) Or Me.Status = 3 Then
StatusBestimmen = 3
End If
If DifferenzInMonat < 0 And Not IsNull(Me!Status) And Me.Status = 4 Then
StatusBestimmen = 4
End If
If DifferenzInMonat < 0 And Not IsNull(Me!Status) And Me.Status = 5 Then
StatusBestimmen = 5
End If
End If
End Function
Hallo,
so war das nicht gemeint... Me!Status darf in der Funktion nicht vorkommen, der Status-Wert soll ja berechnet werden.
Deshalb meine vorherige Anmerkung, dass die Bedeutung aller Status-Werte definiert sein muss.
Z.B . Woher kommt Statuswert 3 oder 4 und was bedeutet der? Ein Feld "Status" in irgendeiner Tabelle ist überflüssig/falsch.
Können SIe mal Bitte ein beispiel Programm schreiben damit ich verstehe was Sie meinen
Danke
Hallo,
Public Function StatusBestimmen(Nächste_Kal As Date) As Integer
Dim DifferenzInMonat As Integer
Dim Statusnr As Integer
Dim diDifferenzInyear As Integer
If IsNull(Nächste_Kal) Then Exit Function
DifferenzInyear = DateDiff("y", Date, Nächste_Kal)
If DifferenzInyear < 1 Then
DifferenzInMonat = DateDiff("m", Date, Nächste_Kal)
If DifferenzInMonat >= 3 Then
StatusBestimmen = 1
End If
If DifferenzInMonat < 3 And DifferenzInMonat > 1 Then
StatusBestimmen = 2
End If
If DifferenzInMonat < 0 Then
StatusBestimmen = 3
End If
If <<ein bestimmter anderer Zustand der Zeitverhältnisse>> Then
StatusBestimmen = 4
End If
If <<ein bestimmter weiterer anderer Zustand der Zeitverhältnisse>> Then
StatusBestimmen = 5
End If
End If
End Function
Im Steuerelementinhalt eines Form-Textfeldes:
=StatusBestimmen()
Danke Ihnen hat mich gut geholfen
aber bei 4 und 5 es gibt kein Bedingung die sind schon 4 und 5 bewertet und die müssen nicht ändern
=StatusBestimmen([Nächste Kal]) Und Wenn([Status]=4;4;5)
ich habe dieses Ausdruck geschrieben und möchte damit sagen
ruf die Funktion StatusBestimmen auf von 1 bis 3
und wenn es 4 dann bleibt 4 und wenn 5 ist dann bleibt 5
aber es gibt Fehler
bitte helfen
Danke
Versuche es mal hiermit:
=Wenn([Status] < 4;StatusBestimmen([Nächste Kal]);[Status])
die zeigt immer fehler wie im bild
Das Textfeld selbst darf dabei nicht "Status" heißen.
Oder wie bzw. wo hast du den Code eingesetzt?
Vielen dank ist geklappt :D