Kursverwaltung

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

SprachzentrumBsAs
Beiträge: 4
Registriert: Do, 07.07.2011 22:06

Kursverwaltung

Beitrag von SprachzentrumBsAs »

Hallo,
wahrscheinlich gibt es hierzu schon ein paar Einträge, ich kann sie aber leider nicht finden. ;(

Ich baue mir gerade eine kleine Sprachschule hier in Buenos Aires auf und habe noch nicht genügend Umsatz, um mir einen Profi leisten zu können, deswegen versuche ich mir eine Datenbank zur Kursverwaltung zu erstellen.

Ich habe mir bereits ein paar Tabellen angelegt und die Beziehungen erstellt. D

Die Idee ist:

Schüler buchen Kurse.
Kurse haben feste Termine, an denen Lehrer unterrichten.
Kurse haben Niveaus
An einem Kurs können mehrere Schüler und Lehrer teilnehmen.

Ich bin völliger Noobie, also bitte Geduld.

Wenn ich nun ein Formular für Schüler erstellen möchte, bekomme ich es einfach nicht hin, dass die Daten aus der Tabelle "tbl_nivel" in das Feld "Nivel" der Tabelle "tbl_alumnos" geschrieben wird. Es erscheint immer nur eine 0.

Ich habe es schon mit Listenfelder und Kombinationsfelder probiert. Was könnte ich tun, um die Daten aus der Tabelle "tbl_nivel", die ich über eine Liste im Formular "Schüler" auswählen kann in die Tabelle "tbl_alumnos" geschrieben und gespeichert wird. Was mache ich falsch oder mache ich überhaupt etwas richtig?

Liebe Grüße aus Buenos Aires
Daniel
Dateianhänge
Die Beziehungen
Die Beziehungen
sprachzentrum-beziehungen.jpg (49.47 KiB) 875 mal betrachtet
Sprachzentrum-dbase_1.0.odb
Meine bisherige Datenbank
(10.64 KiB) 49-mal heruntergeladen
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Kursverwaltung

Beitrag von DPunch »

Aloha

Die Struktur sieht vom ersten Blick her sehr gut aus (wobei man ohne des spanischen mächtig zu sein einiges nur erahnen kann ;))
Ich vermute, dass Deine Schüler eine Angabe zu ihren Vorkenntnissen machen sollen und diese hinterlegt werden soll?

Wenn nein, dann kannst Du die Beziehung getrost löschen. Das Niveau ergibt sich dann aus dem besuchten Kurs sowieso.
Wenn ja, dann füge Deinem Formular ein Listenfeld hinzu

-> im automatisch öffnenden Assistent als Tabelle "tbl_nivel" auswählen
--> "Nivel" auswählen"
--> auf der linken Seite "Nivel" und auf der rechten Seite "nivel_id" auswählen

Und fertig.

Auf den zweiten Blick noch zwei Anmerkungen:
Ob einem Schüler wirklich allgemein ein Niveau zugeteilt werden kann, weisst Du wahrscheinlich besser, aber so von aussen betrachtet könnte es ja vorkommen, dass der gleiche Schüler unterschiedliche Kurse (vielleicht will einer das ja mal machen) besucht und dort unterschiedliche Niveaus hat.
Insofern müsstest Du eigentlich in einer Tabelle "Alumno_ID", "tipo_curso_id" und "nivel_id" vorhalten (als kombinierter Primärschlüssel), also welcher Schüler in welchem Kurstyp welches Niveau angegeben hat, "Nivel" entsprechend als Attribut aus "tbl_alumnos" rausschmeissen.

Ausserdem kannst Du in "tbl_alumno_curso" den Primärschlüssel einfach nur aus "alum_id_fs" und "curso_id_fs" zusammensetzen, eine eigene ID ist da soweit ich das überblicke nicht notwenig, mit dem kombinierten Primärschlüssel verhinderst Du aber, dass aus Versehen der gleiche Schüler zweimal für den gleichen Kurs gebucht wird (gleiches gilt für die Kurse<->Stunden - Tabelle).
SprachzentrumBsAs
Beiträge: 4
Registriert: Do, 07.07.2011 22:06

Re: Kursverwaltung

Beitrag von SprachzentrumBsAs »

DPunch hat geschrieben:Aloha
Das Niveau ergibt sich dann aus dem besuchten Kurs sowieso.
Wenn ja, dann füge Deinem Formular ein Listenfeld hinzu

-> im automatisch öffnenden Assistent als Tabelle "tbl_nivel" auswählen
--> "Nivel" auswählen"
--> auf der linken Seite "Nivel" und auf der rechten Seite "nivel_id" auswählen
Tausend Dank! Das hat bei mir richtig funktioniert!!! ;)

DPunch hat geschrieben:Ob einem Schüler wirklich allgemein ein Niveau zugeteilt werden kann, weisst Du wahrscheinlich besser, aber so von aussen betrachtet könnte es ja vorkommen, dass der gleiche Schüler unterschiedliche Kurse (vielleicht will einer das ja mal machen) besucht und dort unterschiedliche Niveaus hat.
Insofern müsstest Du eigentlich in einer Tabelle "Alumno_ID", "tipo_curso_id" und "nivel_id" vorhalten (als kombinierter Primärschlüssel), also welcher Schüler in welchem Kurstyp welches Niveau angegeben hat, "Nivel" entsprechend als Attribut aus "tbl_alumnos" rausschmeissen.
Okay, das klingt logisch. Ich weiss nur leider nicht, wie ich die Zwischentabelle in einem Formular darstellen kann, sodass die Daten angezeigt und dann in die jeweilige Tabelle gespeichert werden.

