Hilfe bei meiner ersten Base-Datenbank

Hallo,

ich brauche mal ein wenig Unterstützung von euch bei meiner ersten Mini-Datenbank.

Entwurf ist hier zu finden:

http://www.file-upload.net/download-4773856/HA-DB--anonymisiert-.odb.html

Ich möchte gerne, dass ich für die Schüler einer Klasse registrieren kann, wer in welchem Monat wie oft die Hausaufgaben nicht hatte oder seine Materialien nicht vollständig dabei hatte. Und das Ganze aufgeschlüsselt nach den einzelnen Unterrichtsfächern.

Mit Calc bin ich bewandert, aber dies wäre eine dreidimensionale (Schülernamen/Fächer/Monate) Tabelle, da dachte ich, ich versuche mich mal in Base.

Ich denke, die Beziehungen dürften schon richtig gesetzt sein, aber ich kriege es nicht hin, ein Formular zur Eingabe zu erstellen. Die Daten erhalte ich fächerweise, ich will also im Formular oben das Fach und den Monat wählen und darunter eine Tabelle mit allen Schülernamen haben, sodass ich nur jeweils für diesen Monat die Anzahl fehlender HA und Materialien eintragen muss.

Über den Sinn des Ganzen will ich hier nicht diskutieren, mir geht es vor allem darum, mich in Base einzuarbeiten. Deshalb will ich auch nicht eine fertige Lösung, sondern eine Beschreibung, wie ich das bewerkstelligen kann.

Ich will die Fächer und Monate aus einer Liste auswählen können, die Schülernamen sollen auch in der Tabelle schon drin stehen.

Ich hoffe, ich konnte mich verständlich genug ausdrücken.

Die Datei zu "erste Schritte", die man unter Hilfe auf der Website findet, hilft mir hier leider nicht wirklich weiter, weil mein Beispiel doch anders ist als das dort beschriebene. Jedenfalls habe ich es analog nicht hinbekommen.

Danke für Hilfe bzw. Denkanstöße.

Micha

Hallo Micha,

Du hast mehrere 1:n-Beziehungen, die Du in einem Formular verbinden möchtest. Man kann eine Eingabe in eine 1:n-Beziehung durch ein Subformular lösen. Du hast 3 1:n-Beziehungen also solltest Du auch drei Subformulare verwenden. Im Form.ular-Navigator kannst Du weitere Subformulare einfügen.

Ob das die beste Lösung ist, weis ich nicht, aber so würde ich das erstmal versuchen.

Viele Grüße,

Ralf

Hallo Micha,

Ich möchte gerne, dass ich für die Schüler einer Klasse registrieren
kann, wer in welchem Monat wie oft die Hausaufgaben nicht hatte oder
seine Materialien nicht vollständig dabei hatte. Und das Ganze
aufgeschlüsselt nach den einzelnen Unterrichtsfächern.

Die Unterrichtsfächer sind ja schnell vollständig in eine Tabelle
eingegeben. Daraus kannst Du also auf jeden Fall ein Listenfeld machen.

Die Namen der SchülerInnen würde ich in ein Hauptformular packen,
darunter "HA-Mat-vergessen" als Subformular.

Monate und Jahr würde ich nicht in eine Tabelle auslagern. Vielmehr
würde ich das konkrete Datum in "HA-Mat-vergessen" abspeichern. Jahr und
Monat und Tag kannst Du gegebenenfalls daraus per Abfrage extrahieren.

Ich will die Fächer und Monate aus einer Liste auswählen können, die
Schülernamen sollen auch in der Tabelle schon drin stehen.

Dann reicht Dir auch ein Listenfeld in einem einfachen Formular.

Ich hoffe, ich konnte mich verständlich genug ausdrücken.

Die Datei zu "erste Schritte", die man unter Hilfe auf der Website
findet, hilft mir hier leider nicht wirklich weiter, weil mein Beispiel
doch anders ist als das dort beschriebene. Jedenfalls habe ich es analog
nicht hinbekommen.

"Erste Schritte Base" geht auch nur wirklich die ersten Schritte durch -
gerade einmal bis zu zwei Tabellen und alles mit Assistenten. Etwas
weiter unten auf der gleichen Seite findest Du das komplette und
detailliertere Handbuch zu Base.

