You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@openoffice.apache.org by Alfred Ocenasek <al...@aon.at> on 2013/03/21 16:08:50 UTC

Accsess Datenbank importieren

Hallo, habe mir soeben Apache Open Office für Apple heruntergeladen. Es wurde mir gesagt, dass ich damit auch Windows-Accsess-Datenbanken importieren und bearbeiten kann. Nun finde ich keine Dokumentation wie ich das handeln soll. Kann mir jemand helfen?
AO
---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org


RE: Accsess Datenbank importieren

Posted by Jan-Christian Wienandt <ja...@wienandt.de>.
Moin Alfred,

> Hallo, habe mir soeben Apache Open Office für Apple heruntergeladen. Es
> wurde mir gesagt, dass ich damit auch Windows-Accsess-Datenbanken
> importieren und bearbeiten kann. Nun finde ich keine Dokumentation wie ich
> das handeln soll. Kann mir jemand helfen?

grundsätzlich kann keine Datenbank importiert werden.
Lediglich die einzelnen Tabellen, also die reinen Daten, können, falls ein
entsprechender Treiber vorhanden ist,
importiert werden. 

Grundsätzlich ist der Ansatz von Ernst richtig. Einen reinen Import in Base,
also die Datenbank HSQLDB,
klappt nur über das CSV-Format. So habe ich es bei mir auch gelöst. Mittels
Makro habe ich mir eine 
Import / Exportfunktion geschrieben. Das CSV Dateiformat hat sich
mittlerweile zu einem Standard-Austauschformat
entwickelt. So tausche ich Daten zwischen Oracle, Access und Excel aus, gilt
für den Export und Import.

Es gibt aber noch einen kleinen Trick in Base um die Inhalte der
Access-Tabellen zu kopieren.

Hier ist ein Link auf meine Anleitung zu Base:

http://www.wienandt.de/download/datenbank_teil_1_version_3.pdf

Dann gibt es noch ein Tool von Roberto Benitz, welches eine CSV-Datei nach
Base importiert.
Der Link hierauf ist:

http://baseprogramming.com/resources.html

Es ist der Link: Data Import Wizard Extension

Solltest Du Abfragen in Deiner Access Datenbank einsetzen, können diese auch
nur über einen Trick 
importiert werden. Allerdings kann Base in der Oberfläche nur reine
Select-Abfragen ausführen.

Kopiere, falls noch möglich, aus der SQL-Ansicht der Access-Abfragen die
entsprechenden SQL-Anweisungen
in eine Textdatei. Aus dieser kopierst Du diese dann in die SQL-Ansicht der
Base-Abfragen. Jetzt muss lediglich
der SQL-String in die Syntax von Base umgesetzt werden. Über diesen Weg
konnte ich einer Anwenderin helfen
und Abfragen von PostgreSQL nach Base zu importieren.



Gruß
Jan




---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org


Re: Accsess Datenbank importieren

Posted by "E.J.Minhorst" <sa...@ejomi.de>.
Am Do, 21.03.2013, 16:08 schrieb Alfred Ocenasek:
> Hallo, habe mir soeben Apache Open Office für Apple heruntergeladen. Es
> wurde mir gesagt, dass ich damit auch Windows-Accsess-Datenbanken
> importieren und bearbeiten kann. Nun finde ich keine Dokumentation wie ich
> das handeln soll. Kann mir jemand helfen?
> AO
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
> For additional commands, e-mail: users-de-help@openoffice.apache.org
>
Hallo Alfred!

Aus eigener Erfahrung mit Anbindungen von ACCESS-Datenbanken unter Windwos
kann ich berichten, dass die ODBC-Anbindung mit OO zwar ganz gut klappt
aber je nach Datenbank-Inhalt und verwendetem Zeichensatz nicht alle
Sonderzeichen und Symbole korrekt unter OO dargestellt werden.

Auch das nachträgliche Ändern des Datenbank-Layouts der MDB-Datei unter
OO funktioniert ebenfalls nicht bzw. oft fehlerhaft, d.h. solche Änderungen
sollten grundsätzlich nur in der ACCESS-Umgebung gemacht werden!

Datenbank-Inhalte in die OO-eigene HSQL-Datenbank zu importieren funktioniert
leider nur über den Umweg eines Textdaten-Imports, weil HSQL den SQL-Befehl
"COPY TableName (...) FROM 'SourceFile' DELIMITERS ';' CSV;" nicht kennt!