Das nächste Problem wird dann sicherlich die Darstellung des Unterformulars "Kurs" sein. Ich habe mir gedacht das Kurs_Formular bei Schüler mit einzufügen, da dort jeweils der Kurs ausgewählt und angezeigt werden soll. Ist es hier empfehlenswert eine Tabelle mit den Spalten einzufügen?

Es gibt die Möglichkeit zwischen Einzel- und Gruppenunterricht. Beim Gruppenunterricht reicht eine einfache Verknüpfung auf den jeweiligen Kurs. Beim Einzelunterricht müssen die Daten wie Tag, Uhrzeit, Raum und Lehrer einzeln eingetragen werden. Gibt es dazu ein paar Links oder Hinweise, wo ich weiterlesen könnte?

Grüsse
Daniel
SprachzentrumBsAs
Beiträge: 4
Registriert: Do, 07.07.2011 22:06

Re: Kursverwaltung

Beitrag von SprachzentrumBsAs »

Ich habe mal ein Subformular eingefügt. Ich erhalte nun immer eine Fehlermeldung

Fehler beim Einfügen des neuen Datensatzs

SQL-Status: S1000
Fehler-Code: -35

No data is available


Die Daten werden zwar gespeichert, ich kann aber nicht weitere Daten hizufügen oder die entsprechenden Daten für den jeweiligen Kurs speichern. Ebenfalls werden die Daten allen Kursen zugeordnet und nicht für jeden einzelnen Kurs. Auch verstehe ich noch nicht ganz, wie ich die Daten je nach Art des Kurses (Einzel- oder Gruppenunterricht) zu ordnen kann. Ich würde gern jeweils eine Tabelle bzw. Eingabemaske pro Kursart anlegen, weiss aber nicht wie. ;( Das passiert, wenn Laien gern Profis sein möchten).

Anbei lade ich den derzeitigen Stand meiner Datenbank hoch. Vielleicht kann mir ja jemand helfen oder einen Tipp geben.

Saludos
Daniel
Dateianhänge
Sprachzentrum-dbase_1.1.odb
Datenbank
(48.76 KiB) 58-mal heruntergeladen
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Kursverwaltung

Beitrag von DPunch »

Aloha

Nach Ansicht Deiner Beispieldatenbank ist die Zwischentabelle Schüler <-> Kurs <-> Niveau doch überflüssig, ich hatte angenommen, dass mit "Tipo de Curso" ein Kurstyp ala "Portugiesisch", "Deutsch" etc gemeint ist, aber wenn es da wirklich nur um Gruppen- oder Individualkurs geht, brauchts die nicht.
SprachzentrumBsAs hat geschrieben:Fehler-Code: -35
No data is available
Das ist glaube ich ein Fehler, der meistens auf Probleme mit Formatierungen hinweist, aber ich arbeite ich zu selten mit Base und Formularen, um das mit Bestimmtheit sagen zu können.

Desweiteren fällt mir auf, dass Du die Zwischentabelle tbl_cursohorario nicht brauchen dürftest, weil Dine Stunden anscheinend mit festem Termin und somit nicht wiederverwertbar, also immer klar zu einem Kurs gehörig sind - in dem Fall kannst Du einfach eine Fremdschlüssel-Referenz auf den Kurs bei der Stunde einbauen.

Was die Trennung zwischen Einzel- und Gruppenunterricht angeht, kann ich Dir nicht ganz folgen, einen Raum, Lehrer etc. brauchst Du doch in beiden Fällen, oder nicht?
SprachzentrumBsAs
Beiträge: 4
Registriert: Do, 07.07.2011 22:06

Re: Kursverwaltung

Beitrag von SprachzentrumBsAs »

Danke, ich glaube ich habe das Problem gefunden.

Nun stellt sich eine weitere Frage: Wie kann ich die Kurse nach Monaten darstellen.

Ich meine: Ich habe einen Schüler, der einen Einzelunterricht im Juli bucht. Danach bucht er für August wieder einen Einzelunterricht, aber an einem anderen Tag. Wie schaffe ich es, dass man für jeden Monat die Daten eintragen kann. Brauche ich da noch eine Tabelle mit den Monaten oder kann man das anders lösen? Die Idee ist, dass man eine Steuerleiste hat, mit der man durch die Monate schalten kann.

Saludos
Daniel
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Kursverwaltung

Beitrag von DPunch »

Aloha
SprachzentrumBsAs hat geschrieben:Wie schaffe ich es, dass man für jeden Monat die Daten eintragen kann. Brauche ich da noch eine Tabelle mit den Monaten oder kann man das anders lösen?
Da ich wie gesagt selten mit den Basisfunktionen von Base und Formularen arbeite, wüsste ich nur, wie das per Makro zu lösen ist.
Ansonsten liesse sich da bestimmt per Listenfeld als Filter arbeiten, leider kann ich Dir nicht genau sagen, wie.
Antworten