Beziehungen bei Base funktionieren nicht

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

juetho
******
Beiträge: 617
Registriert: Di, 20.04.2010 15:46
Wohnort: Berlin

Re: Beziehungen bei Base funktionieren nicht

Beitrag von juetho »

Hallo Marcel, dein Hauptfehler ist folgender: Ein Fremdschlüssel kann nur mit einem Primärschlüssel verknüpft werden. Es geht also nicht - wie du es versucht hast - Schueler.Name <=> Termine.Name, sondern es muss so gesetzt werden: Schueler.ID <=> Termine.SchuelerID.

Ich empfehle deshalb, das Feld für den Primärschlüssel der Tabelle Schueler einfach ID zu benennen (ebenso in der Tabelle Termine). In der Tabelle Termine wird das zweite Feld ersetzt durch ein INTEGER-Feld SchuelerID. Über den Menü-Befehl Extras > Beziehungen kannst du dann diese beiden Felder verknüpfen.

Wenn du (wie ich es gemacht habe) auf Umlaute verzichtest (und ebenso auf jegliche Sonderzeichen), kannst du auch die nervigen Gänsefüßchen bei den Namen weglassen.

Wenn du dich allgemein in SQL einarbeiten willst, kann ich dich auf diese Einführung in SQL hinweisen. Speziell zu Base hat dir Gast9999 bereits die Handbücher empfohlen.

Viel Erfolg! Jürgen

Nachtrag: den Fehlerhinweis von Robert (16.41 Uhr) durch Fettdruck verdeutlicht.
Zuletzt geändert von juetho am So, 25.11.2012 17:52, insgesamt 1-mal geändert.
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
juetho
******
Beiträge: 617
Registriert: Di, 20.04.2010 15:46
Wohnort: Berlin

Re: Beziehungen bei Base funktionieren nicht

Beitrag von juetho »

MarcelHH hat geschrieben:... ich kann immer noch keine Beziehungen einpflegen .. verdammt .. warum ist das bei access so einfach bei office so schwer .. *grübel*
Das kann ich nicht nachvollziehen. Bei mir klappt es ganz einfach:
  1. Extras > Beziehungen öffnen
  2. Tabellen hinzufügen: beide Tabellen "Hinzufügen", dann "Schließen"
  3. Termine.SchuelerID mit drag & drop auf Schueler.ID ziehen (oder umgekehrt)
Fertig. Das wird automatisch und korrekt als 1:n-Beziehung (1 Schüler - mehrere Termine) markiert.

Wenn das bei dir nicht klappt, dann solltest du genau deine einzelnen Schritte notieren und angeben.

Nebenbei: In den Allgemeinen Hinweisen zur Forumsbenutzung (ganz oben in jedem Unterforum) wird nach wichtigen Angaben gefragt für den Fall, dass das relevant ist. Warum wird dieser Hinweis nur immer wieder ignoriert. :shock: Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
RobertG
********
Beiträge: 2068
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Beziehungen bei Base funktionieren nicht

Beitrag von RobertG »

Hallo MarcelHH,

klassischer Fehler bei der Arbeit mit Datenbanken, wenn die zweite Tabelle auftaucht und mit der ersten irgendwie verknüpft werden soll - direkt aus der Unterrichtspraxis: Die zweite Tabelle muss ein Feld haben, das den Primärschlüssel der ersten Tabelle als Fremdschlüssel aufnehmen kann. heißt für Dich, das Feld nicht nur "Schueler_ID" (oder sonstwie) zu nennen, sondern dem Feld auch die gleiche Dateneigenschaft zuzuweisen. Vermutlich hast Du bei der Tabelle Stammdaten den Primärschlüssel "SchuelerID" als Autowert (INTEGER) festgelegt. Das bedeutet, dass "Schueler_ID" in "Termine" ebenfalls INTEGER sein muss. Außerdem darf es bei der Zusammenstellung der Relationen nicht schon Werte enthalten, die in der Tabelle "Stammdaten" nicht vorhanden sind.

Wenn es bei Dir nicht klappt, dann muss eine Fehlermeldung auftauchen. Die solltest Du hier posten.

Gruß

Robert
Antworten