Formular mit Unterformular funktioniert nur teilweise

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Anoushka
**
Beiträge: 49
Registriert: Fr, 24.07.2020 15:59

Formular mit Unterformular funktioniert nur teilweise

Beitrag von Anoushka »

Hallo,
ich dachte, ich hätte ein großes Problem erfolgreich gelöst. Doch leider funktioniert es nur teilweise und mir ist schleierhaft, warum. -Ich bitte um Hilfe...

Ich habe eine Datenbank für Produkte und deren Lieferanten. Welche Produkte von welchem Lieferanten geliefert werden, frage ich in der Abfrage "Abfrage_Produkte" ab.
Nun möchte ich die Produkte quasi "benoten" anhand ihrer Preise bei welchem Lieferanten und anhand der Lieferanten-Bedingungen.
Dafür habe ich ein Formular mit Unterformularen erstellt ("Produkte=Lieferanten=Favorit").
Die Abfrage "Abfrage_Produkte" habe ich im Hauptformular (nur abrufen).
In einem Unterformular habe ich ein Textfeld aus der Tabelle "Produkte" namens "Favorit", dort möchte ich die entsprechende "Benotung" eintragen (senden). Plus einen Button zum Aktualisieren.
Um schnell kontrollieren zu können, ob das funktioniert, und um langen Text in schmalen Spalten komplett lesen zu können, habe ich in einem weiteren Unterformular einige Spalten aus der Tabelle "Produkte" als Textfeld (nur abrufen) mit untergebracht.

Problem: Wenn ich eine Zeile in der Abfrage markiere und dann im Textfeld "Favorit" eine Ziffer (oder Stern) eintrage, dann wird es manchmal richtig eingetragen und manchmal nicht.
Auch im "Kontroll-Unterformular" erscheint der Inhalt mancher Kontrollfelder richtig und bei manchen nicht.

Ich hab schon alles mögliche ausprobiert, vom Wechseln der einzelnen Felder ins Hauptformular / ins Unterformular, über andere Aktionen des Buttons, über andere Einstellungen der diversen Felder, usw. Nichts davon hat funktioniert...

Ich lade eine reduzierte Version der Datenbank hoch. Es wäre ein fantastische Hilfe für mich, wenn dieses Formular funktionieren würde...
Mag es sich jemand anschauen?
Danke Euch im Voraus!!
Viele Grüße, Anoushka
Produkte_Lieferanten - Kopie.odb
(59.61 KiB) 122-mal heruntergeladen
Screenshot (20201105-172516).jpg
Screenshot (20201105-172516).jpg (326.2 KiB) 4797 mal betrachtet
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von F3K Total »

Hallo Anoushka,
ich denke du hast da etwas mit den Verknüpfungen falsch gemacht, beim Unterformuar Favorit darfst du nicht Favorit mit Favorit verknüpfen, sondern es muss ID mit ID verknüpft werden, damit man in beiden Formularen den gleichen Datensatz sieht. Das Unterformular Produktabfrage brauchst du nicht, verschiebe einfach dessen Kontrollfelder mit Hilfe des Formularnavigators ...
anu2.png
anu2.png (8.6 KiB) 4755 mal betrachtet
... in MainForm. Siehe auch Bild.
Anu.png
Anu.png (26.66 KiB) 4755 mal betrachtet
Ich habe das mal für dich gemacht, siehe Datei anbei.
Gruß R
Dateianhänge
Produkte_Lieferanten.odb
(59.36 KiB) 117-mal heruntergeladen
Anoushka
**
Beiträge: 49
Registriert: Fr, 24.07.2020 15:59

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von Anoushka »

Hallo R,
hey, fantastisch!!! Vielen vielen Dank :-))

Jetzt funktionuckelt es einwandfrei.
Allerdings meine ich, dass ich die Verknüpfung ID <> ID auch in meinen Versuchen drin hatte, da ich die gleich logische Überlegung hatte. Aber vielleicht hatte es damit in meinen Versuchen trotzdem nicht geklappt, da es vielleicht wiederum mit irgendwelchen anderen Einstellungen nicht zusammengepasst hatte.... Wie auch immer, nun scheint alles tutti zu sein :-)

Eine Frage noch: Wenn ich einen Favoriten-Eintrag mit "OK" bestätige, springt der Datensatz-Markierer automatisch wieder in die oberste Zeile (war bei meinen Versuchen aber genauso). Kann ich das irgendwie verhindern? Am liebsten soll er entweder in dem bearbeiteten Datensatz bleiben oder max. eine Zeile darüber oder darunter springen.

