GELÖST Listenfeld in Unterformular nicht auswählbar

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: GELÖST Listenfeld in Unterformular nicht auswählbar

Re: GELÖST Listenfeld in Unterformular nicht auswählbar

von F3K Total » Di, 21.01.2020 18:06

Vielleicht so:

Code: Alles auswählen

SELECT
    "ID",
    "Nachname",
    "Vorname"
    "Strasse",
    "PLZ",
    "Ort",
    "Haarfarbe",
    ( SELECT "Haarfarbe" FROM "Haarfarben" WHERE "Adressen"."Haarfarbe" = "Haarfarben"."ID" ) "HF"
FROM
    "Adressen"
WHERE
    ( LOWER
        ((SELECT
            "Haarfarbe"
         FROM
             "Haarfarben"
         WHERE
             "Adressen"."Haarfarbe" = "Haarfarben"."ID" 
         ))
         LIKE
             LOWER ( :qHaarfarbe || '%' )
         OR
             :qHaarfarbe IS NULL )
Gruß R

Re: GELÖST Listenfeld in Unterformular nicht auswählbar

von seballa » Di, 21.01.2020 00:31

Hallo,

vielen Dank! Deiner erste Lösung klappt auch in MYSQL wunderbar. Ein Dropdownfeld ist in meinem Fall völlig ausreichend, ich frage eine begrenzte Auswahl an Kategorien (Weinsorten) und Lieferanten (Winzern) ab, ich baue meine bereits in BASE vorhandene Weinkellerdatenbank neu in schöner, sauberer und mit Zugriff von unterwegs.

Dein PLAN B geht leider mit MYSQL nicht, nach ein bisschen Googlen weiß ich auch warum. Die Reihenfolge bei MYSQL ist:

FROM clause
WHERE clause
GROUP BY clause
HAVING clause
SELECT clause
ORDER BY clause

Dadurch wirft die Abfrage einen Fehler, die Tabelle HF ist in der Where clause noch nicht bekannt.

Diese Abfrage wird zwar korrekt ausgeführt, aber ist wiederum nicht beschreibbar.

Code: Alles auswählen

SELECT
    "ID",
    "Nachname",
    "Vorname",
    "Strasse",
    "PLZ",
    "Ort",
    "Haarfarbe",
    ( SELECT "Haarfarbe" FROM "Haarfarben" WHERE "Adressen"."Haarfarbe" = "Haarfarben"."ID" ) "HF"
FROM
    "Adressen"
WHERE
    ( 
    	LOWER ( ( SELECT "Haarfarbe" FROM "Haarfarben" WHERE "Adressen"."Haarfarbe" = "Haarfarben"."ID" )) 
    LIKE 
    	LOWER (CONCAT( :qHaarfarbe, '%' )) OR :qHaarfarbe IS NULL 
    )
Mein Ziel ist es meine DB ohne Makros zu bauen mal sehen, ob ich es hin bekomme aber das war ein großer Schritt vorwärts.

Nochmal danke für die schnelle Hilfe und die tollen Videos, hilft mir sehr!

Seballa

Re: GELÖST Listenfeld in Unterformular nicht auswählbar

von F3K Total » Mo, 20.01.2020 18:13

Hallo,
noch eine Idee, folgende Abfrage, mit korrelierender Unterabfrage für die Haarfarbe ist beschreibbar:

Code: Alles auswählen

SELECT
    "ID",
    "Nachname",
    "Vorname",
    "Strasse",
    "PLZ",
    "Ort",
    "Haarfarbe",
    ( SELECT "Haarfarbe" FROM "Haarfarben" WHERE "Adressen"."Haarfarbe" = "Haarfarben"."ID" ) "HF"
FROM
    "Adressen"
WHERE
    ( LOWER ( "HF" ) LIKE LOWER ( :qHaarfarbe || '%' ) OR :qHaarfarbe IS NULL )
Gruß R

Re: GELÖST Listenfeld in Unterformular nicht auswählbar

von F3K Total » Mo, 20.01.2020 17:30

