Seite 1 von 1

Listenfeler verknüpfen

Verfasst: Sa 26. Mai 2012, 20:01
von Fabiii
Hallo,
ich habe eine Frage und zwar hab mehrer Tabellen und Formulare.
In der einen gebe ich über ein Formular eine Kategorie und eine Bezeichnung und eine Art. Nr.
ein.
Ich will jetzt ein neues Formular erstellen wo man erst den Datensatz praktisch auswählt.
Also ich habe 3 Listenfeler.
1. Art. Nr.
2. Kategorie
3. Bezeichnung

So jetzt will ich dass wenn ich eine Kategorie auswähle mir automatisch nur noch in den Listenfeldern Art. Nr und Bezeichnung die angezeigt werden die auch diese Kategorie haben.
Oder ich weis die Art. Nr. dann werden die Felder Bezeichnung und Kategorie automatisch gefüllt.

Geht das ???
Wie macht man das ?
Ich hab eine Beispiel Datenbank angehäng könnte mir jemand so ein Formular erstelllen ??? (Wär euch echt sehr dankbar)

Gruß
Fabi

Re: Listenfeler verknüpfen

Verfasst: So 27. Mai 2012, 09:47
von RobertG
Hallo Fabi,
Fabiii hat geschrieben: So jetzt will ich dass wenn ich eine Kategorie auswähle mir automatisch nur noch in den Listenfeldern Art. Nr und Bezeichnung die angezeigt werden die auch diese Kategorie haben.
Oder ich weiß die Art. Nr. dann werden die Felder Bezeichnung und Kategorie automatisch gefüllt.
Da gibt es sowohl Lösungen der direkten Art als auch über Makros. Der Unterschied besteht darin, dass Du bei der einfachen Lösung immer noch einen Button betätigen musst.
Ich habe einmal das doch recht dürftige Beispiel von Dir erweitert.
Zuerst konstruiere ich eine Tabelle "Filter", die ich mit den Feldern Deiner Suchtabelle versehe (habe ich einfach kopiert). Als Primärschlüssel wähle ich hier ein Ja/Nein-Feld, weil nur ein Datensatz gespeichert werden soll.
Dann erstelle ich eine Abfrage, die alle Datensätze Deiner Ausgangstabelle enthält. Diese Abfrage enthält lauter Beziehungen zu der Tabelle "Filter", und zwar der folgenden Art:

Code: Alles auswählen

WHERE "Beziehung" = IFNULL((SELECT "Beziehung" FROM "Filter" WHERE "ID" = TRUE), "Beziehung") ...
Wenn das Feld "Beziehung" in der Tabelle "Filter" leer ist (NULL), dann wird alles angezeigt - vorausgesetzt, in dem Feld "Beziehung" der Ausgangstabelle steht auch etwas. Ansonsten muss hier mit Ersatzfeldern getrickst werden. Das geht ebenfalls über IFNULL, habe ich hier aber nicht eingebaut.
Diese Abfrage ist jetzt Grundlage des Formulars, in das Du eingibst. Das Formular enthält zusätzlich einen Button zum Aktualisieren. Daneben ist, sichtbar über den Formularnavigator, auf der gleichen Fläche ein zweites Formular angeordnet, das als Grundlage die Tabelle Filter hat und dort nur die Daten ändern kann. Du wählst einen Filter, lässt das andere Formular aktualisieren und dort erscheinen die dazu passenden Daten.
Für die Aktualisierung der Listenfelder musst Du noch ein Stück weiter gehen. Die werden ja nicht aktualisiert, da das Formular, das aktualisiert wird, neben dem Formular für den Filter liegt. Also ein Hauptformular gebaut, beide Formulare als Unterformular konstruiert. Die Unterformulare brauchen nicht mit dem Hauptformular verbunden zu werden. Das Hauptformular braucht allerdings als Grundlage eine Tabelle oder Abfrage. Da habe ich einfach die eingebaut, die auch als Grundlage für die Filterung dient. Den Button jetzt ins Hauptformular gesetzt und damit werden dann beide Formulare auf einmal aktualisiert.

Gruß

Robert

Re: Listenfeler verknüpfen

Verfasst: So 27. Mai 2012, 10:54
von Fabiii
Hallo,
vielen Dank für deine ausführliche Antwort !!!!!!!!!!!
Hast mir sehr geholfen

Gruß
Fabi