Auf jeden Fall ein ganz dickes Dankeschön, mit diesem Formular wird mir unendlich viel Arbeit abgenommen.
VG Anoushka
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von F3K Total »

Guten Morgen Anoushka,
das Formular MainForm MUSS bei deiner Lösung neu geladen werden, damit die Änderung des Favoriten sichtbar wird. Daher geht es so nicht, aber:
Wenn du eine beschreibbare Abfage erzeugst, kannst du den Favoriten direkt eintragen und bleibst in deiner Zeile stehen. Ich habe es probiert, funzt, dazu habe ich zwei neue Abfragen erzeugt
  • F3K_Abfrage_Kategorien
  • F3K_Abfrage_Produkte
Die Abfrage F3K_Abfrage_Produkte bezieht sich NUR auf die Tabelle Produkte, und holt sich mittels korrelierender Unterabfragen die Texte (Kategorien, Lieferant ...) aus anderen Tabellen , damit bleibt sie beschreibbar:

Code: Alles auswählen

SELECT
    "ID",
    "Produktname",
    ( SELECT "Kategorie 4" FROM "F3K_Abfrage_Kategorien" WHERE "ID" = "Produkte"."ID" ) "Kategorie 4",
    ( SELECT "Kategorie 3" FROM "F3K_Abfrage_Kategorien" WHERE "ID" = "Produkte"."ID" ) "Kategorie 3",
    ( SELECT "Kategorie 2" FROM "F3K_Abfrage_Kategorien" WHERE "ID" = "Produkte"."ID" ) "Kategorie 2",
    ( SELECT "Kategorie 1" FROM "F3K_Abfrage_Kategorien" WHERE "ID" = "Produkte"."ID" ) "Kategorie 1",
    "Anmerkung", 
    "Beginn", 
    "F. Reiche", 
    "Sortiment", 
    "veget.", 
    "vegan", 
    "-Laktose", 
    "-Gluten", 
    ( SELECT "Lieferantenname" FROM "Lieferanten" WHERE "ID" = "Produkte"."LieferantID" ) "Lieferant", 
    ( SELECT "Luftlinie km" FROM "Lieferanten" WHERE "ID" = "Produkte"."LieferantID" ) "Distanz", 
    "Preis", 
    "Menge", 
    "Preis" / "Menge" / 10 AS "Preis/100g", 
    ( SELECT "Siegel" FROM "Siegel-Tabelle" WHERE "ID" = "Produkte"."SiegelID" ) "Siegel", 
    "GG", 
    "B2B-€", 
    "Favorit", 
    "Turnus" 
FROM 
    "Produkte"
Datei anbei.
Gruß R
Dateianhänge
Produkte_Lieferanten_b.odb
(59.13 KiB) 120-mal heruntergeladen
Anoushka
**
Beiträge: 49
Registriert: Fr, 24.07.2020 15:59

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von Anoushka »

Hallo R,
das ist ja genial!!! Super :-))
Allerdings... kann ich nun lange Texte in schmalen Spalten wieder nur unter Aufwand komplett lesen (indem ich die jeweilige Spalte/Zeile massiv vergrößere, um sie danach wieder massiv zu verkleinern).
Nun hab ich den Tag mit Versuchen verbracht, die Vorteile der beiden Lösungen zu vereinen.
Also den Vorteil des Formulars, in dem ich langen Text in schmalen Spalten relativ komfortabel sichtbar machen kann.
Und den Vorteil Deiner Abfrage, wo ich die "Benotung" direkt in der Abfrage eintragen kann, ohne Aktualisieren zu müssen.

Leider erfolglos...
Gibt es da einen Weg, das zu schaffen?
VG Anoushka
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von F3K Total »

Moin Anoushka,
Sorry ich verstehe die Frage nicht, es hat sich bei der Lesbarkeit der Felder, also deren Größe NIX geändert.
Welche Felder willst du besonders gut lesen können?
Gruß R
Anoushka
**
Beiträge: 49
Registriert: Fr, 24.07.2020 15:59

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von Anoushka »

Moin moin,

ich hab 2 beschriftete Screenshots erstellt, um zu verdeutlichen, was ich meine.
Deine editierbare Abfrage ist definitiv genial. Nur halt leider mit den "lange Texte"-Nachteilen verbunden (in den Screenshots beschrieben).

