Seite 1 von 2

Umstieg von Bento auf LO Base

Verfasst: So 1. Jun 2014, 08:58
von Hubato
Hallo,

ich benutze seit vielen Jahren Bento, weil mir Base und Access immer zu kompliziert waren. Ich schätze besonders die Bezugsdatenfelder in Bento, die leicht zu erstellen waren und sehr nützlich. Da Bento nicht mehr weiterentwickelt wird, bin ich gezwungen, eine neue Datenbank zu benützen.
Das Problem ist dabei, dass sowohl Filemaker als auch - meines Wissens - LO Base die Bezugsdatenfelder nicht unterstützen. Ich suche daher nach einem geeigneten Workaround. Da ich ansonsten ein Fan von LibreOffice bin und es von Anfang an benutze, möchte ich auch gerne dabei bleiben.

Zu meiner Datenbank:

Ich habe eine Veranstaltungstabelle, der ich aus einer Musiktiteltabelle jeweils ein eigenes Programm aus Musiktiteln zuweisen möchte. Zur Programmrecherche benutzte ich eine einfache Suche in Bento. Jede Veranstaltung hat eine eigene Programmfolge. Des weiteren sollte es möglich sein, bei jedem Musiktitel festzustellen, in welcher Veranstaltung er verwendet wurde.

Gibt es hierfür eine Lösung in LO und wie könnte diese aussehen?

Vielen Dank schonmal für die Hilfe!

Re: Umstieg von Bento auf LO Base

Verfasst: So 1. Jun 2014, 09:49
von RobertG
Hallo Hubato,

ich habe mir eben eine Beschreibung zu Bento heruntergeladen, weil ich nachsehen wollte, was denn "Bezugsdatenfelder" sind. Das scheint mir nichts anderes zu sein als das, was in relationalen Datenbanken mit Primärschlüssel und Fremdschlüssel definiert wird. Solche Bezüge kannst Du also in Base unter Extras → Beziehungen herstellen.

Vermutlich hast Du ja bereits einen entsprechenden Datenbestand. Die einfachste Variante, um diesen nach Base zu transportieren, geht über das Einlesen der Tabellen in Calc. Beim Import nach Base benötigst Du für jeden Datensatz ein unverwechselbares Feld, den Primärschlüssel. Das Feld ist vielleicht schon vorhanden, da Du Bezugsdatenfelder benutzt hast. Ansonsten müsstest Du so ein Feld erst erstellen.

Du möchtest einer Veranstaltung natürlich mehrere Musiktitel zuweisen. Dies geht über ein Zusammenführen der Primärschlüssel aus der Tabelle Veranstaltung und der Tabelle Musiktitel in eine weiteren Tabelle. Diese Tabelle enthält von der Voreinstellung her nur die Fremdschlüssel der Tabelle "Veranstaltung" und "Musiktitel". Beide zusammen bilden den Primärschlüssel in der Verbindungstabelle, die ich einfach einmal "rel_Veranstaltung_Musik" nenne. Mit diesen 3 Tabellen hast Du jetzt das, was mit "Bezugsdatenfeldern" gemeint ist.

In Deinem späteren Hauptformular steht die Tabelle "Veranstaltung", in Deinem Unterformular die Tabelle "rel_Veranstaltung_Musik". Das Unterformular besteht aus einem Tabellenkontrollfeld, in dem nur der Primärschlüssel des jeweiligen Musiktitels eingegeben werden muss. Dies wird über ein Listenfeld in dem Tabellenkontrollfeld gelöst. Damit bekommst Du den Titel angezeigt und brauchst Dich um einen Schlüsselwert nicht mehr zu kümmern.

Soweit die grobe Richtung.

In dem LO-Base-Handbuch für die Version 4.3 habe ich im Kapitel "Einführung in Base" genau so eine Konstruktion in kleinen Schritten mit Screenshots versehen stehen. Die momentane Arbeitsversion des Handbuches bekommst Du hier: http://robert.familiegrosskopf.de/lo_hb_dev - dort nach Base_Gesamtband_einseitig_V43.pdf suchen. Ich schreibe hier nicht den direkten Link hin, weil das Verzeichnis sehr wohl länger bestehen bleibt, aber der Inhalt eben laufend wechselt.

