0

Neuer Datensatz sperren

Guten Morgen,

versuche das mal zu erklären.

Ich habe in einer Datenbank ein Formular mit Befehlsschaltflächen erstellt. Diese Schaltflächen sind zu einzelnen Bereichen gruppiert, um damit zu Adressen, Rechnungen, etc. zu springen.

Das funktioniert alles tadellos und dadurch einfacher, mit der Datenbank zu arbeiten. Meine Frage ist jetzt dazu, ob es eine Möglichkeit gibt, die Anlage eines neuen Datensatzes zu verhindern?

Da hier ja keine Daten eingegeben werden, würden eventuell jede Menge neuer Datensätze angelegt werden.

 

Eventuell gibt es da aber auch noch eine bessere Möglichkeit, um so eine Übersicht zur Navigation in der Datenbank zu realisieren?

Viele Grüße

Dietmar

9 Antworten

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

    Hallo Dietmar, welche Funktion nutzt du denn in den Schaltflächen, um "damit zu Adressen, Rechnungen, etc. zu springen"? Und warum sollten dabei "eventuell jede Menge neuer Datensätze angelegt werden"?

    Es gibt ja verschiedene Möglichkeiten, per Skript eine Tabelle zu öffnen. Zum Beispiel:

    openTable("TABELLE", "ANSICHT")

    öffnet die angegebene Tabelle mit dem ersten oder dem zuletzt aktivierten Datensatz. Die Angabe einer bestimmten Ansicht ist optional.

    openRecord(record(TABELLE, NR)

    öffnet die angegebene Tabelle Datensatz mit dem Datensatz NR. Wenn man die betreffende ID hat, kann man auch direkt schreiben: openRecord(ID)

    Aber bei keiner dieser Varianten werden neue Datensätze angelegt. Das passiert nur bei "create TABELLE".

    Ganz allgemein: Man kann in den Optionen einer Tabelle festlegen, welche Benutzerrolle neue Datensätze erstellen darf und wer nicht. Zum Beispiel "Jeder" oder nur "Administrator". Das wirkt sich m. W. aber nicht auf ein "create" in Schaltflächen aus, mit dem neue Datensätze angelegt werden können. Hier hätte man aber wiederum die Möglichkeit, unter "Feld nur anzeigen, wenn" in den Optionen der Schaltfläche anzugeben, dass sie gar nicht erst jedem bzw. nur unter bestimmten Bedingungen angezeigt wird (z. B. userRole() = "admin").

     

    Vielleicht kannst du noch mal etwas genauer erklären, um was es geht.

    • Dietmar_Press
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter,

    danke für die Antwort. Ja, ich öffne die Tabellen mit openTable("TABELLE", "ANSICHT").Bildschirmfoto 2020-02-20 um 09.44.55 

    Aber es geht sich jetzt hier um die Tabelle, die hinter dem Formular mit den Befehlsschaltflächen ist. Hier könnte man mit dem "+", bzw. mit dem Datensatz duplizieren, neue Datensätze anlegen. Diese Funktion würde ich gerne sperren. Ich hoffe, das ich mich da verständlich ausdrücke?

    Habe dazu in den Optionen der Tabelle nichtsgefunden.

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

    Ach so. Die Einstellung, die ich oben meinte, findet sich in den Optionen der Tabelle ganz unten links:

     

    Berechtigung_Neuer Datensatz1_2020-02-20

    • Dietmar_Press
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ja, jetzt habe ich das gefunden. Habe die Standalone App für den Mac die ich nutze. Dort gibt es diese Option nicht. Wenn ich die Datenbank in die Ninox Cloud nutze, kann ich das so machen.

    Gibt es bei des Standalone Version eventuell auch eine Möglichkeit das durch Programmierung zu sperren? 

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

    Klar, wenn es nur einen Nutzer gibt, braucht man natürlich keine Rollen und muss auch nichts einschränken.

    Ich wüsste keine andere Möglichkeit, das "Löschen" zu sperren. Habe bei meinen eigenen Aktivitäten als Einzeluser allerdings auch noch nie darüber nachgedacht. Hast du die Befürchtung, du könntest versehentlich ständig auf das Plus-Zeichen klicken oder was ist die Intention?

    • Dietmar_Press
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Wollte das eigentlich erst mal alles fertig machen und testen. Der nächste Schritt wäre das dann im Team zu nutzen.
    Dann weiß ich aber schon mal, was geht und was nicht.

    Vielen Dank schon mal für die Antworten

     

    Dietmar

    • Tekl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich suche ebenfalls nach so einer Funktion. Ich habe eine Tabelle mit zwölf Monaten, um darin gesammelt verknüpfte Angaben zur Aussat, Rückschnitt und Ernte von Pflanzen aufzulisten. Hier ist es einfach nicht sinnvoll, wenn versehentlich ein 13. Datensatz entsteht, was ja schnell mal passieren kann. 

    verstehe ich das richtig, dass ich 16,66 €/Monat ausgeben muss, um das mit den Nutzerrechten überhaupt nutzen zu können? 

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo
    Du könntest in der Tabelle im Trigger 'Bei neuem Datensatz folgendes Script ausführen' folgendes reinschreiben.
    let vAnzahl := cnt(select 'Diese Tabelle');
    if vAnzahl >12 then delete(this)

    Damit verhinderst du Neuanlagen wenn bereits 12 Datensätze vorhanden sind.
    Das kann man auch bei Dashboard-Tabellen nutzen um zu verhindern, dass dort mehr als ein Record enthalten ist. Dann ist 1 die maximale Anzahl der Records in der Tabelle.

    • Tekl
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Geil. Danke für den Tipp.