0

Datum + Frist

Hallo ich habe ein Austrisdatum z.b 31.12.2020 da soll die frist beginnen von 10 Jahre also das frist datum ist dann 31.12.2030 wie ist da die Formel und ist es möglich das er nach der Frist den Datensatz von selber löscht.

Danke für die Hilfe

11 Antworten

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Ralf,

    Auf Datenbankebene im Reiter "Optionen" gibt es ein Feld "Nach dem Öffnen der Datenbank folgendes Skript ausführen".

    Bildschirmfoto 2020-05-10 um 23.02.21

    Dort würde ich folgende Formel schreiben:
    let myChoice:=select DEINETABELLE where date(year(Austritsdatum)+10,moth(Austritsdatum),day(Austritsdatum))<=today();
    if dialog("Frist abgelaufen","Folgende Datensätze sind mehr als 10 Jahre alt:

    "join(myChoice.(Name+ "Austritsdatum),"
    "),["Engültig löschen","Später"])="Engültig löschen" then delete myChoice end

    • Ralf_Wei.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke Leo für deine Hilfe aber bei mir sieht es so aus

    Bildschirmfoto 2020-05-12 um 16.44.37

    er findet die DB nicht

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Ralf,

    es sollte auch so sein. Merke dir oder schreibe die Tabellennamen auf und schreibe meine Formel darein

    Leo

    • Ralf_Wei.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke Leo habe ich auch hinbekommen nun habe ich aber einen Fehler in der Zeile 3 Bildschirmfoto 2020-05-15 um 20.25.49

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

    Hallo Ralf, da hatten sich kleine Tippfehler eingeschlichen. Versuch's mal so:

     

    let myChoice := (select Mitgliederdatei where date(year(Austrittsdatum) + 10, month(Austrittsdatum), day(Austrittsdatum))<=today());
    if dialog("Frist abgelaufen", "Folgende Datensätze sind mehr als 10 Jahre alt:
    " + join(myChoice.(Name + ", " + Austrittsdatum), "
    "), ["Endgültig löschen", "Später"]) = "Endgültig löschen" then delete myChoice end

    • Ralf_Wei.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke Leo jetzte geht es, eine Frage habe ich noch kann mann es so einstellen das er das Fenster nur dann brigt wenn jemand über 10 Jahre ist.

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    @Der Copytexter,

    Danke für die Korrektur. Ohne Ninox die Formel zu schreiben geht bei mir immer in die Hose.

    @Ralf
    Wenn du ei today() das Gleichzeichen weg machst, sollte dann gehen.

    "<=today());"   --->>. "< today());"

     

    Leo

    • Markus_Weise
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    der Code funktioniert zwar super, aber der Dialog wird bei mir trotz "< today());" immer angezeigt sobald ich die DB öffne, auch, wenn kein Datensatz älter als 10 Jahre ist. Was könnte die Ursache/Lösung sein?

    Markus

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

    Hallo Markus, ich bin zwar nicht Leo, kann dir aber trotzdem einen Tipp geben. Man müsste eine Abfrage einbauen, ob überhaupt Datensätze gefunden wurden, die der Bedingung "älter als 10 Jahre" entsprechen:

     

    let myChoice := (select Mitgliederdatei where date(year(Austrittsdatum) + 10, month(Austrittsdatum), day(Austrittsdatum)) < today());
    if cnt(myChoice) > 0 then
       if dialog("Frist abgelaufen", "Folgende Datensätze sind mehr als 10 Jahre alt:
    " + join(myChoice.(Name + ", " + Austrittsdatum), "
    "), ["Endgültig löschen", "Später"]) = "Endgültig löschen" then
          delete myChoice
       end
    end

    • Markus_Weise
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Ich glaube, ich habe es selbst gelöst:
    let myChoice := (select Kunden where date(year('letzte Änderung') + 10, month('letzte Änderung'), day('letzte Änderung')) <= today());
    if myChoice != 0 then
    if dialog("Frist abgelaufen", "Folgende Datensätze sind mehr als 10 Jahre alt:
    " + join(myChoice.(Name + ", " + 'letzte Änderung'), "
    "), ["Endgültig löschen", "Später"]) = "Endgültig löschen" then
    delete myChoice
    end
    end

    So klappts bei mir

    • Markus_Weise
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo planox, jetzt sehe ich es gerade, wir hatten wohl die gleiche Idee :) Danke!

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 11Antworten
  • 847Ansichten