Gruß

Robert

Die Unterrichtsfächer sind ja schnell vollständig in eine Tabelle
eingegeben. Daraus kannst Du also auf jeden Fall ein Listenfeld machen.

und wie geht das?

Die Namen der SchülerInnen würde ich in ein Hauptformular packen,
darunter "HA-Mat-vergessen" als Subformular.

Das verstehe ich jetzt nicht. Es soll letztlich so in etwa aussehen, wie mein Formularentwurf, nur dass die Schülernamen alle schon eingetragen sein sollen (und Fächer und Monate will ich als Auswahlliste haben). Ich will nur noch die Zahlen für vergessene HA etc. eintragen müssen.

Monate und Jahr würde ich nicht in eine Tabelle auslagern. Vielmehr
würde ich das konkrete Datum in "HA-Mat-vergessen" abspeichern. Jahr und
Monat und Tag kannst Du gegebenenfalls daraus per Abfrage extrahieren.

Das geht nicht, diese Daten habe ich nicht. Ich erfahre nur einmal pro Monat die Daten der einzelnen Fachlehrer. Und jedes Mal den Monat extra mit angeben zu müssen ist mir zu kompliziert.

Gruß
Robert

Danke für die Hilfe, aber ich fürchte, damit komme ich so noch nicht wirklich weiter.

Micha

Hallo Micha,

Die Unterrichtsfächer sind ja schnell vollständig in eine Tabelle
eingegeben. Daraus kannst Du also auf jeden Fall ein Listenfeld machen.

und wie geht das?

Ich habe auf eine Quelle verwiesen, die all dies enthält:
http://wiki.documentfoundation.org/images/d/d4/06_BH_Gesamtband_V35_einseitig.pdf

Die Namen der SchülerInnen würde ich in ein Hauptformular packen,
darunter "HA-Mat-vergessen" als Subformular.

Das verstehe ich jetzt nicht. Es soll letztlich so in etwa aussehen, wie
mein Formularentwurf, nur dass die Schülernamen alle schon eingetragen
sein sollen (und Fächer und Monate will ich als Auswahlliste haben). Ich
will nur noch die Zahlen für vergessene HA etc. eintragen müssen.

Sind dann die Schüler als Listenfelder vorhanden oder sollen sie separat
einstellbar sein? Du kannst z.B. im Hauptformular ein
Tabellenkontrollfeld mit den Schülern haben. Im Subformular dann die
Tabelle, in der Du alles einträgst "...vergessen". Da führt Dich der
Formularassistent direkt hin, da Du die entsprechenden

Monate und Jahr würde ich nicht in eine Tabelle auslagern. Vielmehr
würde ich das konkrete Datum in "HA-Mat-vergessen" abspeichern. Jahr und
Monat und Tag kannst Du gegebenenfalls daraus per Abfrage extrahieren.

Das geht nicht, diese Daten habe ich nicht. Ich erfahre nur einmal pro
Monat die Daten der einzelnen Fachlehrer. Und jedes Mal den Monat extra
mit angeben zu müssen ist mir zu kompliziert.

Du musst doch irgendwann diese Tabelle auch beschicken. Wenn aus Deiner
Sicht der Monat und das Jahr in der Tabelle stehen, die Dein Eintragen
bestimmen (wie z.B. bei einem fortlaufenden Kalender), dann nimmst Du
eben diese Tabelle in das Hauptformular:

Formularassistent starten;
1. Tabelle "Monate" auswählen - das Feld "ID" ist hoffentlich ein
Autowert-Feld, habe ich nicht nachgesehen;
2. Subformular hinzufügen → die bestehende Beziehung zu "HA ..." auswählen;
... und der Rest nach Belieben.

Zu den Listenfeldern steht alles im Handbuch. Der Assistent startet
allerdings nur, wenn Du nicht ein vorhandenes Feld in ein Listenfeld
umwandelst. Ich arbeite allerdings ohne diesen Assistenten - Du nach
kurzer Zeit vermutlich auch, da Du ja ein Feld haben willst, das wohl
Nachnamen und Vornamen der Schüler in einem zeigt. Da hilft Dir dann
"Abfrage zur Erstellung von Listenfeldern" - S. 162 des Handbuches - weiter.

