Seite 1 von 1

Abfrage aus Access übernehmen

Verfasst: Di, 21.10.2008 10:20
von lumpi90
Gibt es eine Möglichkeit in OOo 2.4 oder 3.0 eine Abfrage aus einer Access DB zu importieren ?
Wenn ich mich zur Access DB verbinde, erscheinen Abfragen in Base immer als Tabelle (egal ob direkt Verbindung zur MDB oder über ODBC oder ADO).

Leider hab ich selber kein Access, ich würde nur die Abfrage in Base benötigen, gibt es eine Möglichkeit diese Abfrage zu kopieren ?
Quasi das SQL Statement auszulesen? 8)

Re: Abfrage aus Access übernehmen

Verfasst: Di, 21.10.2008 15:01
von hawe
Hallo Lumpi,

bist DU sicher?
Zum Thema wäre das etwa wie folgt:

Code: Alles auswählen

Set oAC = CreateObject("Access.Application")
oAC.OpenCurrentDatabase "H:\...\.....mdb", False

actdb = oAC.CurrentDb
qrydef = actdb.QueryDefs
qry = qrydef.Item("NameOfQuery")
Msgbox qry.Name
msgbox qry.SQL

'oAC.Visible = True
oAC.Quit
Set oAC = Nothing

Re: Abfrage aus Access übernehmen

Verfasst: Di, 21.10.2008 22:36
von lumpi90
Hallo Hans,

danke für deine rasche Antwort. Ja ich habs mit einigen Datenbanken versucht, irgendwie erscheinen die Abfragen immer als Tabellen.
Leider funktioniert erhalt ich den Fehler "Das Modul kann nicht geladen werden, ungültiges Format." in der Zeile "Set oAC = CreateObject("Access.Application")"

Wie gesagt ich hab leider kein Access.

Re: Abfrage aus Access übernehmen

Verfasst: Mi, 22.10.2008 11:07
von hawe
Tja, dann kannst DU auch die Access-Bibliothek nicht ansprechen.
Du musst es dann mal mit ADO oder DAO versuchen. Etwa

Code: Alles auswählen

set con = createobject("adodb.connection")

DBtmp="DRIVER={Microsoft ACCESS DRIVER (*.mdb)};"
DBtmp= DBtmp & "DBQ=" & dbpfad
con.Open DBtmp
Den Rest musst Du debuggen oder nachlesen - hab ich nicht vorrätig...

Re: Abfrage aus Access übernehmen

Verfasst: Mi, 22.10.2008 15:51
von lumpi90
Danke für deine Hilfe.
Leider funktionierts so auch nicht :(

Code: Alles auswählen

set con = createobject("adodb.connection")

DBtmp="DRIVER={Microsoft ACCESS DRIVER (*.mdb)};"
DBtmp= DBtmp & "DBQ=" & dbpfad
con.Open DBtmp
actdb = oAC.CurrentDb
qrydef = actdb.QueryDefs
qry = qrydef.Item("NameOfQuery")
Msgbox qry.Name
msgbox qry.SQL

'oAC.Visible = True
oAC.Quit
Set oAC = Nothing
Da ich kein Programmierung bin kenn ich mich damit nicht wirklich aus.
Aber ich hab mir im Google schon einen Wolf gesucht diesbezüglich und nichts gefunden.
Hat noch jemand einen Rat für mich ? Eigentlich möchte ich nur die vorhandene Abfrage kopieren und einen Wert ändern.

Re: Abfrage aus Access übernehmen

Verfasst: Mi, 22.10.2008 16:35
von hawe
Die Eigenschaften und Methoden, die Access anbietet sind mit Sicherheit NICHT in der gleichen Weise in der ADO-Bibliothek vorhanden. Der Code des Access-Beispiels ist so also nicht unter ADO anwendbar.
Du musst unter dem Stichwort ADO oder DAO suchen und das Problem durchleuchten.
Ich hab keine Beispiele und auch keine Erfahrung, wie man über ADO auf Accessinterne Strukturen zugreift oder ob das überhaupt geht.