Hallo seballa,
wenn die Klartextsuche eine feste Bedingung ist, dann muss es wohl so kompliziert sein, wie du es gemacht hast.
Wenn nicht, kannst du statt des Textfeldes einfach ein Listenfeld zum Filtern nehmen, dann bleibt die Abfrage beschreibbar.
Alles etwas einfacher.
Gruß R
Dateianhänge
Adressen_Liste_und_Filter.odb
(71.95 KiB) 161-mal heruntergeladen

Re: GELÖST Listenfeld in Unterformular nicht auswählbar

von seballa » Mo, 20.01.2020 17:17

Ich habe festgestellt, dass es mit einer Abfrage über mehrere Tabellen nicht mehr möglich ist einen Datensatz hinzuzufügen, das habe ich gelöst in dem ich noch ein Formular in der ersten Ebene erstellt habe mit zwei Knöpfen "Neu" und "Speichern" sowie einem Textfeld für den Namen des neuen Datensatzes.

Re: Listenfeld in Unterformular nicht auswählbar

von seballa » Mo, 20.01.2020 15:11

Ich konnte mein Problem nun selbst lösen. Die Antwort war es ein weiteres Unterformular (3. Ebene Filter-->Abfrage-->Tabelle) zu erstellen und die ID mit der ID der Abfrage zu verknüpfen, das Listenfeld greift jetzt auf die Tabelle zu und nicht mehr auf die Abfrage und meine gewünschte Funktion klappt. Ich habe das auch einmal in der Beispieldatei ergänzt.

Grüße
Seballa
Dateianhänge
Adressen_Liste_und_Filter.odb
siehe auch Video Tutorials http://de.openoffice.info/viewtopic.php?f=27&t=54234#p237478
(72.5 KiB) 150-mal heruntergeladen

GELÖST Listenfeld in Unterformular nicht auswählbar

von seballa » So, 19.01.2020 17:46

Hallo,

ich frage mit LO(6.3.4.2) Base eine MYSQL Datenbank mittels dem mysql-java-connector ab.
Um mich nach einer längeren SQL Pausewieder damit vertraut zu machen habe ich mich die Youtube Videos von Lucky Müller angesehen und mich wieder ein bisschen eingelesen.

EDIT2:
Ich habe mein Problem durchschaut und kann es jetzt besser erklären, habe aber keine Lösung.
Ich versuche folgendes:

Im Beispiel viewtopic.php?f=27&t=54234#p237478 ist in der Tabelle Adressen die ID der Tabelle Haarfarben gespeichert, die dann im Formular ins Listenfeld geschrieben wird. Gefiltert wird nach Vor und oder Nachname. Dies kann ich auch wunderbar gleichzeitig tun.

Ich möchte jetzt zwei Dinge auf einmal mit der Haarfarbe tun:
  • einerseits nach der Haarfarbe im Klartext filtern
  • anderseits möchte ich dass die Haarfarbe in einem Listenfeld angezeigt wird und ich diese in der Liste ändern kann


Um nach der Haarfarbe (im Klartext) Filtern zu können muss ich sie in meiner Abfrage auch auslesen und mit dem Feld ID in der Tabelle Haarfarben verknüpfen. Damit sieht meine Query so aus:

Code: Alles auswählen

SELECT
    `Adressen`.`ID`,
    `Adressen`.`Nachname`,
    `Adressen`.`Vorname`,
    `Adressen`.`Strasse`,
    `Adressen`.`PLZ`,
    `Adressen`.`Ort`,
    `Haarfarben`.`Haarfarbe`
FROM
    `Adressen`,
    `Haarfarben`
WHERE
    (
        LOWER(`Haarfarben`.`Haarfarbe`) 
			LIKE 
		LOWER(CONCAT(:qHaarfarbe, '%')) 
			OR 
		:qHaarfarbe IS NULL
    ) 
AND 
`Haarfarben`.`ID` = `Adressen`.`Haarfarbe`
Die letzte Zeile ist mein Verhängnis, nur so bekomme ich eine Tabelle mit korrekt zugeordneten Haarfarben, aber durch die Verknüpfung ist eine Veränderung in der Liste nicht möglich, die korrekte Haarfarbe wird angezeigt, das Feld bleibt grau und ich kann die Haarfarbe nicht verändern. https://postimg.cc/cgPLJgHz


Danke für Tipps
Seballa

Nach oben