0

Daten aus letztem Datensatz verarbeiten

Ich möchte für die Auswertung meiner Benzinabrechnung auf den letzten (eingegebenen Km.-Stand) zugreifen.

Kann mir jemand einen tipp geben.

Ich bekomme immer die Meldung : “Diese Funktion darf keine Datenänderung vornehmen”

Gruß Peter

9 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Peter, diese Fehlermeldung erscheint in der Regel dann, wenn man versucht, aus einem Funktionsfeld heraus mit “:=” ein anderes Datenfeld zu manipulieren. Das geht nicht. Funktionsfelder sind ausschließlich dazu da, einen Wert zu ermitteln und diesen anzuzeigen.

    Mangels weiterer Angaben lässt sich nicht genau sagen, wie man in deinem Fall vorgehen sollte. Grundsätzlich kann man auf ein Datenfeld des zuletzt eingebenen Datensatzes aber so zuzugreifen:

    last((select TABELLE order by number(Nr)).DATENFELD)

    Wobei TABELLE und DATENFELD hier nur Platzhalter für die tatsächlichen Bezeichnungen sind.

    • PEGRA
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter,

    vielen Dank für deine Info.

    Ich möchte den Km. Stand nach dem Tanken aus dem letzten Datensatz in den neuen Datensatz als Km.Stand vor dem Tanken übernehmen.

    leider klappt das nicht mit der von Dir vorgeschlagenen Lösung.

    Ich könte Dir per Mail die DB zusenden (wenn Du mir deien E-Mail Adr. senden willst), damit du sehen kannst was ich meine.

    Gruß Peter

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

    Moin Peter, kannst mir die DB gerne zusenden. “copytexter” vor dem “at”, “posteo.de” dahinter.

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

    Okay, ändere den Trigger “Bei neuem Datensatz” der Tabelle “Benzin” doch mal folgendermaßen:

     

    let meNr := number(Nr);
    “Km. vor Tanken” := last(((select Benzin where number(Nr) < meNr) order by number(Nr)).“Km. nach Tanken”)

     

    Wobei du nach dem Copy and Paste die doppelten Anführungszeichen der Feldbezeichnungen durch einfache Anführungszeichen ersetzen müsstest (ist ein Bug hier im Forum).

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

    Hm,

     

    würde das mit max() nicht auch funktionieren, wenn in der Tabelle nur ein Fahrzeug gepflegt wird?

     

    let me := number(Nr);
    “Km. vor Tanken” := max((select Benzin where number(Nr) != me).“Km. nach Tanken”)

     

    Bei last() hab ich halt immer ein Problem, wenn - warum auch immer - mal nicht in der Reihenfolge des Tankens eingetragen wird...

     

    lg, Torsten

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

    Hallo Torsten, ja, da hast du recht, so könnte man es auch machen. Nur: Welchen km-Stand würde man eintragen, wenn man nicht nach der Reihenfolgen des Tankens vorginge? Und wäre der höchste Stand dann auch der zu übernehmende?

     

    Es wäre also wohl von der Vorgehensweise abhängig, und mit deinem Vorschlag hat Peter auf jeden Fall eine weitere Option.

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

    Hallo Copytexter,

     

    Also ich sehe die automatische Vorbelegung eigentlich eher als “logischen Vorschlag”. Wenn z.B. zwischendrin ein Beleg nicht erfasst wurde, möchte ich den vielleicht nachtragen wollen. Du hast recht, kommt wohl eher selten bis gar nicht vor - ich neige berufsbedingt aber immer dazu, jeden noch so unwahrscheinlichen Fall direkt mit zu berücksichtigen (sofern möglich). Ich wollte also keinen Wettbewerb der besseren Lösung starten sondern bin lediglich meinem Tick unterlegen ;)

     

    Also, Peter, your choice ;)

     

    lg, Torsten

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

    Ich habe deine Alternative nicht als konkurrierenden Beitrag empfunden, im Gegenteil! Es führen ja viele Wege nach Rom, und ich wollte nur erläutern, warum ich mich für den vorgeschlagenen entschieden hatte (Problemlösung zum Thema “letzter Datensatz”). Wobei deiner aber sogar den Vorteil hat, dass die Wegbeschreibung etwas kürzer ist. ;)

    • PEGRA
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Ihr Beiden,

    Vielen Dank für die Lösungen beide Lösungen führen zum gewünschten Ergebniss.

    LG Peter

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 9Antworten
  • 761Ansichten