Und hab im Nachhinein festgestellt, dass ich mich etwas undeutlich ausgedrückt hatte.
In meinen Versuchen, die Vorteile beider Möglichkeiten zusammenzubringen, habe ich ein Formular erstellt, in das ich Deine editierbare Produkt-Abfrage integriert habe.
Ausserdem ein paar Felder, in denen der Text aus Spalten, in denen bei manchen Produkten längerer Text steht, sichtbar ist. Durch Navigationsleisten an diesen Feldern kann ich bei Bedarf bei sehr langen Texten durch Runterscrollen den gesamten Text lesen. Und habe trozdem gleichzeitig noch alle Infos von allen Produkten auf einen Blick sichtbar.
Das Problem bei diesem Formular ist nun aber, dass ich Deine editierbare Abfrage innerhalb dieses Formulars nicht mehr editieren kann- also unter "Favorit" keinen Einrag mehr machen kann.

Viele Grüße, Anoushka
Deine editierbare Abfrage
Deine editierbare Abfrage
Screenshot (20201108-164515).jpg (334.64 KiB) 4625 mal betrachtet
Dateianhänge
Mein Formular-Versuch mit Deiner integrierten editierbaren Abfrage
Mein Formular-Versuch mit Deiner integrierten editierbaren Abfrage
Screenshot (20201108-162320).jpg (393.29 KiB) 4625 mal betrachtet
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von F3K Total »

Hallo Anoushka,
ich verstehe das Problem noch immer nicht, es ist doch nur entstanden, weil du ein neues Formular erstellt hast. In dem Formular, was ich dir zurückgeschickt hatte, waren gegenüber dem Ursprünglichen keine Änderungen, bis auf das entfernte Favoritenfeld oben links.

Anbei noch eine weitere Variante in der du den "langen Text" ganz hervorragend sehen kannst.
anu3.png
anu3.png (48.91 KiB) 4571 mal betrachtet
Gruß R
Dateianhänge
Produkte_Lieferanten_c.odb
(59.35 KiB) 141-mal heruntergeladen
Anoushka
**
Beiträge: 49
Registriert: Fr, 24.07.2020 15:59

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von Anoushka »

Hallo R,

perfekt :-)))
Ja, wahrscheinlich hab ich durch Veränderungen irgendwas kaputt gemacht... :roll:

Da ich inzwischen Spaltenbezeichnungen in der Produkttabelle geändert hab (damit die Spalten schmaler werden) und in Deiner Abfrage die Sortierung geändert habe, funktioniert der Abruf in Deinem jetzt für mich perfekten neu erstelltem Formular "Produkte=Lieferanten=Favorit" nicht mehr. Ich habe nun versucht zu verstehen, wie Du das Formular erstellt hast, bzw. welche Eigenschaften das Formular und die entsprechenden Felder haben. Bis auf das Hauptfeld "Abfrage Produkte" ist alles klar. Nur dieses eine Feld gibt mir nicht preis, von wo es die Daten bezieht. Ich erfahre lediglich, dass es den Namen "Abfrage Produkte" hat und die restlichen Eigenschaften wie aktiviert, Format, usw.

Wenn ich das Feld lösche und neu erstelle (also ein neues Tabellen-Steuerelement), bekomme ich nur die Option "Art des Inhaltes = Abfrage, Inhalt = F3K_Abfrage_Produkte". Das erscheint mir auch logisch & richtig, und optisch sieht es dann auch genauso aus, wie es sein soll. Aber dann kann ich wieder keinen Eintrag unter Favorit machen...
Auch, wenn ich ein Formular aus der Abfrage heraus erstelle, habe ich das gleiche Ergebnis.

Also, zusammengefasst meine jetzige Frage: Wie hast Du das Formular erstellt bzw. woher bezieht das Tabellen-Steuerelement, in dem die Abfrage zu sehen ist, seine Daten und wie stelle ich das ein?

Vielen Dank für Deine Hilfe!
Gruß, Anoushka
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von F3K Total »

Anoushka,
hier habe ich dir gezeigt, wo der EXTREMSUPERWICHTIGE Formularnavigator zu finden ist. Du kannst, natürlich nur im Bearbeitungsmodus, jedes Feld aber auch die Formularstruktur mit Haupt- und Unterformularen mit dem Navigator (Rechtsklick aufs Feld/Formular -> Eigenschaften) erkunden. Auf dem Reiter "Daten" findest du die jeweiligen Daten-Inhalte. Siehe Bild:
anu4.png
anu4.png (23.02 KiB) 4555 mal betrachtet
Auf dem Reiter "Allgemein" kannst du Farben, Position, Größe ... einstellen, auf dem Reiter Ereignisse den Elementen Makros zuordnen.
Nur die einzelnen Spalten des Tabellenkontrollfeldes "Abfrage Produkte" kannst du im Navigator nicht direkt sehen, um an deren Eigenschaften zu kommen, machst du im Tabellenkontrollfeld einen Rechtsklick auf den Spaltenkopf -> Spalte ...
Gruß R
Anoushka
**
Beiträge: 49
Registriert: Fr, 24.07.2020 15:59

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von Anoushka »

