Doppelte Einträge vermeiden
W

Hi ich brauche wieder einmal eure Hilfe.

In einer Books Tabelle soll vermieden werden, dass doppelte Einträge entstehen.

Mit diesem Script funktioniert es grundsätzlich

----

let AUTH := BookName;
if cnt((select BOOKS)[BookName = AUTH]) > 1 then
alert("Achtung, dieses Buch existiert bereits");
BookName := null
end

-----

Wenn man jetzt einen doppelten Namen eingibt, erfolgt die Fehlermeldung und der Datensatz wird nicht angelegt.

Wenn man jedoch den gleichen Namen anlegt und aus versehen am Ende noch eine Leerzeichen eingibt, dann wird der Fehler ignoriert.

Gibt es eine Möglichkeit das zu verhindern????

Danke für die Unterstützung 

 

Wolfgang

Ninox Profile

Hallo Wolfgang,

versuch mal so:

---

let AUTH := BookName;
if cnt((select BOOKS)[BookName like AUTH]) > 1 then
alert("Achtung, dieses Buch existiert bereits");
BookName := null
end

---

Leo

W

Danke Leo funktioniert, ich musste erst eine Weile suchen um die Änderung zu finden.

I like this!!!

 

Wolfgang

Ninox Profile

Hallo Leo,

mit der neuen 2.6.1 scheint diese Formel nicht mehr zu funktionieren?

Beste Grüße Andreas

Ninox Profile

Hallo,

bei mir funktioniert diese Formel auch nicht. Was habe ich vor: 

Bisher habe ich die Verwaltung und Auswertung unserer Kicktipp-Runden immer mit Excel gemacht. Mit Hilfe von Ninox sollte das ja auch möglich sein.

Ich habe eine Tabelle „Teilnehmer", die momentan die Teilnehmer der aktuellen Saison beinhalten. Um die Abrechnungen und Auswertungen zu erstellen, damit ich am Ende der Saison gerüstet bin, wollte ich jetzt die Daten der Saison 1819 mit aufnehmen.

Die Teilnehmer sind mit separaten Feldern „Nachname" und „Vorname" aufgenommen, diese habe ich dann im Feld „Name" zusammengefügt.

Der Nachname kann öfter vorkommen, die Kombination aus beiden Feldern allerdings nur einmal.

Wenn ich das jetzt richtig verstanden habe, muss ich die Formel im Funktionsfeld von „Name" packen.

let AUTH := Name;
if cnt((select TEILNEHMER)[Name like AUTH]) > 1 then
alert("Achtung, dieser Teilnehmer existiert bereits");
Name := null
end
 

Allerdings erzeugt das den Fehler „Diese Funktion darf keine Datenänderungen vornehmen". Habe ich da noch einen Fehler drin oder funktioniert diese Formel tatsächlich nicht mehr nach dem Update, wie Andreas geschrieben hat.

Was kann ich ändern, damit es funktioniert?

Viele Grüße
Markus

 

Ninox Profile

Hallo Markus, in Funktionsfeldern werden immer nur Berechnungen durchgeführt und deren Ergebnis angezeigt. In deinem Code wird mit der Zeile "Name := null" aber versucht, einem anderen Datenfeld einen Wert zuzuweisen. Das geht mit Funktionsfeldern nicht, deshalb die Fehlermeldung.

 

Ich kenne den größeren Zusammenhang jetzt nicht, aber in einem Trigger oder einer Schaltfläche könnte der Code funktionieren. Jedenfalls in den Apps, denn in der Cloud funktioniert das alert() leider generell nur über Schaltflächen.

Ninox Profile

Hallo Copytexter,

danke für die Info, schon wieder etwas gelernt 👍🏼 

Nun, ich möchte, wenn ich einen neuen Teilnehmer anlege, angezeigt bekommen/gewarnt werden, wenn der schon in der Teilnehmerliste existiert. Denn ein Teilnehmer kann immer nur einmal vorkommen

 

Mal eine andere Frage: wie ich weiter oben geschrieben habe, wurden die Teilnehmer mit separaten Feldern „Nachname" und „Vorname" aufgenommen. Diese habe ich dann im Feld „Name" zusammengefügt.

Wenn ich jetzt aber einen neuen Datensatz anlegen will, soll sich das Feld „Name" automatisch mit den Eingaben der Felder „Nachname" und „Vorname" füllen.

Das funktioniert nur leider nicht so wie gewünscht, da ich das Script in Feld Name ausführen lassen. Wie bekomme ich das denn hin? 

Ninox Profile

Die „andere Frage" hab ich schon rausbekommen. Wenn man nicht zu Ende denkt 😇

Ninox Profile

Hallo Markus, zum Kombinieren der Vor- und Nachnamen gibt es zwei Möglichkeiten.

 

1. Über ein Funktionsfeld namens 'Name' mit folgendem Code:

 

Vorname + " " + Nachname

 

2. Textfeld 'Name' über Trigger "Nach Änderung ..." in den Feldern 'Vorname' und 'Nachname' befüllen:

 

Name := Vorname + " " + Nachname

 

Oder, wenn zuerst nach dem Nachnamen sortiert werden soll, in beiden Fällen auch

 

Nachname + ", " + Vorname

Ninox Profile

Ups, na ja, dann ...

1 2
Antworten