Gruß

Robert

Micha Kuehn schrieb:

Entwurf ist hier zu finden:

Aus mir unerfindlichen Gründen funktioniert der alte Link nicht mehr.

Hier ein neuer Link zur selben Datei:
http://www.file-upload.net/download-4796919/HA-DB--anonymisiert-.odb.html

Danke an Tom für den Hinweis!

Micha

Robert Großkopf schrieb:

Du musst doch irgendwann diese Tabelle auch beschicken.

Ich glaube, das war genau mein Denkfehler. Ich dachte, wenn ich Schüler und Monate und Fächer definiere und eine Tabelle, die dies alles zusammenführt, dann müssten automatisch alle Kombinationen in dieser Tabelle auftauchen.

Wie kann ich denn diese Tabelle, die sämtliche Kombinationen enthalten soll, bequem füllen? Geht das mit Base? Ansonsten könnte ich mir vorstellen, dass ich das mit Calc mache und diese Tabelle dann irgendwie in Base integriere. Aber wie geht wiederum das? Ein einfaches Copy&Paste hat schon bei meinem Versuch, die Schülernamen einzubauen, versagt.

Danke für weitere Unterstützung. Dies ist nicht mein dringenstes Projekt, sodass ich mich nur sporadisch darum kümmern und austesten kann...

Was ich inzwischen auch heruasgefunden zu haben glaube ist, dass ich die Beziehungen der Tabellen mehrfach definieren muss/kann. Einmal unter Extras, Beziehungen und dann nochmals, wenn ich eine Abfrage erstelle. Das verstehe ich auch nicht. Warum genügt nicht die einmalige Definition der Beziehungen?

Micha

Hallo Micha,

Du musst doch irgendwann diese Tabelle auch beschicken.

Ich glaube, das war genau mein Denkfehler. Ich dachte, wenn ich Schüler
und Monate und Fächer definiere und eine Tabelle, die dies alles
zusammenführt, dann müssten automatisch alle Kombinationen in dieser
Tabelle auftauchen.

Du gibst in die Tabelle nur die Schlüsselzahlen ein.

Wie kann ich denn diese Tabelle, die sämtliche Kombinationen enthalten
soll, bequem füllen? Geht das mit Base?

Das ist die Hauptaufgabe von Base-Formularen. Ich habe das einmal
schnell zusammengeklickt:
http://robert.familiegrosskopf.de/download/HA-DB.odb

Ansonsten könnte ich mir
vorstellen, dass ich das mit Calc mache und diese Tabelle dann irgendwie
in Base integriere. Aber wie geht wiederum das? Ein einfaches Copy&Paste
hat schon bei meinem Versuch, die Schülernamen einzubauen, versagt.

Du kannst die Schülernamen so einfügen, wenn Du die Vornamen und
Nachnamen entsprechend zuordnest. Du hast ja eine Tabelle "Schüler".
Wenn Du Daten aus der Tabellenkalkulation mit Spaltenbezeichnung
kopierst, so kannst Du die Daten an diese bestehende Tabelle anhängen.

Was ich inzwischen auch heruasgefunden zu haben glaube ist, dass ich die
Beziehungen der Tabellen mehrfach definieren muss/kann. Einmal unter
Extras, Beziehungen und dann nochmals, wenn ich eine Abfrage erstelle.
Das verstehe ich auch nicht. Warum genügt nicht die einmalige Definition
der Beziehungen?

In der Abfrage werden die definierten Beziehungen als Vorgabe
übernommen. Diese Beziehungen kannst Du natürlich für Abfragezwecke neu
definieren, nicht aber für Eingabezwecke in die Datenbank. Auch kannst
Du bei Abfragen unterscheiden zwischen der direkten Verbindung von
Tabelle (nur die Datensätze werden angezeigt, die Werte aus beiden
Tabellen abbilden) und einer Verbindung, die eine Tabelle auf jeden Fall
ganz abbildet - auch wenn keine Werte aus der zweiten Tabelle
existieren. Angenommen Du machst eine Abfrage nach Schülern und
vergessenen Hausaufgaben. Nur die Schüler werden gelistet, die auch
Hausaufgaben vergessen haben - und zwar so oft, wie sie Hausaufgaben
vergessen haben. Alle anderen Schüler tauchen standardmäßig gar nicht
auf. Wenn Du anders in der Abfrage verknüpfst ("Left Join" z.B.), dann
tauchen alle Schüler auf; haben sie nie die Hausaufgaben vergessen, so
bleiben eben die entsprechenden Felder leer.