Gruß

Robert

Re: Umstieg von Bento auf LO Base

Verfasst: Mi 4. Jun 2014, 12:11
von Hubato
Hallo Robert,

vielen Dank für die Mühe, die du Dir machst mit Forum, Handbuch und Beispieldatenbanken. Das ist wirklich eine Riesenhilfe.

Ich habe jetzt gemäß dem Handbuch eine Datenbank aufgebaut, bin auf S 38. Jetzt bekomme ich leider eine Fehlermeldung beim Aufruf des Formulars "Teilnehmer":
"SQL-Status: S0022 Fehler-Code: -28 Column not found: 2" und "Der Inhalt eines Kombinations- oder Listenfeldes konnte nicht ermittelt werden.
Die Einstellungen sind mit der Anleitung identisch, ich habe die Beziehungen und die Tabelle daraufhin gelöscht und nochmals neu aufgebaut - mit demselben Ergebnis.
Hier im Forum und bei Google gab es keinen Hinweis mit diesen Fehlermeldungen.

Was habe ich falsch gemacht, und wie kann ich das Problem lösen?

Re: Umstieg von Bento auf LO Base

Verfasst: Mi 4. Jun 2014, 13:21
von Acco
Hallo Hubato,

da wird die Spalte 2 nicht gefunden. Hast Du bei dem Listenfeld als "gebundenes Feld" die Ziffer "2" eingegeben? Die Zählung beim Listenfeld beginnt bei "0", falls Du die 2. Spalte auswerten willst, ist demnach die richtige Angabe "1".

Wenn das nicht ist die Ursache ist, lade doch eine (verfremdete) Beispiel-DB hier hoch. Dann kann man nach dem Fehler schauen.

Gruß

acco

Re: Umstieg von Bento auf LO Base

Verfasst: Mi 4. Jun 2014, 13:44
von Hubato
Übungsdatenbank1.odb.zip
(10.43 KiB) 400-mal heruntergeladen
Das hab ich gemacht, jetzt sucht er die Spalte 3. Anbei die Datenbank

Re: Umstieg von Bento auf LO Base

Verfasst: Mi 4. Jun 2014, 14:02
von Acco
Hallo Hubato,

beim SQL-String des Listenfeldes fehlt die Angabe der "ID"-Spalte. Es muß heißen:

Code: Alles auswählen

SELECT "Sportart", "ID" FROM "Sportarten"
und das gebundene Feld muß "1" statt "2" sein, dann funktioniert es. "0" = "Sportart" und "1" = "ID".
"2" (also eine dritte Spalte) ist nicht in der Abfrage vorhanden, deshalb die Fehlermeldung.

Gruß

acco

Re: Umstieg von Bento auf LO Base

Verfasst: Mi 4. Jun 2014, 15:21
von Hubato
Aha! Das scheint mir aber ein Bug in LO Base zu sein, ich habe alles genau wie beschrieben ausgeführt, die grafische Oberfläche fügt wohl das "ID" nicht ein. Dankeschön!
----

Nächste Frage: Ich habe eine Tabelle mit vielen Komponisten, die jeweils einige Werke geschrieben haben. Die Komponisten will ich nun in eine neue Tabelle auslagern. Gibt es eine Möglichkeit, sie in eine andere Tabelle zu übertragen ohne alle neu eintippen zu müssen (sind doch mehrere Hunderte).

Viele Grüße
Hubert

Re: Umstieg von Bento auf LO Base

Verfasst: Mi 4. Jun 2014, 16:54
von Acco
Hallo Hubato,
Hubato hat geschrieben:Aha! Das scheint mir aber ein Bug in LO Base zu sein ...
Den Bug kann ich nicht bestätigen, das funktioniert bei mir einwandfrei.

