Base gegen Access austauschen?

Hallo,

anlässlich einer Anfrage vom Mitmachformular wollte ich nur nochmal
sicher gehen, dass ich bei meiner u.a. Antwort nicht grob daneben
gegriffen habe (habe schon lange nicht mehr mit Base oder Makros
gearbeitet), die ich dem Anfrager geschickt habe. Sollte etwas Wichtiges
fehlen oder falsch sein, bitte ich um Korrektur/Ergänzung. Danke.

Nino

-------- Original-Nachricht --------

Hallo Nino,

Hallo Nino,

Eine Access-Datenbank kann zwar vom Datenbank-Modul LibreOffice Base aus
angesprochen werden, das geht aber nur mittels ODBC-Treiber. Access muss
daher auf dem betreffenden Rechner trotzdem installiert sein und laufen.

Das ist IMHO nicht ganz richtig!
Es genügt wenn der Datenbanktreiber installiert ist und soweit ich weiß bringt BASE auch einen eigenen Access-Treiber mit (Auswahlmöglichkeit JDBC, ODBC und MS Access beim Öffnen-Dialog).

Hinzu kommt, dass die von Base verwendete interne Datenbank (HSQLDB) in
ihrer momentanen Version etwas langsam und fehlerträchtig ist, so dass
man LibreOffice Base zurzeit nicht unbedingt als "Standalone"-Datenbank
verwenden sollte. Diesen Sommer soll aber die HSQLDB durch Firebird
ersetzt werden, so dass zumindest eine Hoffnung auf Besserung für die
kommenden Versionen besteht.

Damit machst du BASE schlecht und meinst nur HSQLDB.
BASE ist die GUI die über Treiber auf eine Datenbank (z. B. MySQL, PostgreSQL wenn es dann eine richtige Datenbank sein soll) zugreift, das muss nicht HSQLDB sein.
Ist Firebird eine Datenbank? Hab ich noch nichts davon gehört aber wenn du da mehr Infos hast...

Hallo Nino,

ich wollte eigentlich wissen ob man eine Datenbank-Anwendung (eigenes
Programm bestehend aus Formularen und) aus MS-Access in LibreOffice
übernehmen kann?

Nein, das geht nicht.

Eine Access-Datenbank kann zwar vom Datenbank-Modul LibreOffice Base aus
angesprochen werden, das geht aber nur mittels ODBC-Treiber. Access muss
daher auf dem betreffenden Rechner trotzdem installiert sein und laufen.

Kann eigentlich nicht sein. Ich habe noch nie eine Access-Datenbank
getestet, aber unter Linux gibt es z.B. die mdbtools und eine
entsprechende ODBC-Verbindung.
Außerdem gibt es hier einen Treiber für die direkte Verbindung, der aber
schon recht alt ist:
http://www.openoffice.org/dba/drivers/mdb/index.html

Auch was das Portieren von Anwendungen betrifft: Das in LibreOffice
verwendete StarBasic weicht von Microsofts VBA, vor allem in Bezug auf
das Objektmodell, recht stark ab, so dass eine Portierung - wenn
überhaupt - nur mit einem nicht unerheblichen Aufwand möglich ist.

Nicht jede Datenbank muss zwangsläufig mit Makros daher kommen. Das geht
auch ganz gut ohne ...

Hier
wäre u.U. eine Neu-Programmierung die bessere Variante, zumal in
LibreOffice mittlerweile wohl auch unter Python programmiert werden kann
(ich habe es noch nicht ausprobiert).

Das Wichtige werden wohl die Daten sein, und an die kommt der User schon
ran. Abfragen, Formulare und Berichte müssen allerdings neu gebaut
werden. Hier ist sicher die Orientierung in Richtung der folgenden Foren
sinnvoll:
http://www.libreoffice-forum.de/viewforum.php?f=10
http://de.openoffice.info/viewforum.php?f=8