Gruß

Robert

Hallo lieber Micha,

Anfrage unten:

Micha Kuehn schrieb:

Entwurf ist hier zu finden:

Aus mir unerfindlichen Gründen funktioniert der alte Link nicht mehr.

Hier ein neuer Link zur selben Datei:
http://www.file-upload.net/download-4796919/HA-DB--anonymisiert-.odb.html

Info:
nach Anklicken landete ich auf rein engl. Text-Seiten-Inhalten:
Setup.exe -> Bundelore LTD -> vG Video Downloader Setup.

Meine Synapsen lassen solche Dinge garnicht dank meines Gehirn-
trainings mehr durch.
Die Gründe kennst Du.
Außerdem hat mein Rechner keine Video-Funktion.
Demzufolge mußte ich 'Abbruch' tätigen.

Ich finde das Ganze nicht so gut, denn letztlich bewegst Du Dich auf
einer öffentlichen M.-Liste und hast Deine Hilfebitte an alle gerichtet.

Ich denke, es müßte auch anders gehen.
Denke mal darüber nach.

Tschüß sagt Euch
        JoLa

Hallo Jost,

Anfrage unten:

Micha Kuehn schrieb:

Entwurf ist hier zu finden:

Aus mir unerfindlichen Gründen funktioniert der alte Link nicht mehr.

Hier ein neuer Link zur selben Datei:
http://www.file-upload.net/download-4796919/HA-DB--anonymisiert-.odb.html

Info:
nach Anklicken landete ich auf rein engl. Text-Seiten-Inhalten:
Setup.exe -> Bundelore LTD -> vG Video Downloader Setup.

Kann ich nicht nachvollziehen. Was hast Du mit "Video Downloader"
erhalten? Ich klicke auf einer durchweg in Deutsch gehaltenen Seite
(Ausnahme: bestimmte Fachbegriffe) auf den einzigen Button, der farblich
durch einen weißen Pfeil auf grünem Grund abgesetzt ist, und erhalte
direkt die *.odb-Datei zum Download (auch dies in einem deutsch
gehaltenen Dialog).

Für mich ist diese Seite sogar recht übersichtlich gestaltet, da als
einziges weiteres Farbelement ein blauer Farbton in verschiedenen
Schattierungen zu sehen ist, der Downloadbutton also richtig ins Auge
springt.

Außerdem hat mein Rechner keine Video-Funktion.

Wenn Dein Rechner keine Videofunktion hätte, dann könntest Du lediglich
im alten DOS-Textmodus arbeiten. Sobald Du aber einen Mauszeiger auf dem
Schirm bewegen kannst wirst Du, bei Zuhilfenahme entsprechender
Programme, auch auf Deinem Rechner Videos gucken können. Du nutzt
vermutlich diese Funktion nicht für das Sehen von Videos - vorhanden ist
sie aber.

Gruß

Robert

Hallo!

Hallo Jost,
> Außerdem hat mein Rechner keine Video-Funktion.

Wenn Dein Rechner keine Videofunktion hätte, dann könntest Du lediglich
im alten DOS-Textmodus arbeiten. Sobald Du aber einen Mauszeiger auf dem
Schirm bewegen kannst wirst Du, bei Zuhilfenahme entsprechender
Programme, auch auf Deinem Rechner Videos gucken können. Du nutzt
vermutlich diese Funktion nicht für das Sehen von Videos - vorhanden ist
sie aber.

Nur so als Spaß nebenbei: Die Seite funktioniert auch
einwandfrei im textbasierten Modus:
http://www.gnomeatlinux.de/schule/Bildschirmfoto1.png

Da, wo IMG schwarz unterlegt ist, kann durch Klicken die
Datei heruntergeladen werden.

cu
Peter

Hallo Jost,
es sind mehrere irritierende Download-Buttons da drauf. Der richtige ist
der kleinste in der Mitte.

