Seite 1 von 2

Unterformular Einbinden

Verfasst: Do, 30.01.2014 22:36
von lokgeist
Hallo liebe Office Helfer,

ich habe mir eine Rezeptdatenbank erstellt die bisher auch gut funktionierte.
Nun will ich aber aus der ursprünglich einen Kategorien-spalte gleich vier machen.
Dazu habe ich nun ein neues Unterformular erstellt mit den vier Spalten. Aber die Abfrageverknüpfung bekomme ich einfach nicht in den Griff.
Ich hätte gern Folgende Reihenfolge:
„Rezept“ --- Notizen“ --- „Buch-Heftname“ --- „Kat“ --- „Datum“--- „SeitenNr“.
Aber wie kann ich nach Auswahl der Kategorie prüfen ob in einem der 4 Felder der Kategorienschlüssel stimmt?

Ich bitte um Hilfe
Detlev

Re: Unterformular Einbinden

Verfasst: Fr, 31.01.2014 08:18
von RobertG
Hallo Dtlev,

ich versuchs einmal, auch wenn ich mir nicht klar bin, ob ich überhaupt kapiert habe, worauf Du hinaus willst:
In "Rezepte..." stehen (als "Kategorien") Fremdschlüssel der Tabelle "Kat". Du willst wissen, ob der gleiche Schlüsselwert für den gleichen "Rezepte..."-Datensatz in einer der "Block-Kategorien" schon existiert?
SELECT "Rezepte..."."ID" FROM "Rezepte...", "Block..." WHERE "Rezepte..."."ID" = "Block..."."ID" AND ("Rezepte..."."Kategorien" = "Block..."."Kat-Block1" OR "Rezepte..."."Kategorien" = "Block..."."Kat-Block2" OR ...)
Haben die Kategorien bisher tatsächlich nichts miteinander zu tun, dass Du aus einer Kategorie 4 Kategorien machen willst? Oder soll das eher in die Richtung "Hauptkategorie" → "Unterkategorie" gehen? Dann wäre so ein Aufbau, wie in der Abfrage zu sehen, für die Block-Kategorien falsch.

Gruß

Robert

Re: Unterformular Einbinden

Verfasst: Fr, 31.01.2014 12:09
von lokgeist
Hallo Robert,
vielen vielen Dank dass Du mir helfen tust. Ich versuche mal mich besser und verständlicher aus zu drücken.
Ich glaube ich bin das ganze von einer wohl falschen Empfehlung angegangen.
In der neuen Tabelle kommt glaube ich mehr Licht ins Dunkel.
Erst mal eins der bis jetzt 6 Bücher bzw. Hefte der Reihe nach anwählen.
In diesem eine der bisher 20 Kategorien der Reihe nach auswählen.
Schauen ob in einen der vier Blöcke eine Übereinstimmung ist.
Wenn ja, dann nach Datum sortieren und schließlich noch nach Seitennummer sortieren.
Aber die Funktionen und Kriterien in die richtige Reihenfolge zu setzen fällt mir unheimlich schwer.
Ohne die Blöcke abzufragen hatte ich ja schon und war so auch zufriedenstellend
Könntest Du mir Bitte weiter helfen?

Tschüß
Detlev

Re: Unterformular Einbinden

Verfasst: Fr, 31.01.2014 17:18
von RobertG
Hallo Detlev,

ohne vorliegende Datenbank ist das etwas schwieriger. Ich versuche es einmal - aber wieder im SQL-Code.

Code: Alles auswählen

SELECT "Buch-Heftname".*, "RezepteDatenImport".*, "Kat".* FROM "Buch-Heftname", "RezepteDatenImport", "Kat" 
WHERE "Buch-Heftname"."ID" = "RezepteDatenImport"."ID-Buch-Heft" AND "Kat"."ID" = "RezepteDatenImport"."Kategorien" 
AND ("RezepteDatenImport"."Kat-Block1" = "RezepteDatenImport"."Kategorien" OR "RezepteDatenImport"."Kat-Block2" = "RezepteDatenImport"."Kategorien" 
OR "RezepteDatenImport"."Kat-Block3" = "RezepteDatenImport"."Kategorien" OR "RezepteDatenImport"."Kat-Block4" = "RezepteDatenImport"."Kategorien")
ORDER BY "Buch-Heftname"."Buch-Heft", "Kat"."Kategorien", "RezepteDatenImport"."Datum", "RezepteDatenImport"."SeitenNr"
Die Auswahl trifft nur die Datensätze, bei denen "Kategorien" und eins der 4 Felder gleich ist (oder auch mehrere ...).
Die Auswahl ist der Reihenfolge nach sortiert: zuerst das heft, dann die Kategorie, dann das Datum, dann die Seite.

Das müsste eigentlich Deinem Vorhaben entsprechen. Wie das letztlich in der grafischen Benutzeroberfläche aussieht habe ich jetzt nicht getestet. Du musst also bei einer (neuen) Abfrage auf die direkte Eingabe des SQL-Befehls umschalten (Symbol mit dem Dreieck -grafischer Modus aus).

Gruß

Robert

Re: Unterformular Einbinden

Verfasst: Fr, 31.01.2014 19:28
von lokgeist
Hallo Robert,
leider kam so keine Anzeige zu stande.
Ich habe mal meine alte Datenbank in gekürzter nur 20 Datensätzen fassenden Version angehängt.
Nur Kat-Block1 war zuvor mit Kategorie beschriftet.
Danke für Deine Mühe.
Tschüß
Detlev