Bei Formularen gibt es da etwas unterschiedliche Nutzungskonzepte.
Access-Nutzer scheinen ein Listenfeld vor allem als Auswahlfeld zum
Filtern zu nutzen und wenig mit Tabellenkontrollfeldern zu tun zu haben
- wie gesagt: Access kenne ich nicht weiter, aber die Nachfragen in den
Foren lassen darauf schließen.

Hinzu kommt, dass die von Base verwendete interne Datenbank (HSQLDB) in
ihrer momentanen Version etwas langsam und fehlerträchtig ist, so dass
man LibreOffice Base zurzeit nicht unbedingt als "Standalone"-Datenbank
verwenden sollte.

Langsam bei Datenmengen ab deutlich über 10000 Datensätzen in einer
Tabelle - das muss wohl dazu gesagt werden. Fehlerträchtig kann ich
nicht bestätigen. Das einzige anfällige Modul ist der Report-Builder.
Und der ist tatsächlich nur beim Editieren sehr absturzgefährdet.

Diesen Sommer soll aber die HSQLDB durch Firebird
ersetzt werden, so dass zumindest eine Hoffnung auf Besserung für die
kommenden Versionen besteht.

Na ja, eine Umstellung auf eine andere Datenbank wird schon lange
diskutiert. Als damals OOo 3.2 raus kam wurde angegeben, dass die
nächste Vollversion (also 4.*) mit einer neuen internen Datenbank laufen
würde. Und das ist bisher einige Jährchen her. Momentan wird die
Diskussion auch noch geführt:
https://bugs.freedesktop.org/show_bug.cgi?id=51781

So einfach ist schließlich nicht der Ersatz. Immerhin müssen ja die
alten Datenbanken weiter parallel genutzt werden können, und das
verlangt dann wohl einen erheblichen Mehraufwand an Programmierung
(interne alte HSQLDB und interne xyzDatenbank). Da gibt es zwar viele
Leute, die sich eine neue interne Datenbank wünschen, aber nur sehr
wenige, die in der Beziehung auch irgendetwas umsetzen könnten.

Gruß

Robert

Hallo zusammen,

um es knapp zusammenzufassen:

Unter Windows ist es möglich, mit Base auf das
Datenbank-Manangement-System, dass Access verwendet, zuzugreifen und
damit auf die Tabellen im mdb bzw accdb(ab Version 2007)-Format. Der
dazu benötigte ODBC-Treiber wird von Windows - nicht vom Office -
mitgeliefert.

Unter Linux sieht das anders aus. Es gibt *keinen* entsprechenden
ODBC-Treiber für Linux von Microsoft.

Das Programm "mdbtools" ermöglicht ein Lesen der Tabellen - meines
Wissens nur der *.mdb Dateien. Für eine weitergehende Nutzung als
graphische Oberfläche ist es nicht geeignet.

Somit bleibt unter Linux nur das Reenginieren der Oberfläche oder das
Programmieren in eine der verfügbaren Makro-Sprachen.

Gruß

Mechtilde

Hallo alle DB-Spezialisten,

vielen Dank für die schnellen Antworten!

Ist schon schwierig, so allgemein auf etwas zu antworten, wenn man
selbst nie so was gemacht hat. Es wäre u.U. gut, wenn die dazu
verfügbaren Infos mal kurz und knapp zusammengefasst oder auch nur auf
einer Seite verlinkt würden. Auf Grund der großen Beliebtheit von Access
wäre das sicherlich eine sinnvolle Doku für Migrationswillige.

Mechtilde (Herzlich Willkommen übrigens hier!) hatte ja im OOoWiki mal
alle Links zu Datenbankinfos[1] zusammengefasst, das fand ich ziemlich
hilfreich. Vielleicht finden sich ja Interessierte, die das ein wenig
aktualisieren und mit LibreOffice in Einklang bringen möchten :slight_smile:

Ich selber bin zwar sehr an Datenbank-Anwendungen interessiert, aber
leider im Moment mit anderen Dingen beschäftigt.

Grüße an alle
Nino
[1] http://wiki.openoffice.org/wiki/Database

Hallo Nino,