Zu Deiner Frage:
Wenn in der betreffenden Tabelle der Komponist jeweils nur eine Zeile belegt: (Komponist, Werk1, Werk2, Werk3 ...):
Im Datenbankfenster "Tabellen" die zu kopierende Tabelle markieren, rechte Maustaste "kopieren" klicken. Wieder rechte Maustaste "einfügen" klicken. Im aufspringenden Fenster alles lassen wie es ist, "Fertigstellen" klicken.

Tabellen bearbeiten:
In der Ausgangstabelle die Spalte mit den Namen löschen. In der kopierten Tabelle alle überflüssigen Spalten löschen.

In einer Abfrage (Entwurfsmodus) die beiden Tabellen hinzufügen, die Spalten mit der "ID" miteinander verbinden. (Das macht man üblicherweise unter "Extras" - "Beziehungen", hier habe ich es nur in der Abfrage gemacht.) Wenn die Abfrage auch zur Datenbearbeitung genutzt wird, müssen beide "ID"-Spalten in der Abfrage vorhanden sein.

Beipiel-DB im Anhang
Da war Tabelle "TabKomponist" die Ausgangstabelle. Die habe ich 2x kopiert damit die Ursprungstabelle erhalten bleibt. Einmal als "TabKomponist2" und einmal als "TabWerke". Anschlließend in "TabKomponist2" die Spalte "Werke" gelöscht und in "TabWerke" Spalte "Namen".

In "Abfrage1" findet dann die Zusammenführung statt. Vergleiche Inhalt "TabKomponist" (Ursprung) mit "Abfrage1". Die "ID" bereiten keine Schwierigkeiten, weil ein Komponist nur eine Zeile in der Tabelle belegt = nur eine "ID" hat.


Wenn der selbe Komponist mehrere Zeilen der Tabelle belegt, hat er auch mehrere "ID".
(
ID1, Komponist1, Werk1
ID2, Komponist1, Werk2
ID3, Komponist1, Werk3
)
Dann wird es komplizierter. Wie sehr, hängt von der Datenstruktur der vorhandenen Tabelle ab (Name und Vorname in getrennten Spalten, oder in einer. Unterschiedliche Schreibweisen des selben Komponisten, mögliche Schreibfehler usw.) Da sind dann mehr Infos von Deiner Seite erforderlich. Am Besten wieder als Beispiel-DB.

Gruß

acco

Re: Umstieg von Bento auf LO Base

Verfasst: Mi 4. Jun 2014, 22:51
von RobertG
Hallo *,

bei dem grafischen Abfrageeditor ist in der Tat seit einiger Zeit etwas faul. Wenn Du in einem Feld etwas auswählst und daraufhin nicht noch einmal neben das Feld klickst, dann wird die Einstellung nicht übernommen. Öffne ich den Editor, wähle eine Tabelle, gehe dann auf "Feld" und suche ein Feld aus, gehe dann auf "Abfrage ausführen" so kommt eine Fehlermeldung "Es fehlt eine Selektion". Gehe ich nicht direkt nach "Abfrage ausführen", sondern erst einmal in die zweite Spalte mit "Feld", dann wird die Auswahl angenommen und später auch angezeigt.

Irgendwo gibt es dazu auch eine Bugmeldung.

Gruß

Robert

Re: Umstieg von Bento auf LO Base

Verfasst: Do 5. Jun 2014, 10:09
von Acco
Hallo *,

das ist beinahe lustig mit dem Bug. Jetzt kann ich ihn auch nachvollziehen, mit der beschriebenen Vorgehensweise. Allerdings mache ich das nicht so, weil bei mir im jeweiligen Feld erst die Auswahl lesbar ist, wenn ich das Feld wieder verlassen habe.

Ein Feld das den Cursor besitzt, ist hier einfach nur eine weiße Fläche. Also ein anderer Bug, an den ich mich aber so gewöhnt habe, das er mir nicht mehr auffällt. Im Zusammenhang mit dem Anderen ist es ja beinahe ein "Feature".

Gruß

acco

PS: Beim einfügen eines Feldes per Doppelklick funktioniert alles einwandfrei, das Feld ist lesbar und auch in der Auswertung enthalten.