Der Import in eine PostGres-DB funktioniert mit diesem Ausdruck prima,
man muß aber auch hier auf den richtigen Zeichensatz achten - ältere
ACCESS-Versionen exportieren kein UTF-8, d.h. Darstellungsprobleme unter OO!

In beiden Fällen muss zunächst der Datenbank-Inhalt von ACCESS als reine
Textdatei exportiert werden (= betreffende Tabelle anklicken, rechte Maus-
taste Kontextmenü "Exportieren", Dateityp "Textdateien *.txt; *.csv: *.tab).

Weil OO am liebsten UTF-8 kodierte Daten möchte, muß umgefort werden. Zur
Datenumformung gibt es diverse Freeware-Programme (z.B. "MOJICOCO").

Die so vorbereitete Textdatei kann dann unter OO mit den SimpleFileAccess-
Methoden z.B. in einen Array zwischengespeichert werden und anschliessend
mit den SQL-Statement "INSERT INTO" in die HSQL-Datenbank importiert werden
oder mit "COPY" zum externen Datenbank-Server (z.B. PGSQL) geschickt werden.

Hat man das geschafft, kann man natürlich den BASIC-Code zum Importieren
wieder löschen um lokal Ressourcen zu sparen. Ab dann kann man ganz normal
unter OO mit den importieren Daten arbeiten - eine Rückkoplung zu den
Ursprungsdaten von ACCESS ist dann natürlich  N I C H T  mehr gegeben!

Die SQL-Abfragen zum Einfuegen von Daten in die HSQL-Datenbank sind
nicht ganz einfach - wer sich aber ein bißchen in das Thema hineinfizzt,
wird schon irgendwann zurecht kommen!

Nachfolgend habe ich mal einen Prinzip-Code einkopiert, der alle wichtigen
Datenbank-Aktionen zum HSQL-Befüllen zeigt. Viel Spaß beim Ausprobieren
und tüfteln!

Gruß: Ernst

' Tabellen-Name golbal vordefinieren:
Global Const TableName As String = "MyHsqlTable"
' Ein Daten-Array zum Einfuegen von DB-Daten (als Beispiel):
Global aDataArray(100, 4)
' Global verfuegbare Handler zur Datenbank-Verbindung:
Global BaseConnection, BaseStatement

Sub Main()
    Dim i As Integer
    ' Datenbank-Verbindung aufbauen:
    If ConnectBase() = True Then
        'Tabelle erzeugen:
        BaseStatement.Execute (CreateTable(TableName))
	' Alle Daten aus dem Array in die Tabelle einfuegen:
        For i = =LBound(aDataArray) To UBound(aDataArray)
            ' Zuerst die Datenzeile als SQL-String vorbereiten:
            SQL = PrepareInserts(TableName, aDataArray(i, 0),
aDataArray(i, 1), aDataArray(i, 2), aDataArray(i, 3))
            ' Dann das SQL-Kommando zum Einfuegen ausfuehren:
            BaseStatement.executeUpdate (SQL)
        Next
        ' Datenbank-Verbindung schliessen:
        DisconnectBase
    End If
End Sub

Function PrepareInserts(TableName, sStringVar As String, iNumericVar As
Integer, lNumericVar As Long, dDateVar As Date)
    Dim sSQL As String
    Const TableName = "permit"
    sSQL = "INSERT INTO " & TableName & " (" & _
        "datastring, " & _
        "littlenumber, " & _
        "bignumber, " & _
        "datestring) " & _
        "VALUES(" & _
        "'" & sStringVar & "'," & _
        "'" & iNumericVar & "'," & _
        "'" & lNumericVar & "'," & _
        "'" & dDateVar & "'" & _
        ");"
    PrepareInserts = sSQL
End Function

Function CreateTable(TableName)
    Dim sSQL As String
    ' Achtung: Das Feld "dataid" ist ein Auto-Increment Feld fuer HSQL!
    sSQL = "CREATE TABLE " & TableName & " (" & _
        "dataid INTEGER NOT NULL IDENTITY, " & _
        "datastring VARCHAR(40), " & _
        "littlenumber SMALLINT, " & _
        "bignumber BIGINT, " & _
        "datestring TIMESTAMP, " & _
        ");"
    CreateTable = sSQL

End Function

Function ConnectBase() As Boolean
    BaseConnection = GetConnectionHSQL()
    If Not IsNull(BaseConnection) Then
        MsgBox "Datenbankverbindung hergestellt."
        BaseStatement = BaseConnection.createStatement()
        ConnectBase = True
    Else
        MsgBox "Datenbankverbindung konnte nicht hergestellt werden!"
    End If
End Function

Function GetConnectionHSQL()
    Dim sURL As String, oDatabaseContext, oDataSource, oConnection,
oInteraction, sPathToMyBase, sRegisteredBaseName
    ' ACHTUNG - BITTE ANPASSEN: Standort (Pfad) dieser Base-Datenbank bzw.
registrierter DB-Name:
    sPathToMyBase = "C:\Dokumente und
Einstellungen\%USERNAME%\MeineDatenbanken\DieseDatenbank.odb"
    sRegisteredBaseName = "MYTESTDATABASE"
    ' Kontext fuer Datenbankverbindungen bereitstellen:
    oDatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
    ' Datenquelle über seinen registrierten Namen definieren:
        'oDataSource = oDatabaseContext.getByName(RegisteredBaseName)
    ' Datenquelle über den eigenen, absoluten  U R L - P f a d  definieren:
        sURL = ConvertToURL(sPathToMyBase)
        oDataSource = oDatabaseContext.getByName(sURL)
    ' Verbindung herstellen (mit oer oder Anmelde-Menue):
    If Not oDataSource.IsPasswordRequired Then
        oConnection = oDataSource.GetConnection("", "")
    Else
        oInteraction =
createUnoService("com.sun.star.sdb.InteractionHandler")
        oConnection = oDataSource.ConnectWithCompletion(oInteraction)
    End If
    GetConnectionHSQL = oConnection
End Function

Function DisconnectBase()
    On Error GoTo DisConErr
    BaseStatement.dispose
    BaseConnection.close()
    BaseConnection.dispose
Exit Function
DisConErr:
    MsgBox "Datenbankverbindung konnte nicht getrennt werden!"
End Function


---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org


Re: Accsess Datenbank importieren

Posted by Jörg Schmidt <jo...@j-m-schmidt.de>.
Nachtrag:

Hier ist noch ein Video, welches die Anbindung in OOo 3.1 zeigt, welche identisch
zur aktuellen Version AOO sein sollte:
http://www.youtube.com/watch?v=e8lBfpN2M2w

Wobei hier nicht per ODBC angebunden wird, ODBC-Anbindung ginge aber genauso.


Gruß
Jörg 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org


Re: Accsess Datenbank importieren

Posted by Jörg Schmidt <jo...@j-m-schmidt.de>.
Hallo, 

> From: Alfred Ocenasek [mailto:alfoce@aon.at] 

> Hallo, habe mir soeben Apache Open Office für Apple 
> heruntergeladen. Es wurde mir gesagt, dass ich damit auch 
> Windows-Accsess-Datenbanken importieren und bearbeiten kann. 
> Nun finde ich keine Dokumentation wie ich das handeln soll. 
> Kann mir jemand helfen?

Du kannst eine Access-Datenbank z.B. per ODBC anbinden, wie in der Anleitung:
http://www.openoffice.org/de/doc/howto/datenquelle/pdf/access_datenbanken.pdf

beschrieben. Diese Anleitung bezieht sich auf OOo 1.x, gilt aber sinngemäß auch
für neuere OOo/AOO-Versionen.

In OOo 3.3.0, geht es ungefähr so:
-Datei-Neu-Datenbank
-Verbindung zu einer bestehenden Datenbank herstelllen / ODBC
-Weiter
-Durchsuchen
-Verwalten
-Hinzufügen (und den Access-ODBC-Treiber wählen und die gewünschte mdb-Datei
zuordnen)
-diese gerade erzeugte ODBC-Quelle nun wählen
-weiter durch den Dialog in OOo klicken

Ich habe mich aktuell davon überzeugt das das Ganze unter Windows7 mit OOo 3.3.0
und der ODBC-Treiberversion 6.01.7601.17632 für eine mit Access 2003 erstellte
Datenbank/mdb-Datei funktioniert.

Das Ganze ist kein Öffnen der mdb-Datei im Eigentlichen sondern nur ein Anbinden
der Datenbank an OPenOffice, so dass sie von dort aus bearbeitet werden kann,
wobei die eigentlichen Schreibvorgänge der ODBC-Treiber übernimmt und nicht OO.
Weil nur die Daten (Tabellen und Abfragen) angebunden sind steht das ggf. in
Acccess erstellte Frontend für die dAtenbank (also z.B. Eingabedisloge) nicht zur
Verfügung und muß nötigenfalls in OOo neu erstellt werden. Nur Daten bearbeiten
geht aber auch in OOo/Base direkt in den Datentabellen, durch normale Eingabe.


Gruß
Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org


Re: Accsess Datenbank importieren

Posted by Jörg Schmidt <jo...@j-m-schmidt.de>.
Hallo, 

> From: Mechtilde [mailto:ooo@mechtilde.de] 

> beachtet bitte, dass Alfred einen Mac nutzt und dort AOO 
> installiert hat.
> 
> Mir ist nicht bekannt, dass es einen Access-ODBC Treiber für 
> Mac OSX gibt.

Z.B.
http://blog.petermolgaard.com/2011/11/22/working-with-access-databases-mdb-files-o
n-mac-osx/


Gruß
Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org


Re: Accsess Datenbank importieren

Posted by Jörg Schmidt <jo...@j-m-schmidt.de>.
> From: Christian Palm [mailto:chris62718@web.de] 

> dieser Teil ist mir auch bekannt. Nur ging es ja um das 
> exportieren und 
^^^^^^^^^^^^^^
> nicht nur um das anschauen.

> Geht doch bei mir nicht so sehr um das, 
                    ^^^^^^
auch von mir angesprochene 
> exportieren, sondern 
^^^^^^^^^^^^
^


Exportieren ... nicht Exportieren?

Vielleicht wirst Du Dir selbst erst mal einig oder verzichtest sonst besser auf
das Posten.



Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org


Re: Accsess Datenbank importieren

Posted by Christian Palm <ch...@web.de>.
Hallo,

Am 21.03.2013 21:22, schrieb Jörg Schmidt:
>> Hallo,
>>   
>>> From: Christian Palm [mailto:chris62718@web.de]
>>> so weit ich weiß, gibt es immer noch kleinen Access Viewer,
>> http://www.igfd.org/?q=access+viewer
Gut zu wissen, danke.

>>
>> Diverse Programme nutzen das Access-Format, z.B. 
>> http://www.ezadressen.de/ Ebenso ist es möglich Access-Anwendungen 
>> 'standalone' weiterzugeben, wobei der Endnutzer keine eigene 
>> Access-Installation zur Ausführung benötigt, Voraussetzung 

dieser Teil ist mir auch bekannt. Nur ging es ja um das exportieren und 
nicht nur um das anschauen.
>>
>>> Ic h will mir die Mühe machen wenigstens meine Datensätze über Excel
>>> Export zu erhalten. Weiß nur noch nicht genau wie,
>> In Access Kontextmenü auf der Datentabelle anzeigen und Menüpunkt "Exportieren..."
>> wählen.
Geht doch bei mir nicht so sehr um das, auch von mir angesprochene 
exportieren, sondern das zusammenbasteln der Datensätze weil ja viele 
Bezüge auf Datensätze a<nderer Datenbanken bestehen.
>> Gruß
>> Jörg
>>
Gruß
Christian

---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org


Re: Accsess Datenbank importieren

Posted by Mechtilde <oo...@mechtilde.de>.
Hallo zusammen,

beachtet bitte, dass Alfred einen Mac nutzt und dort AOO installiert hat.

Mir ist nicht bekannt, dass es einen Access-ODBC Treiber für Mac OSX gibt.

Gruß

Mechtilde

Am 21.03.2013 21:22, schrieb Jörg Schmidt:
> Hallo,
>  
>> From: Christian Palm [mailto:chris62718@web.de] 
> 
>> so weit ich weiß, gibt es immer noch kleinen Access Viewer, 
> 
> http://www.igfd.org/?q=access+viewer
> 
>> weil das 
>> eben von MS kommt und sie es so gehalten haben, das ohne Access gar 
>> nichts geht.
> 
> Diverse Programme nutzen das Access-Format, z.B. http://www.ezadressen.de/
> 
> Ebenso ist es möglich Access-Anwendungen 'standalone' weiterzugeben, wobei der
> Endnutzer keine eigene Access-Installation zur Ausführung benötigt, Voraussetzung
> ist ggf. das die Access-Anwendung in einer geeigneten Accesss-Version erzeugt
> wird, bei MS Office 2000 war das die "Developer Edition", möglicherweise heißt
> diese heute in MSO 2010 'Enterprise Edition' oder sonstwie. 
> 
>> Ic h will mir die Mühe machen wenigstens meine Datensätze über Excel 
>> Export zu erhalten. Weiß nur noch nicht genau wie, 
> 
> In Access Kontextmenü auf der Datentabelle anzeigen und Menüpunkt "Exportieren..."
> wählen.
> 
> 
> Gruß
> Jörg
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
> For additional commands, e-mail: users-de-help@openoffice.apache.org
> 
> 



Re: Accsess Datenbank importieren

Posted by Jörg Schmidt <jo...@j-m-schmidt.de>.
Hallo,
 
> From: Christian Palm [mailto:chris62718@web.de] 

> so weit ich weiß, gibt es immer noch kleinen Access Viewer, 

http://www.igfd.org/?q=access+viewer

> weil das 
> eben von MS kommt und sie es so gehalten haben, das ohne Access gar 
> nichts geht.

Diverse Programme nutzen das Access-Format, z.B. http://www.ezadressen.de/

Ebenso ist es möglich Access-Anwendungen 'standalone' weiterzugeben, wobei der
Endnutzer keine eigene Access-Installation zur Ausführung benötigt, Voraussetzung
ist ggf. das die Access-Anwendung in einer geeigneten Accesss-Version erzeugt
wird, bei MS Office 2000 war das die "Developer Edition", möglicherweise heißt
diese heute in MSO 2010 'Enterprise Edition' oder sonstwie. 

> Ic h will mir die Mühe machen wenigstens meine Datensätze über Excel 
> Export zu erhalten. Weiß nur noch nicht genau wie, 

In Access Kontextmenü auf der Datentabelle anzeigen und Menüpunkt "Exportieren..."
wählen.


Gruß
Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org


Re: Accsess Datenbank importieren

Posted by Christian Palm <ch...@web.de>.
Hallo Alfred,

Am 21.03.2013 18:14, schrieb Mechtilde:
> Am 21.03.2013 16:08, schrieb Alfred Ocenasek:
>> Es wurde mir gesagt, dass ich damit auch Windows-Accsess-Datenbanken importieren und bearbeiten kann.
so weit ich weiß, gibt es immer noch kleinen Access Viewer, weil das 
eben von MS kommt und sie es so gehalten haben, das ohne Access gar 
nichts geht.

Ic h will mir die Mühe machen wenigstens meine Datensätze über Excel 
Export zu erhalten. Weiß nur noch nicht genau wie, weil als uralt 
Datenbank - Programmierer ohne SQL gibt es einige Datenbanken die zum 
Teil nur aus hinweisen an andere Datensätze in anderen Datenbanken 
bestehen, also ist es mir bisher zu Zeitaufwändig.

Also habe ich es noch nicht in Base umgewandelt.

Gruß
Christian

---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org


Re: Accsess Datenbank importieren

Posted by Mechtilde <oo...@mechtilde.de>.
Hallo Alfred,

ich weiß ja nicht, wer Dir das erzählt hat und was die oder der damit
gemeint hat. So wie Du es beschreibst, stimmt das leider so nicht.

AOO hat ein Base-Modul, dass Du als Oberfläche für eine Datenbank nutzen
kannst, z.B auch für Postgresql und Mysql.

Gruß

Mechtilde



Am 21.03.2013 16:08, schrieb Alfred Ocenasek:
> Hallo, habe mir soeben Apache Open Office für Apple heruntergeladen.
> Es wurde mir gesagt, dass ich damit auch Windows-Accsess-Datenbanken
> importieren und bearbeiten kann. Nun finde ich keine Dokumentation
> wie ich das handeln soll. Kann mir jemand helfen? AO 
> ---------------------------------------------------------------------
>
> 
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
> For additional commands, e-mail: users-de-help@openoffice.apache.org
> 
>