Ist schon schwierig, so allgemein auf etwas zu antworten, wenn man
selbst nie so was gemacht hat. Es wäre u.U. gut, wenn die dazu
verfügbaren Infos mal kurz und knapp zusammengefasst oder auch nur auf
einer Seite verlinkt würden. Auf Grund der großen Beliebtheit von Access
wäre das sicherlich eine sinnvolle Doku für Migrationswillige.

Das Blöde an Access und seiner Anbindung ist, dass viele der Leute, die
mit Base arbeiten Leute aus der Linuxszene sind. Die haben mit so einer
Anbindung nichts am Hut, sondern können auch erst einmal nur Vermutungen
aufstellen. Bevor ich lange mit den mdbtools testen würde hätte ich eher
jemand mit Access gefragt, der mir alle Tabellen schlicht in eine
Tabellenkalkulationsdatei gezogen hätte, aus der heraus ich mir dann die
Tabellen in Base neu gebildet hätte.

Aus dem Grund heraus fehlt so eine Dokumentation auch im Base-Handbuch.
Da kommt schlicht nur das rein, was ich vor Ort auch nachvollziehen kann.

Mechtilde (Herzlich Willkommen übrigens hier!) hatte ja im OOoWiki mal
alle Links zu Datenbankinfos[1] zusammengefasst, das fand ich ziemlich
hilfreich. Vielleicht finden sich ja Interessierte, die das ein wenig
aktualisieren und mit LibreOffice in Einklang bringen möchten :slight_smile:

[1] http://wiki.openoffice.org/wiki/Database

Da sind mit Sicherheit viele wichtige Links drin, die auch weiter
verfolgt werden sollten.
Zusätzliche, für mich unentbehrliche, Quellen sind die entsprechenden
Bereiche des OpenOffice-Forums und des LibreOffice-Forums. Und natürlich
das Kapitel im "Erste Schritte Handbuch" sowie das Base Handbuch:
http://de.libreoffice.org/hilfe-kontakt/handbuecher/

Gruß

Robert

Ist Firebird eine Datenbank?

Die Transaktionssicherheit von Firebird ist jedenfalls weitaus
vertrauenerweckender als die von MySQL.

MfG,

Wolfgang

Bevor ich lange mit den mdbtools testen würde hätte ich eher jemand
mit Access gefragt, der mir alle Tabellen schlicht in eine
Tabellenkalkulationsdatei gezogen hätte, aus der heraus ich mir dann
die Tabellen in Base neu gebildet hätte.

Ein SQL-Dump, den man im Texteditor per "Suchen und Ersetzen"
kompatibel mit einem vernünftigen Client-Server RDBMS (wie z.B.
PostgreSQL) machen kann ist da noch viel einfacher.

MfG,

Wolfgang

Hallo Wolfgang,

Ist Firebird eine Datenbank?

Die Transaktionssicherheit von Firebird ist jedenfalls weitaus
vertrauenerweckender als die von MySQL.

Auch an der Stelle noch mal meine Frage von gestern wiederholt:
Laufen unter Firebird die alten LibO-HSQLDB-Datenbanken dann aber
ebenso unverändert weiter?

Wolfgang

.... und tschüss

            Franklin

Hallo Wolfgang,

Bevor ich lange mit den mdbtools testen würde hätte ich eher jemand
mit Access gefragt, der mir alle Tabellen schlicht in eine
Tabellenkalkulationsdatei gezogen hätte, aus der heraus ich mir dann
die Tabellen in Base neu gebildet hätte.

Ein SQL-Dump, den man im Texteditor per "Suchen und Ersetzen"
kompatibel mit einem vernünftigen Client-Server RDBMS (wie z.B.
PostgreSQL) machen kann ist da noch viel einfacher.

Nur geht das für den Nutzer, von dem Nino geschrieben hat, vermutlich am
Thema vorbei. Die meisten, die neu in LO-Base einsteigen wollen meinen
zuerst einmal die Lösung mit der internen HSQLDB. Da wird nicht an
irgendwelche Serverkonstruktionen gedacht.

