Ich bin Linux und Libreoffice Neuling.
In MS habe ich in Accsess eine DB erstellt, die sich aber nicht wirklich importieren lässt. Zumindest gehen einige Funktionen dort nicht. Anstatt nun auf Fehlersuche zu gehen habe ich einfach in Base eine neue DB angelegt.
Nun zu meinem Problem:
In der DB geht es um Warenwirtschaft.
Ich habe eine Tabelle mit Artikeln (EAN-Artikelliste), denen ich Kategorien, Beschreibung etc zuweisen möchte.
Der Primärschlüssel liegt auf dem Feld EAN-Code [Feldtyp Zahl-Numeric] da Integer nur 10 Stellig arbeitet.
Die Kategorien habe ich in 2 (sollten eigentlich 3 werden) weiteren Tabellen gespeichert in denen die drin stehen und über Listenfelder angewählt werden können.
Nun möchte ich die Auswahl der zweiten Feldliste einschränken.
Ein Beispiel:
Tabelle 1: EAN-Artikelliste
Felder:
- EAN-Code [Feldtyp Zahl-Numeric] Der Artikelcode
- Firma/Name [ Feldtyp Text (Varchar) ] Beispiel: Milka
- Hauptgruppe [ Feldtyp Text (Varchar) ] Listenfeldauswahl: Lebensmittel
- Gruppe [ Feldtyp Text (Varchar) ] Listenfeldauswahl: Süßwaren
- Untergruppe [ Feldtyp Text (Varchar) ] Noch in Planung
- Menge/Inhalt [Feldtyp Zahl (Numeric)] 100 g
- Artikelbeschreibung [ Feldtyp Text (Varchar) ] Alpenmich
- Datum/Zeit [ Feldtyp Datum/Zeit (Timestamp) ] Soll automatisch eingefügt werden sobald der Datensatz beendet wird (Feld kann im Formular unsichtbar sein)
Tabelle 2: K1-Hauptkategorie Für das Listenfeld Hauptgruppe im Formular
Felder:
- K1-ID [Feldtyp Integer (INTEGER)] ID wir zu Testzwecken manuell vergeben
- Hauptkategorie [Feldtyp Text (Varchar)] Beispiel: Lebensmittel, Haushaltswaren,
Tabelle 3: K2-Gruppe Für das Listenfeld Gruppe im Formular
Felder:
- K2-ID [Feldtyp Integer (INTEGER)] ID wir zu Testzwecken manuell vergeben
- Gruppe [ Feldtyp Text (Varchar) ] Beispiel: Tiefkühl, Konserve Obst, Deko, Reinigung, Hygiene ... etc.
- K1-ID [Feldtyp Integer (INTEGER)] Die ID der zugehörigen Hauptkategorie
Wenn im also im Formular der ersten Tabelle im Listenfeld für die Hauptgruppe Lebensmittel angewählt wird, sollen im zweiten Listenfeld ausschließlich die Gruppen erscheinen die auch zu den Lebensmitteln gehören. Später soll noch ein weiteres Listenfeld zur Auswahl für Untergruppen dazu kommen (erst wenn ich das mit den ersten zwei hin bekommen habe).
Leider werde ich aus den Beschreibungen über Listen und Kombinationsfelder, die ich hier (viewtopic.php?f=8&t=41037) oder in anderen Foren und Artikeln fand. nicht wirklich schlau. Mit Macros habe ich mich bisher auch nie befasst, da in MS-Accsess das meiste vorgegeben war.
Da ist z.B. die Rede davon dass ich in MySQL was auf FOREIGN KEY umstellen soll, aber ich weis nicht mal wie ich in MySQL rein komme ...

Die Felder
- K1-ID [Feldtyp Integer (INTEGER)] aus K1-Hauptkategorie
und
- K1-ID [Feldtyp Integer (INTEGER)] aus K2-Gruppe
sind in einer 1:n Beziehung
Ich bekomme allerdings die Einschränkung des zweiten Listenfeldes aufgrund der Auswahl im ersten Listenfeld nicht hin.
Im zweiten wird immer alles angezeigt.
Auch wenn hier und anderenorts das Thema schon behandelt wurde, bitte ich doch darum, einem Linux und LO-Noob das ganze etwas genauer zu erläutern. Bitte um Nachsicht für meine Begriffsstutzigkeit ....
Liebe Grüße und danke vorab für eure Hilfe
Ignis
EDIT: Ich habe im Eingabeformular der Tabelle EAN-Artikelliste im Entwurfsmodus das Listenfeld2 (also Gruppe) markiert und doppelt geklickt um in die Eigenschaften zu gelangen.
Unter dem Reiter Daten Zeile "Listeninhalt" habe ich mal rumprobiert und über die hinterste Schaltfläche das Editierfenster für die Abfrageeinstellungen geöffnet.
Dort wird mir die Beziehung angezeigt und unten die eigentliche Abfrage mit Filtermöglichkeiten.
Feld: Gruppe
Alias:
Tabelle: K2-Gruppe
Sortierung: aufsteigend
Sichtbar: ja
Drunter sollte ich über Funktion und Kriterium die Anzeige des zweiten Listenfeldes einstellen können. Ich habe nun schon so einiges versucht, bin aber noch zu keinem Ergebnis gekommen. (Entweder zeigt es mir die Daten an oder es zeigt garkeine an.)
Ich denke, dass man das über eine WENN-DANN Funktion steuern könnte .....
WENN Wert im Listenfeld1 (oder dessen ID) identisch mit der K1-ID von Listenfeld2 dann zeige die werte mit der entsprechenden ID an SONST lasse Listenfeld leer
Oder denke ich nun vollständig verkehrt? Im Moment sehe ich vor lauter Fenster kein Land mehr ...
Gagagagaga .... tüdeldüdel du ..... *Wahnsinnig werd* ..... BITTE UM HILFE ^^
Ignis