Re: Unterformular Einbinden

Verfasst: Sa, 01.02.2014 09:52
von RobertG
Hallo Detlev,

die Datenbank, die Du beigefügt hattest, entspricht vom Tabellenaufbau nicht der, die Du in den Screenshots gezeigt hast. Da ist ja gar keine Verbindung mehr zu "Kategorien" drin. Jetzt hat eine Spalte lauter Fremdschlüsselwerte, die vom Prinzip her auf Kategorien zutreffen. Ich vermute einfach, dass ich Dein Anliegen längst noch nicht verstanden habe. Ich habe jetzt einfach einmal eine Abfrage erstellt, die für die beiden ersten Felder "Kat-Block" überprüft, ob in den Feldern eine entsprechende Kategorie vorhanden ist.

Gruß

Robert

Re: Unterformular Einbinden

Verfasst: Sa, 01.02.2014 15:37
von lokgeist
Hallo Robert,
noch mal ein Bild zum besseren Verständnis.
Wird z.B. Die Kategorie 2=Vorspeisen abgefragt, und in einem der vier Blöcke kommt eine 2 vor, so soll der Datensatz ausgegeben werden.
Kommt aber in einem der vier Blöcke auch noch eine 11 vor, So sollte der gleiche Datensatz auch noch einmal bei der Kategorie 11=Eier augegeben werden.

Re: Unterformular Einbinden

Verfasst: Sa, 01.02.2014 16:12
von RobertG
Hallo Detlev,

schau einmal in Abfrage2 nach, ob das jetzt in die richtige Richtung geht.
Problem der ganze Sache ist, dass Du einen Datensatz mehrmals wiedergeben willst.
Wenn das passt: Die Filterung nach der jeweiligen Kategorie erfolgt über die Tabelle "Filter". Dort kannst Du unterschiedliche Werte eingeben. Das Ganze wäre über ein Formular mit einem Listenfeld zu den Kategorien zu bewerkstelligen.

Gruß

Robert

Re: Unterformular Einbinden

Verfasst: Sa, 01.02.2014 16:59
von F3K Total
Hallo zusammen,
eine Frage: Möchte lokgeist schlicht einem Rezept mehrere Kategorien zuordnen?
Wenn dem so ist, wäre dann nicht ein m:n Ansatz, mit Verbindungstabelle, ID_Rezept<->ID_Kategorie, der richtigere Ansatz?

Gruß R

Re: Unterformular Einbinden

Verfasst: Sa, 01.02.2014 19:20
von RobertG
Hallo R,

ich rätsele auch noch daran herum. Scheint mir aber auch so. Eigentlich soll ein Rezept mit Zutaten und Seiten, wo es zu finden ist, da sein. Mit der Verbindungstabelle zu n:m hast Du völlig recht.

Gruß

Robert

Re: Unterformular Einbinden

Verfasst: Sa, 01.02.2014 19:24
von lokgeist
Hallo zusammen,
ich habe mal jetzt noch das funktionierende Formular mit eingefügt. Halt ohne die KatBlöcke 2-4.
die sind ja mein Problem.
Eventuell hilft das Formular mehr zum besseren Verständnis.

Tschüß
Detlev der Lokgeist

Re: Unterformular Einbinden

Verfasst: So, 02.02.2014 10:16
von F3K Total
Hallo,
habe mal die Kategorienzuordnung in eine Verbindungstabelle getan. Jetzt kannst Du jedem Gericht im Kategorie-Tabellenkontrollfeld beliebig viele Kategorien zuordnen.
Ausserdem habe ich ein Kategorie-Suchfeld eingebaut.
Erst eine Katagorie auswählen dann "Kategorie suchen" drücken.
Nimmst Du den obersten Eintrag (leer), und drückst "Kategorie suchen", siehst Du wieder alle Rezepte.

Viel Spaß damit
Gruß R

Re: Unterformular Einbinden

Verfasst: So, 02.02.2014 11:48
von lokgeist
Hallo F3K Total,

vielen vielen Dank.
Es funktioniert, toll.
Aber wo bleiben die Einträge bei Kategorien versteckt? Ich finde sie in keiner Tabelle und doch sind sie da.
Wo liegt das Geheimnis?

Danke an Euch alle die sich meinem Problem angenommen hatten :D :D :D

Tschüß
Detlev

Re: Unterformular Einbinden

Verfasst: So, 02.02.2014 11:59
von F3K Total
Moin,
die Kategorie_ID ist der Rezept_ID in der Verbindungstabelle REZEPTE_KATEGORIEN zugeordnet.
Beispiel, Zeilen 1-3

Code: Alles auswählen

FK_ID_REZEPT  FK_ID_KATEGORIE   
    1               16
    2                9
    2               16
Heißt nichts weiter als dass
  • die Kategorie 16 (Hackfleisch-Gerichte) dem Rezept 1 (Hackrolle Cordonbleu)
  • die Kategorie 9 (Gemüse) dem Rezept 2 (Herzhafte Räuberpastete)
  • die Kategorie 16 (Hackfleisch-Gerichte) dem Rezept 2 (Herzhafte Räuberpastete) zugeordnet sind.
  • usw.
Gruß R

Re: Unterformular Einbinden

Verfasst: So, 02.02.2014 12:09
von lokgeist
Hallo,

noch mals vielen Dank.
Jetzt hab ichs auch gefressen.
Ich hatte es nicht gesehen das sich ja in der Spalte FK_ID_REZEPT die Einträge wiederholen.

Tschüß
Detlev der Lokgeist