Gruß

Robert

Hallo Franklin,

Auch an der Stelle noch mal meine Frage von gestern wiederholt:
Laufen unter Firebird die alten LibO-HSQLDB-Datenbanken dann aber
ebenso unverändert weiter?

Vielleicht hast Du nicht alle Beiträge des Threads gelesen.

Zum einen ist noch gar nicht ausdiskutiert, welche Datenbank die in die
Tage gekommene HSQLDB ersetzen soll (die Diskussion dauert schon Jahre -
sie ist älter als LO selbst). Zum anderen muss natürlich für Nutzer der
alten Datenbank weiterhin eine Verbindung zur HSQLDB vorgehalten werden.
Schließlich gibt es Leute, die weiterhin zwischen verschiedenen
Officeversionen einen Austausch herbeiführen wollen. Da wird wohl,
ähnlich wie bei verschiedenen Dateiformaten von OpenOffice/LibreOffice
eine ganze Zeit lang mit zwei internen DBs gearbeitet werden.

Gruß

Robert

Hallo Robert,

Hallo Franklin,

Auch an der Stelle noch mal meine Frage von gestern wiederholt:
Laufen unter Firebird die alten LibO-HSQLDB-Datenbanken dann aber
ebenso unverändert weiter?

Vielleicht hast Du nicht alle Beiträge des Threads gelesen.

Zum einen ist noch gar nicht ausdiskutiert, welche Datenbank die in die
Tage gekommene HSQLDB ersetzen soll (die Diskussion dauert schon Jahre -
sie ist älter als LO selbst). Zum anderen muss natürlich für Nutzer der
alten Datenbank weiterhin eine Verbindung zur HSQLDB vorgehalten werden.
Schließlich gibt es Leute, die weiterhin zwischen verschiedenen
Officeversionen einen Austausch herbeiführen wollen. Da wird wohl,
ähnlich wie bei verschiedenen Dateiformaten von OpenOffice/LibreOffice
eine ganze Zeit lang mit zwei internen DBs gearbeitet werden.

Ach so ... danke!

Robert

.... und tschüss

            Franklin

>> Ist Firebird eine Datenbank?
>
> Die Transaktionssicherheit von Firebird ist jedenfalls weitaus
> vertrauenerweckender als die von MySQL.

Auch an der Stelle noch mal meine Frage von gestern wiederholt:
Laufen unter Firebird die alten LibO-HSQLDB-Datenbanken dann aber
ebenso unverändert weiter?

Nein.

Die Daten extrahiert man per SQL Dump und lädt sie in
Firebird/PostgreSQL neu. Die Formulare, Berichte, kann man
weiterverwenden.

PostgreSQL funktioniert schon heute "nativ" (SDBC-Treiber) mit LO Base.

"Eingebettete" Datenbanken halte ich im Bürobereich generell für
Quatsch, da sie das Grundprinzip der Wiederverwendung ad absurdum
führen. Wiederverwendung von Daten ist aber nunmal *die* "Raison d'être"
von Datenbanken.

MfG,

Wolfgang

>> Bevor ich lange mit den mdbtools testen würde hätte ich eher jemand
>> mit Access gefragt, der mir alle Tabellen schlicht in eine
>> Tabellenkalkulationsdatei gezogen hätte, aus der heraus ich mir
>> dann die Tabellen in Base neu gebildet hätte.
>
> Ein SQL-Dump, den man im Texteditor per "Suchen und Ersetzen"
> kompatibel mit einem vernünftigen Client-Server RDBMS (wie z.B.
> PostgreSQL) machen kann ist da noch viel einfacher.

Nur geht das für den Nutzer, von dem Nino geschrieben hat, vermutlich
am Thema vorbei. Die meisten, die neu in LO-Base einsteigen wollen
meinen zuerst einmal die Lösung mit der internen HSQLDB. Da wird
nicht an irgendwelche Serverkonstruktionen gedacht.

