0

Querverweis auf Tabelle - automatisches Ausfüllen

Hallo zusammen,

ich habe eine Tabelle 1 (Stückliste) mit mehreren Auswahlfeldern: 

Kunde / Typ / Stahl / Dicke / und das Berechnungsfeld "Preis/Einheit"

und ich habe eine Tabelle 2 (Kosten Platinen) mit den Feldern:

kunde / typ / stahl / dicke / preis

Ich möchte in Tabelle 1 die entsprechenden Daten auswählen und aus Tabelle 2 soll dann der Preis in das Feld "Preis/Einheit" der Tabelle 1 eingesetzt werden. 

Ist das mit Ninox möglich und wenn ja, wie geht das?

Herzlichen Dank für eure Hilfe.

Dirk

4 Antworten

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

    Hallo Dirk, wenn alle Kriterien (Felder) übereinstimmen müssen, dann könntest du es mit folgender Formel im Berechnungsfeld 'Preis/Einheit' versuchen:

     

    let me := this;
    first((select Tabelle2 where kunde = me.Kunde and typ = me.Typ and stahl = me.Stahl and dicke = me.Dicke).preis)

    • dirkheyer
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hi Copytexter,

    ich hab die Formel in das Feld der Tabelle 1 "Preis/Einheit" eingegeben (also das Ausgabefeld). Funktioniert aber nicht. Ich denke das liegt an den Auswahlfeldern, die ja einen Zahlenwert zurückmelden und nicht einen Text (z.B. BMW = 2).

    Hast Du eine Idee, wie man das in der Formel berücksichtigt?

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

    Hallo Dirk, was heißt denn "funktioniert nicht"? Eine Fehlermeldung im Editor oder keine Ergebnis-Anzeige im Datenfeld?

    Es ist richtig, dass als Standard ein numerischer Wert zurückgegeben wird, aber wenn es in BEIDEN Tabellen Auswahlfelder sind dann, wird ja auch in beiden Fällen dieser numerische Wert zum Vergleich herangezogen. Wenn also bspw. "BMW" in den Auswahlfeldern beider Tabellen die Nummer 2 hat, müsste es auch einen "Treffer" geben.

    Du kannst mit der Funktion text() aber testweise auch die Textwerte der Auswahlfelder auslesen und vergleichen

     

    let me := this;
    first((select Tabelle2 where text(kunde) = me.text(Kunde) and text(typ) = me.text(Typ) and text(stahl) = me.text(Stahl) and text(dicke) = me.text(Dicke)).preis)

    • dirkheyer
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter,

    ganz herzlichen Dank. Funktioniert einwandfrei.