Gruß
Andreas

Andreas Lartz schrieb:

Hallo Jost,
es sind mehrere irritierende Download-Buttons da drauf. Der richtige ist
der kleinste in der Mitte.

Gruß
Andreas

Echt? Die sehe ich alle nur, wenn ich ausnahmsweise mal Adblock Plus abschalte. Wenn ich das vorher schon mal so gesehen hätte, hätte ich mir sicher einen anderen Hoster für Spontan-Uploads gesucht.

Könnt ihr da etwas ohne Werbung empfehlen?

Und an Jost: Vom Download-Helper sehe ich da nichts. Aber ich hatte gestern auch ein Fenster von ihm offen. Vermutlich hast du, wie ich, diese Erweiterung installiert und es gab ein Update? Jedenfalls hat das nichts mit meinem Link zu tun.

Micha

Hallo Micha,

Antwort unten:

Andreas Lartz schrieb:

Hallo Jost,
es sind mehrere irritierende Download-Buttons da drauf. Der richtige ist
der kleinste in der Mitte.

Gruß
Andreas

Echt? Die sehe ich alle nur, wenn ich ausnahmsweise mal Adblock Plus
abschalte. Wenn ich das vorher schon mal so gesehen hätte, hätte ich mir
sicher einen anderen Hoster für Spontan-Uploads gesucht.

Könnt ihr da etwas ohne Werbung empfehlen?

Und an Jost: Vom Download-Helper sehe ich da nichts. Aber ich hatte
gestern auch ein Fenster von ihm offen. Vermutlich hast du, wie ich,
diese Erweiterung installiert und es gab ein Update? Jedenfalls hat das
nichts mit meinem Link zu tun.

So ganz kann ich das nicht nachvollziehen.
Ich hatte Dir meinen ganzen Handlung-Pfad geschickt.
Inzwischen habe ich auf dem Desktop eine Verknüpfung von vG, die
ich nicht angefordert habe und muß das da hinterliegende Programm
erst mal suchen und dann wieder entfernen.
Aber zum Ziel (Deine Datei) bin ich trotz 4x-Versuchen nicht gekommen.
Jedenfalls bin ich immer wieder auf den engl. Text-Seiten gelandet.
Ich gebe es trotz Eurer gut gemeinten Hinweise auf.

Das Internet ist für mich keine Spielwiese, das werde ich wohl nie
zufriedenstellend händeln.
Trotzdem an alle ein herzliches Danke.

Tschüß sagt Euch
        JoLa

Hallo Micha,

Könnt ihr da etwas ohne Werbung empfehlen?

sowas geht z.B. ganz gut mit owncloud, Dropbox etc.

Gruß
Andreas

Ah, jetzt seh ich ... :wink:

Allerdings verstehe ich den Sinn der Tabelle "Monate" nicht so ganz,
aber es wurde - glaube ich - schon erörtert, dass man einen wie auch
immer gestalteten Zeitpunkt besser in der Vergessen-Tabelle
unterbringt ?

Tom schrieb:

Allerdings verstehe ich den Sinn der Tabelle "Monate" nicht so ganz,
aber es wurde - glaube ich - schon erörtert, dass man einen wie auch
immer gestalteten Zeitpunkt besser in der Vergessen-Tabelle
unterbringt ?

Ich will aber nicht bei jedem Eintrag einen Zeitpunkt angeben müssen. Ich möchte den zugehörigen Monat aus einer Liste auswählen. Ob mein Ansatz dafür richtig ist oder nicht, weiß ich nicht. Grundsätzlich sollte aber doch eine solche Verknüpfung als 1:n-Beziehung passen und machbar sein, oder? Es könnte ja auch irgendwas anderes sein, was ich da zuordnen will...

Die Jahresangaben sind egal, die kann man in der Tat vergessen.

Micha

Tom schrieb:
> Allerdings verstehe ich den Sinn der Tabelle "Monate" nicht so ganz,
> aber es wurde - glaube ich - schon erörtert, dass man einen wie auch
> immer gestalteten Zeitpunkt besser in der Vergessen-Tabelle
> unterbringt ?