Das ganze Konzept von Datenbanken, die inklusive dem
Datenbank-Managementsystem und den Formularen, Berichten etc. in ein
einziges "Dokument" "eingebettet" sind ist imho einfach Unfug.

Das ist genau das Problem sowohl mit Access als auch mit LO Base; daß
es Benutzer, die noch keine Ahnung haben, in völlig falsche Bahnen
lenkt. Anstatt von vorneherein einen Ansatz zu verfolgen, der
zweckmäßig ist.

MfG,

Wolfgang

Hallo Wolfgang,

Das ganze Konzept von Datenbanken, die inklusive dem
Datenbank-Managementsystem und den Formularen, Berichten etc. in ein
einziges "Dokument" "eingebettet" sind ist imho einfach Unfug.

Das ist genau das Problem sowohl mit Access als auch mit LO Base; daß
es Benutzer, die noch keine Ahnung haben, in völlig falsche Bahnen
lenkt. Anstatt von vorneherein einen Ansatz zu verfolgen, der
zweckmäßig ist.

Mag Deine Erfahrung mit Base sein. Ich kenne viele, die Base in dem
Zustand, wie es jetzt ist, mit der internen Datenbank erfolgreich
nutzen. Was für den einen Unfug ist, ist für den anderen eben genau das,
was passend ist.

Gruß

Robert

Hallo Wolfgang,
>
> Das ganze Konzept von Datenbanken, die inklusive dem
> Datenbank-Managementsystem und den Formularen, Berichten etc. in ein
> einziges "Dokument" "eingebettet" sind ist imho einfach Unfug.

^^^^^^^^^^^^^^^^^^^^^^und wie das Ganze "technisch" gelöst, insbesondere
gespeichert ist, ändert m.E. am Konzept zunächst einmal nichts.

>
> Das ist genau das Problem sowohl mit Access als auch mit LO Base; daß
> es Benutzer, die noch keine Ahnung haben, in völlig falsche Bahnen
> lenkt. Anstatt von vorneherein einen Ansatz zu verfolgen, der
> zweckmäßig ist.
>
Mag Deine Erfahrung mit Base sein. Ich kenne viele, die Base in dem
Zustand, wie es jetzt ist, mit der internen Datenbank erfolgreich
nutzen. Was für den einen Unfug ist, ist für den anderen eben genau das,
was passend ist.

Solange es um 1-Benutzer-Betrieb geht, sehe ich da auch keinerlei
Probleme.

Wieso führen ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^?
Versteh' ich nich' ?:expressionless:

Ich kenne viele, die Base in dem Zustand, wie es jetzt ist, mit der
internen Datenbank erfolgreich nutzen. Was für den einen Unfug ist,
ist für den anderen eben genau das, was passend ist.

Das Grundprinzip der Wiederverwendung von Daten muß man halt erst
einmal kapiert haben, bevor man überhaupt wissen kann, wofür EDV gut
sein kann. Die üblichen Datenmüllhalden auf Büro-PCs und -Servern
sprechen da recht deutlich für sich bzw. gegen die EDV-Kompetenz des
typischen Nutzers. Und gegen die des typischen IT-Managers bzw.
Windows-"Admins" übrigens auch.

MfG,

Wolfgang

> "Eingebettete" Datenbanken halte ich im Bürobereich generell für
> Quatsch, da sie das Grundprinzip der Wiederverwendung ad absurdum
Wieso führen ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^?
Versteh' ich nich' ?:expressionless:

Daten, die in *ein* Dokument "eingebettet", sind, lassen sich nur
umständlich an anderer Stelle wiederverwenden. Und wenn man dann nach
hundert mal exportieren per SQL-Dump und neu laden die letztendlich
gleichen Daten an hundert verschiedenen Stellen "eingebettet" hat,
werden sie zwangsläufig inkonsistent, d.h. zu Datenmüll. Deshalb hält
man Daten immer an einem einzigen Ort zentral.

*Das* Grundprinzip jeglicher Datenbankarbeit lautet demzufolge:

"Es kann immer nur *eine* Wahrheit geben".

MfG,

Wolfgang