Variable Anzahl Eingabefeld
Moderator: Moderatoren
Variable Anzahl Eingabefeld
Hallo,
möchte wegen meiner Rezeptdatenbank ein Formular erstellen, dass es mir erlaubt, so viele Zutaten einzugeben, wie ich benötige. Und zwar so, dass, wenn ich eine Zutat hinzufügen möchte, pro Zutat ein Feld erscheint. Also wenn ich z.B. 1kg Mehl eingegeben habe und möchte jetzt Hefe eingeben, aber eben nicht durch ein "," getrennt, sondern in einem anderen (nächsten) Feld.
Gut wäre es auch, dass ich dann im Bericht die Zutaten untereinander stehen habe.
Muss ich dann auch in meiner Tabelle die Spalte "Zutaten" variabel anlegen?
Danke und Gruß
Alexander
möchte wegen meiner Rezeptdatenbank ein Formular erstellen, dass es mir erlaubt, so viele Zutaten einzugeben, wie ich benötige. Und zwar so, dass, wenn ich eine Zutat hinzufügen möchte, pro Zutat ein Feld erscheint. Also wenn ich z.B. 1kg Mehl eingegeben habe und möchte jetzt Hefe eingeben, aber eben nicht durch ein "," getrennt, sondern in einem anderen (nächsten) Feld.
Gut wäre es auch, dass ich dann im Bericht die Zutaten untereinander stehen habe.
Muss ich dann auch in meiner Tabelle die Spalte "Zutaten" variabel anlegen?
Danke und Gruß
Alexander
-
- *
- Beiträge: 17
- Registriert: Do, 07.12.2006 14:32
- Wohnort: Dortmund
Hey Alexander,
na ja, lösbar ist das, aber du musst Ahnung haben!
Du brauchst mindestens zwei Datentabellen. In der ersten werden die Rezepte an sich verwaltet, die zweite nimmt alle deine "Zubehöre" auf. Über einen Schlüssel kannst du die dann dem Rezept zuordnen.
Im formualr hast du die Rezeptdatenbank als Hauptformular, die "Zubehör"-Datenbank als Unterformular. Wenn du für das Unterformular eine Tabellendarstellung wählst und als Filterschlüssel die Rezept-ID, so werden Dir nur die zum Rezept gehörigen Daten angezeigt. Die Tabelle kannst du jederzeit "nach unten" erweitern, sprich neue Datensätze hinzufügen.
Das sollte ungefähr dein Problem erschliessen.
Nur: Arbeitest du zum ersten Mal mit Datenbanken, so waren jetzt viele "böhmsche Dörfer" in meinem Text, aber das ist die Problematik
Viele Grüße
Thomas
na ja, lösbar ist das, aber du musst Ahnung haben!
Du brauchst mindestens zwei Datentabellen. In der ersten werden die Rezepte an sich verwaltet, die zweite nimmt alle deine "Zubehöre" auf. Über einen Schlüssel kannst du die dann dem Rezept zuordnen.
Im formualr hast du die Rezeptdatenbank als Hauptformular, die "Zubehör"-Datenbank als Unterformular. Wenn du für das Unterformular eine Tabellendarstellung wählst und als Filterschlüssel die Rezept-ID, so werden Dir nur die zum Rezept gehörigen Daten angezeigt. Die Tabelle kannst du jederzeit "nach unten" erweitern, sprich neue Datensätze hinzufügen.
Das sollte ungefähr dein Problem erschliessen.
Nur: Arbeitest du zum ersten Mal mit Datenbanken, so waren jetzt viele "böhmsche Dörfer" in meinem Text, aber das ist die Problematik

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Toxitom,
mit Base arbeite ich zum Ersten mal, mit Access habe ich eine Mitgliederdatenbank erstellt, allerdings ohne viel Verknüpfungen.
Prinzipiell verstehe ich deine Antwort und kann ihr auch logisch folgen.
Ich brauche eine Tabelle, die in meiner Sache folgende Felder hat:
Nr
Rezeptname
Zutaten
...
...
...
Jetzt brauche ich noch eine weitere Tabelle in der ich irgendwie die Zutaten hineinbekomme und gleichzeitig mit der Nr verknüpfe, damit ich die Zutaten später wieder richtig zuordnen kann, oder?
Und genau da hakts jetzt bei mir. Wie kann ich festlegen, dass die Nr, die automatisch eingetragen wird, automatisch in beide Tabellen geschrieben wird und dass ich dann im Formular die Tabelle "nach unten" erweitern kann?
Vielen Dank
Alexander
mit Base arbeite ich zum Ersten mal, mit Access habe ich eine Mitgliederdatenbank erstellt, allerdings ohne viel Verknüpfungen.
Prinzipiell verstehe ich deine Antwort und kann ihr auch logisch folgen.
Ich brauche eine Tabelle, die in meiner Sache folgende Felder hat:
Nr
Rezeptname
Zutaten
...
...
...
Jetzt brauche ich noch eine weitere Tabelle in der ich irgendwie die Zutaten hineinbekomme und gleichzeitig mit der Nr verknüpfe, damit ich die Zutaten später wieder richtig zuordnen kann, oder?
Und genau da hakts jetzt bei mir. Wie kann ich festlegen, dass die Nr, die automatisch eingetragen wird, automatisch in beide Tabellen geschrieben wird und dass ich dann im Formular die Tabelle "nach unten" erweitern kann?
Vielen Dank
Alexander
Hey Alexander,
nein. Du brauchst eine Tabelle, die ist so aufgebaut:
ID
Rezeptname
und vielleicht noch ein paar weitere Infos, die nur für das Rezept gelten, aber keine Zutaten
eine Zweite Tabelle, die so aussieht:
id
Rezept-ID
Zutat
Menge
...
In der ersten Tabelle gibt es nun den folgenden datensatz:
2 | Mein Riesenkuchen | ...
In der zweiten Tabelle steht nun zum Beispiel:
5 | 2 | Mehl Typ 405 | 4 Kg | ....
Die ID der ersten Tabelle (hier "2") dient in der zweiten Tabelle als F"Fremdschlüssel" und weist die Zutat genau diesem Rezept zu. Nun können in der Tabelle 2 beliebig viele Einzelzutaten stehen, über den Schlüsssel werden sie immer nur einem Rezept zugewiesen (1:n Beziehung).
Gruss
Thomas
nein. Du brauchst eine Tabelle, die ist so aufgebaut:
ID
Rezeptname
und vielleicht noch ein paar weitere Infos, die nur für das Rezept gelten, aber keine Zutaten
eine Zweite Tabelle, die so aussieht:
id
Rezept-ID
Zutat
Menge
...
In der ersten Tabelle gibt es nun den folgenden datensatz:
2 | Mein Riesenkuchen | ...
In der zweiten Tabelle steht nun zum Beispiel:
5 | 2 | Mehl Typ 405 | 4 Kg | ....
Die ID der ersten Tabelle (hier "2") dient in der zweiten Tabelle als F"Fremdschlüssel" und weist die Zutat genau diesem Rezept zu. Nun können in der Tabelle 2 beliebig viele Einzelzutaten stehen, über den Schlüsssel werden sie immer nur einem Rezept zugewiesen (1:n Beziehung).
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Toxitom,
ich habe meine Tabellen erstellt und wollte eine Beziehung hinzufügen. Dazu ging ich nach "Beziehungen" unter Extras und zog einfach meine Nr aus der Rezepttabelle (Primärschlüssel) mit der Maus auf Nr in der Zutatentabelle (kein Primärschlüssel). Dabei bekomme ich immer folgenden Fehler angezeigt:
Column types do not match in statement [ALTER TABLE "Zutaten" ADD FOREIGN KEY ("Nr") PREFERENCES "Rezepte" ("Nr")]
Was mache ich falsch?
Gruß
Alexander
ich habe meine Tabellen erstellt und wollte eine Beziehung hinzufügen. Dazu ging ich nach "Beziehungen" unter Extras und zog einfach meine Nr aus der Rezepttabelle (Primärschlüssel) mit der Maus auf Nr in der Zutatentabelle (kein Primärschlüssel). Dabei bekomme ich immer folgenden Fehler angezeigt:
Column types do not match in statement [ALTER TABLE "Zutaten" ADD FOREIGN KEY ("Nr") PREFERENCES "Rezepte" ("Nr")]
Was mache ich falsch?
Gruß
Alexander
Hey Alexander,
na,das was in der Fehlermeldung steht: Offensichtlich isind die Feldtypen unterschiedlich - dann kann es nicht gehen.
Prüfe den Feldtyp der ersten Tabelle ("Nr") - ist vermutlich ein Integer Typ?
Prüfe den Feldtyp der zweiten Tabelle ("Nr") - der muss dann auch Integer sein!
Gruss
Thomas
na,das was in der Fehlermeldung steht: Offensichtlich isind die Feldtypen unterschiedlich - dann kann es nicht gehen.
Prüfe den Feldtyp der ersten Tabelle ("Nr") - ist vermutlich ein Integer Typ?
Prüfe den Feldtyp der zweiten Tabelle ("Nr") - der muss dann auch Integer sein!
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hey Alexander,
Im übrigen können aber die Daten verloren gehen, wenn du den Typ umstellst - also, wenn bsp schon Texte drin sind und du willst auf Zahlen umstellen, geht es entweder nicht oder die Inhalte sind weg.
Gruss
Thomas
Ansich nicht, die Spalte dar jedoch weder indiziert sein noch als Primärschlüssel dienen. Sonst geht das nicht.Wollte eben den Feldtyp ändern, geht aber nur durch löschen. Oder?
Im übrigen können aber die Daten verloren gehen, wenn du den Typ umstellst - also, wenn bsp schon Texte drin sind und du willst auf Zahlen umstellen, geht es entweder nicht oder die Inhalte sind weg.
Nein, nicht Spalten! Es sind ja jetzt "Zeilen". Für jede Zutat steht eine Zeile - ein Datensatz der zweiten Tabelle. Da nimmst du einfach die Tabellenansicht als Formularfeld (für das Subformular). Das ist flexibel für neue Zeilen - und dann scrollbar, falls nicht alle Zeilen in die Ansicht passen.Wollte eben den Feldtyp ändern, geht aber nur durch löschen. Oder?
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Toxitom,
Die Spalte in der ich den Feldtyp ändern wollte dient weder als Primärschlüssel noch habe ich sie, absichtlich, indiziert. Wüsste also nicht, warum sie indiziert sein sollte.
Verstehe ich dich richtig:
Ich soll einfach aus meiner Tabelle "Zutaten" eine Ansicht erstellen mit allen Feldern wie in der Tabelle und diese Ansicht zu einem FOrmular machen. Dann dieses Formular als Subformular für meine REezepte verwenden.
Gruß
Alexander
Die Spalte in der ich den Feldtyp ändern wollte dient weder als Primärschlüssel noch habe ich sie, absichtlich, indiziert. Wüsste also nicht, warum sie indiziert sein sollte.
Verstehe ich dich richtig:
Ich soll einfach aus meiner Tabelle "Zutaten" eine Ansicht erstellen mit allen Feldern wie in der Tabelle und diese Ansicht zu einem FOrmular machen. Dann dieses Formular als Subformular für meine REezepte verwenden.
Gruß
Alexander
Hey Alexander,
Diesem Formular gibst du ein Unterformular mit, das auf die zweite Tabelle verweist. Dabei dient dein Schlüssel als Auswahlkriterieum. Es werden dann also nur die Datensätze angezeigt, die zum Hauptdatensatz passen, also deine Zutaten für dein Rezept. Wähle ein Tabellen-Darstellung für das Subformular und du hast immer so viele Zeilen, wie das Rezept Zutaten hat.
Gruss
Thomas
Nein, wozu und weswegen eine Ansicht? Lass doch beide Tabellen wie sie sind. Dann erstelle ein formular uaf der Basis der Rezepttabelle. Die felder zeigen dir dann immer nur ein Rezept an.Ich soll einfach aus meiner Tabelle "Zutaten" eine Ansicht erstellen mit allen Feldern wie in der Tabelle und diese Ansicht zu einem FOrmular machen. Dann dieses Formular als Subformular für meine REezepte verwenden.
Diesem Formular gibst du ein Unterformular mit, das auf die zweite Tabelle verweist. Dabei dient dein Schlüssel als Auswahlkriterieum. Es werden dann also nur die Datensätze angezeigt, die zum Hauptdatensatz passen, also deine Zutaten für dein Rezept. Wähle ein Tabellen-Darstellung für das Subformular und du hast immer so viele Zeilen, wie das Rezept Zutaten hat.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hey Alex,
Sorry, verstehe die Frage nicht.
Gruss
Thomas
wie mache ich das mit der Eingabe der Rezepte?


Sorry, verstehe die Frage nicht.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic