0

Ninox ärgert mich

Hallo,

noch ein Frischling, aber ich hofe, dass ich mich vei meinem Problem nicht zu blöd angestellt habe. Ich bin beim kontruieren einer Datanbank (was denn sonst) und stelle Ninox eine eigentlich ganz einfache Aufgabe: Wenn ich in einem Auswahlfeld eine Option (= 1) auswähle, dann multipliziere den Wert (berechnete Zahl) aus einem Zahlenfeld dieser Tabelle mit dem Wert (Standardwert in Euro) aus einer anderen Tabelle. Wenn ich = 2 auswähle, multipliziere den ersten Wert mit dem Wer (auch Standardwert in Euro) aus einem anderen Zahlenfeld der zweiten Tabelle, oder multpliziere diesen Wert (erste Tabelle) mit dem dritten Wert aus der zweiten Tabelle. Hat super funktioniert, so dass ich den Code auch in andere Berechnungn kpiert habe. Nach Anpassung dort hat das auch funktioniert. Nach einigen anderen Schriten bei der Erstellung (die nichts mit diesen Tabellen zu tun hatten!) habe ich dann noch mal alles durchgesehen und die Berechnungen oben klppten nicht mehr! Es kam kein Ergebnis. Das war Nr. 1 des Ärgerns.

Berechnungsfeld neu erstellt -passiert nix. Noch mal neu - da kommt die Fehlermeldung "Ungültiger Operator: number*[number| in Zeile 3, Spalte 4.

No Problem, denkt man. ABER da stehe nur ELSE!!!!

1     if Auswahl = 1 then
2   Zahl 1 * Tabelle.Zahl 2a
3   else
4   if Auswahl = 2 then
5   Zahl 1 * Tabelle.Zahl 2b
6   else
7   Zahl 1 * Tabelle.Zahl 2c

 8  end

 9  end

Und das passiert immer wieder! Es wird nix mehr berechnet und bei Neuerstellung wird aiuch nics´x berecnet und wenn man dort andere Felder auswählt kommt o.g. Fehlermeldung (manchmal auch Zeile 8 salte 44). 

Was mus man tun, um diese Fehlermeldung nicht zu bekommen?

Wie gesagt, esn hatte nach der ersten Erstellung funktioniert. 

4 Antworten

null
    • SV-Büro
    • Holger_Liedtke
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Sorry, aber ich schreibe sonst auf einer anderen Tastatur. Sieht furchtbar aus.

    • RMS Immobilière
    • Arsene_Nickels
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo

    wenn die Bezeichnung der Felder wirklich Zahl 2 a, Zahl 2b  usw ist, musst du sie zwischen "Guimets " setzen, so:  Tabelle.'Zahl 2a'

    • Leonid_Semik
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Holger,

    Ich glaube, hier ist es mit dem Ärger eher umgekehrt. Du ärgerst Ninox mit falschen Befehlen, er versucht dir das zu erklären, aber da ihr beiden unterschiedlichen Sprachen spricht, funktioniert es nicht.

    Du schreibst "...dem Wert (Standardwert in Euro) aus einer anderen Tabelle". Hat diese andere Tabelle nur einen Datensatz?, ist diese Andere Tabelle mit derzeitiger Tabelle Verknüpft? Wenn Ja - wie?

    Wenn ich die Fehlermeldung richtig interpretiere, ist die Tabelle namens Tabelle eine Untertabelle der Haupttabelle mit Dem Auswahlfeld. Bei Adressierung in der Zeile 2 geht ninox davon aus, dass die Untertabelle mehrere records hat und setzt alles als Array mit Ekklammern. Auch wenn dort nur einen Datensatz gibt, weiß Ninox nichts davon. So multiplizierst du Äpfel mit Birnen.
    Zal1*[Zahl2]. Wenn die Untertabelle Tabelle nur einen Datensatz hat, sollte man dem Ninox das auch sagen Zahl1*first(Tabelle).Zahl2 (nimm den ersten Datensatz aus der Untertabelle und davon das Feld Zahl2)

    Leo

    • SV-Büro
    • Holger_Liedtke
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo, und danke für die Antworten.

    Zu Arsène: Ich habe mich vielleicht ein wenig komisch ausgedrückt. Zahl 2a bedeutet nur, dass es eine zweite Zahl ist. Die Zusätze a, b, und c sollten nur verdeutlichen, dass es unterschiedliche Zahlen sind. Für den Code habe ich die die Felder von der linken Seite des Funktionsgenerators aufgerufen.

    Zu Leonid: Ich will ja gar nicht ausschließen, dass ich zu unerfahren (zu doof) bin :-).

    ABER : Wieso hat es zuerst mit dem gleichen Code und der gleichen Konfiguration einfach nur FUNKTIONIERT????

    UND, WAS NOCH BESSER (seltsamer) IST! Es funktioniert wieder und ich haben seit meiner Frage NICHTS, aber auch GAR NICHTS geändert!!! Ich wsste ja nicht weiter.

    Aber auch mit Deinem Code funktioniert es. Danke. Muss ich tatsächlich dieses FIRST nehmen, obwohl ich doch direkt aus dem Datensatz die Untertabelle aufgerufen habe? Was passiert, wenn ich aus dem 50. Datensatz die Untertabelle aufrufe und sich die Werte geändert haben- also ab diesem Datensatz andere Werte stehen? Dann nutzen mir die Werte aus dem ersten Datensatz dch nichts!

    Wer ärgert wen?

    Vielleicht hängt das aber auch mit einem rein technischen Problem zusammen, das ich auch habe. In 90 % der Fälle, bei denen ich von einer Datenbank, in der ich  was geändert habe (ich habe verschiedene Versionen meiner zu erarbeitenden Datenbank und die Nachgebauten aus den Turorials gespeichert) zurük auf "< Meine Datenbanken" schalte, stürzt NINOX ab. Der Support hat auch noch keine Lösung geliefert :-(.

     

    Trotzdem vielen Dank für Eure Mühe

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 4Antworten
  • 226Ansichten