Sorry, aber das ist mir schon alles klar :-)
Es ging mir auch nicht um das Feld "AnmerkungProdukt", sondern um das Feld "Abfrage Produkte" (welches im Screenshot rot umrandet ist).
Wenn ich da auf Eigenschaften klicke, wird mir kein Reiter "Daten" angezeigt, somit weiß ich nicht, woher dieses Feld seine Daten bezieht. Meiner Logik nach müsste es sie aus der "F3K_Abfrage_Produkte" beziehen, aber wie ich beschrieb, wenn ich ein Tabellen-Steuerelement erstelle, welches seine Daten aus der "F3K_Abfrage_Produkte" bezieht, funktioniert das zwar, aber ich kann in "Favorit" nichts editieren / reinschreiben.
Screenshot (20201109-170901).jpg
Screenshot (20201109-170901).jpg (394.59 KiB) 4543 mal betrachtet
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von F3K Total »

Hallo Anoushka,
kann es sein, dass du in deinem Formular bei der Erstellung mit dem Assistenten einige Haken gesetzt hast, die die Datenbearbeitung verhindern?
Anu6.png
Anu6.png (27.51 KiB) 4452 mal betrachtet
Kein Problem, gehe in die Formulareigenschaften, Reiter Daten und ändere wie in folgendem Bild gezeigt:
anu7.png
anu7.png (33.6 KiB) 4452 mal betrachtet
Klar jetzte?
Gruß R
Anoushka
**
Beiträge: 49
Registriert: Fr, 24.07.2020 15:59

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von Anoushka »

Hi R,

soooo, jetzte funktionuckelt alles wie es soll, juhuu :-)
Allerdings: In der "Produkte_Lieferanten_c", wo Dein F3K-Produkte-Abfrage-Formular ja wunderbar funktionierte sind die Formular-Eigenschaften nicht so, wie Du es in Deiner letzten Antwort beschrieben hast- und das Formular funktioniert trotzdem, inkl. Favoriten-Korrigierbarkeit. Dort sind folgende Eigenschaften: Daten hinzufügen=Nein, Daten ändern=Ja, Daten löschen=Nein, Nur Daten hinzufügen=Nein.
Aber egal jetzt ;-)

Die Lösung war eine andere, wie ich jetzt herausgefunden hab. Die entsprechende Abfrage hatte ich wohl geändert und hatte das nicht mehr auf dem Schirm. Nun hab ich diese korrigiert => Alles bestens :-)

Letzte Frage noch:
Ich möchte in dieser Abfrage "F3K_Abfrage_Produkte" eine andere Sortierung haben. Diese hab ich in der Abfrage "Abfrage_Produkte" schon funktionierend drin. Und zwar hab ich dafür in der Tabelle "Produkt-Kategorie 4" eine Spalte "Sort", in die ich Ziffern eingetragen hab, nach denen sortiert werden soll. Denn wenn ich nur nach Kategorie 4 sortiere, dann ist es ja eine alphabetische Sortierung, welche häufig keinen Sinn ergibt.
Ich habe nun also versucht, in der Abfrage "F3K_Abfrage_Produkte", diese Sortierung hinzubekommen. Leider erfolglos. Bzw. wieder nur so, dass ich dann keinen Eintrag / Korrektur in "Favorit" mehr vornehmen kann.
Ich vermute, dass im SQL-Befehl am Ende sowas wie "( ORDER BY "Sort" FROM "Produkt-Kategorie 4" WHERE "..." = "..."."..." ) ASC" stehen muss. Aber den Inhalt von WHERE kriege ich einfach nicht gebacken...
How to???

VG Anoushka
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von Hiker »

Hallo,

fur die Sortierung nimmst Du einfach die bisher funktionierende Abfrage und ergänzt hinten

Code: Alles auswählen

 ORDER BY "Sort" ASC
, wobei Sort eine vorhandene Spalte der Abfrage ist.

Die Abfrage musst du nicht ändern, sondern nur angeben wie sortiert werden soll.

Mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Anoushka
**
Beiträge: 49
Registriert: Fr, 24.07.2020 15:59

Re: Formular mit Unterformular funktioniert nur teilweise

Beitrag von Anoushka »

Hallo Jörn,

nee sorry, das funktioniert in dieser editierbaren Abfrage leider nicht.
Antworten