Ich will aber nicht bei jedem Eintrag einen Zeitpunkt angeben müssen.

Es gibt wahrscheinlich auch in Base (mit dem ich gerade erst beginne)
andere Mechanismen für die Vorbelegung bestimmter Felder - gerade beim
Datum - die genau das erledigen. Gibst Du z.B. immer alle Daten für den
ganzen Monat in einer session hintereinander ein, gibt's bestimmt die
Möglichkeit, das Datumsfeld mit einem default für jeden Satz
vorzubelegen. Da bräuchte es aber noch etwas mehr Information zum
konkreten use case. Auch der Entwurf Deiner Eingabeform ist für mich
nicht so ganz einfach und unterscheidet sich ja auch von dem von Robert,
der schon eher meine Arbeits- und Denkweise bei der Dateneingabe
unterstützen würde.

Ich möchte den zugehörigen Monat aus einer Liste auswählen. Ob mein

Alles Auszuwählende in einer einspaltigen Tabelle zu hinterlegen ist
natürlich die erste Idee, aber bei Datenbanken eigentlich nicht die
erste Sahne. Wir haben auch schon mit Zeit-Entitäten gearbeitet, aber
dadurch entstehen all-key relations, die eigentlich nur dann Sinn
machen, wenn Sie häufigen Änderungen oder Löschungen unterliegen - was
bei Zeitpunkten eigentlich nicht vorkommt. Selbst bei den Fächern würde
ich diese Abwägung machen wollen. Du wirst zwar hier kaum in Performance
Probleme laufen, aber ich würde bei größeren Projekten so eine
"Übernormalisierung" vermeiden.

Ansatz dafür richtig ist oder nicht, weiß ich nicht. Grundsätzlich

Beim Datenbank-Design würde ich nie von richtig oder falsch sprechen. Es
gibt immer verschiedene Möglichkeiten, das Gleiche zu erreichen - je
nach Anwendungsfall kann aber die eine oder andere vorteilhafter
sein :wink:

sollte aber doch eine solche Verknüpfung als 1:n-Beziehung passen und

Sicher dat :slight_smile:
Das scheint mir aber für den vorliegenden Fall zu restriktiv zu sein,
denn dann hättest Du modelliert, dass zu jedem Zeitpunkt mindestens eine
Schüler-Fach-Kombination vorkommen soll - oder zu löschen wäre, wenn er
nicht verwendet wird ? - ist schon zu lange her. Damit würdest Du aber
später entweder leere Datensätze erzeugen oder aber auf eine
fortlaufende Zeitskala verzichten, z.B. diesen August in Bayern :wink:

Weil ich das immer sehr verwirrend fand, habe ich gerne die Modellierung
gewählt, die letzlich die Zeit-Entität als Attribut in die Relation
gezogen hat. SERM ? Erinnere mich leider nicht mehr so genau und will
auch nicht zu sehr theoretisieren ...
Und wie ich sehe habt Ihr ja beide auf die Definition der foreign keys
(Verbundeigenschaften ?) der Tabellen verzichtet, so dass dieser
Modellierungsschritt nicht umgesetzt ist. Muss ja auch nicht - bei
HomeDataBanking :wink: Ich vermute, Base nimmt dann default-mäßig m:n ?

machbar sein, oder? Es könnte ja auch irgendwas anderes sein, was ich da
zuordnen will...

Die Jahresangaben sind egal, die kann man in der Tat vergessen.

Du willst also für jedes Jahr eine neue Anwendung stricken ? Auch nicht
gerade der typische Anwendungsfall für eine Datenbank ?

Schöne Grüße

(...) zu haben glaube ist, dass ich die
> Beziehungen der Tabellen mehrfach definieren muss/kann. Einmal unter
> Extras, Beziehungen und dann nochmals, wenn ich eine Abfrage erstelle.

relation design zeigt Dir tatsächlich die Beziehungen zwischen den
Tabellen.
Das zweite ist das query design. Sieht zwar ähnlich aus, bestimmt aber
nicht die Beziehungen zwischen den Tabellen sondern die Art der Abfrage.
Im einfachsten Fall benötigt man einen JOIN der vorhandenen Tabellen -
und davon kann man hier 5 unterschiedliche definieren.

Viele Grüße