TABELLENNAME per Feldinhalt definieren
Hallo zusammen,
ich stehe aktuell vor einem Problem für welches ich keine Lösung finde.
Ich möchte gerne mit SELECT eine Tabelle ABC123 auswählen, welche dem Feldinhalt der HAUPTTABELLE entspricht.
Hintergrund ist, dass ich über den Datenimport bis zu 80 csv Dateien in jeweils eigene Tabellen importieren möchte und innerhalb dieser CSVs nach bestimmten Werten suchen lassen möchte.
Geht das?
Vielen Dank vorab
27 Antworten
-
Direkt wird das nicht funktionieren.
Ein Cheat wäre es vielleicht mit der Funktion eval() einen variablen select-String zu bauen.let vTable := TABELLE;
let vFeld := FELD;
'Ergebnis select' := eval("(select " + vTable + ")." + vFeld, this)
ACHTUNG: eval() ist keine von Ninox offiziell unterstützte Funktion.
!!! eval() funktioniert nicht mit der NinoxApp, wenn sich die Datenbank nicht in einem Team befindet. (setzt Ninox-Abo voraus) !!! -
Ich habe schon einige Zeit eine eval() Testtabelle. Im oberen Teil sind Textfelder zu sehen, darunter das Ergebnis und darunter das gleiche Ergebnis mit Variablen. Also bei mir klappt es, bis auf das schräge Array als Ergebnis. Für mich war es nur eine "Machbarkeitsstudie".
Das Script für das untere Funktionsfeld ist:
let Tab := "EINKAUF"; let col := "PRODUKT"; let field := "PRODUKT"; let name := "R2D2"; eval(--- select { Tab }[ { col } = "{ name }" ].{ field } ---, this)
-
Ach ja, eine Ansicht bekomme ich mit eval() bezüglich des Tabellennamens auch nicht zum Laufen. Mir gefällt nur die für mich intuitivere Schreibweise, wie oben erwähnt.
-
UweG
Falls meine Antwort untergegangen sein sollte.
Hallo Uwe, zum besseren Verständnis.
Meine Haupttabelle "Kapazitäten" beinhaltet alle verbauten Kabel mit Bezeichnungen(Spalte Kapazitäten.Bezeichnung) nun soll in jedem Datensatz in dieser Tabelle die Belegung der einzelnen Kabel ermittelt werden.
Die importierten CSV Dateien, haben den selben Namen wie in "Bezeichnung" angegeben und somit wird die Tabelle auch gleich lautend sein. In dieser Tabelle liegt dann die Belegung des Kabels in "Spalte9" mit dem Inhalt "LIVE" oder ist eben Leer.
Nun soll mittels Formel die Tabelle, wie in der Tabelle KAPAZITÄTEN und der Spalte BEZEICHNUNG angeben, ausgewählt und in dieser dann in der Spalte SPALTE9 der Wert LIVE gesucht und gezählt werden.
Kannst du das nach vollziehen, was ich meine oder machen möchte?
-
Hallo Uwe,
ich habe dich entsprechend eingeladen.
Bitte beachten, dass diese Datenbank nur der Spielplatz für diese Funktion ist.
Danke vorab vielmals für deine Hilfe
-
UweG
Vielen Dank für deinen Support.
Jetzt habe ich noch eine Frage, mir ist aufgefallen, dass die Tabellen, wenn diese MINUS-zeichen enthalten(z.B. "ABC-123"-> funktioniert nicht / "ABC123"-> funktioniert ) nicht gefunden werden. Hast du da eventuell eine Idee, was hier die Lösung sein kann?
Content aside
- vor 2 JahrenZuletzt aktiv
- 27Antworten
- 251Ansichten
-
3
Folge bereits