0

Aktualisierung eines Datenfelds in der Haupttabelle

Hallo,

 

ich möchte gerne das Feld 'Nächster Tüv Termin' in der Tabelle Fahrzeuge automatisch aktualisieren lassen durch ein Auswahlfeld in einer verknüpften Tabelle.

Das Auswahlfeld 'Grund der Wartung' soll, wenn dort "Tüv" ausgewählt wurde, mit dem aktuellen Datum aus einem Datumsfeld in der gleichen Tabelle das Feld in der Haupttabelle füllen mit einem formatierten Datum(11.2020) und 2 Jahre dazu zählen.

 

Habe jetzt den Code probiert:

if 'Grund der Wartung' = 6 then
Fahrzeuge.'Nächster Tüv Termin' = format(Datum, "MM.YYYY")
end

Leider passiert da gar nichts? Und wie würde ich die 2 Jahre dazu zählen?

 

Hat da jemand einen Tip für mich?

 

Gruß

Mirko

12 Antworten

null
    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Mirko,

     

    erstmal: mit "=" vergleichst Du, mit ":=" weist Du einem Feld einen Wert zu. Deshalb wird Dein Code nichts im Feld 'Nächster Tüv Termin' eintragen. Das hier sollte funktionieren:

     

    if 'Grund der Wartung' = 6 then
    Fahrzeuge.'Nächster Tüv Termin' := month(Datum)+"."+(year(Datum)+2)
    end

     

    lg, Torsten

    • Mirko.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Moin,

     

    man sollte zu spät dann doch keinen Code mehr schreiben, dann übersieht man so etwas mit dem Gleichzeichen!

     

    Leider funktioniert der Code oben aber nicht, er zählt zu dem Datum einfach eine zwei hinten ran, also so 4.20192.

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Moin,

     

    seltsam, eben in der Console probiert:

    month(today()) + "." + (year(today())+2)

    Ergebnis: "1.2021"

     

    lg, Torsten

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Was ist daran seltsam? Du erzeugst eine Zeichenkette aus "1", einem Punkt und "2021". Ergibt "1.2021".

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Seltsam ist, dass ich genau das auch erwarte, Mirko jedoch mit gleichem Code ein "1.20192" erhält... ;-)

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wer weiß, was in "Datum" steht ...?

     

    Wie auch immer, ich würd's wahrscheinlich so machen ("01.2021"):

     

    format(date(year(today()) + 2, month(today()), day(today())), "MM.YY")

     

    Oder so ("2021/01"):

     

    yearmonth(date(year(today()) + 2, month(today()), day(today())))

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    nachdem Ninox in der Lage ist, Monat und Jahr aus 'Datum' zu verarbeiten, dürfte es IMHO wohl auch genau das sein, ein Datumsfeld.

    • Mirko.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    also mir sagt er jetzt, dass er die Spalte Datum nicht findet?

     

    Hab es auch schon mit dem Datum in einer Variablen versucht, geht auch nicht?

     

    Der Code von Copytexter und von Torsten funktioniert, aber nur mit today(), nicht wenn er aus dem Datumsfeld lesen soll? Und ja, es ist ein Datumsfeld.

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Das Feld "Datum" wird aus der Tabelle "Fahrzeuge" geholt, und dort ist es offenbar nicht vorhanden.

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    vorweg: das "+2" müsste bei dem Code tatsächlich mit "year(Datum)" in eine Klammer, also "(year(Datum)+2)". Mit der date()-Funktion sollte es so klappen:

     

    let myDate := Datum;
    if 'Grund der Wartung' = 6 then
    Fahrzeuge.'Nächster Tüv Termin' := format(date(year(myDate) + 2, month(myDate), day(myDate)), "MM.YY")
    end

     

    lg, Torsten

    • Mirko.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    perfekt, so funktioniert es einwandfrei!

     

    Danke schön

    Gruß

    Mirko

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    👍

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 12Antworten
  • 2893Ansichten