🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Formular in entfernter Datenbank öfnen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Acco
Beiträge: 94
Registriert: Fr 31. Jan 2014, 16:41

Formular in entfernter Datenbank öfnen

Beitrag von Acco » Mo 14. Apr 2014, 11:45

Guten Tag,

ich habe zwei eingebettete Base-Datenbanken erstellt. Nun möchte ich von einer (Kurse) auf die Andere (Rechnungen) zugreifen und dort ein Formular öffnen.

Der Zugriff auf die Tabellen in "Rechnungen" funktioniert, ich kann Daten abrufen und in "Kurse" verarbeiten. Jedoch das Öffnen eines Formulars in "Rechnungen" kriege ich nicht hin.

Mit

Code: Alles auswählen

 ThisDatabaseDocument.FormDocuments.getByName(Trim(oFormular(0))).open 

komme ich nicht weiter, weil über "ThisDatabaseDocument" auf "Kurse" und nicht auf "Rechnungen" zugegriffen wird.

Gibt es für mein Vorhaben eine Lösung?

Gruß

acco
openSUSE Tumbleweed - LibreOffice 24.8.2.1

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Formular in entfernter Datenbank öfnen

Beitrag von RobertG » Mo 14. Apr 2014, 16:52

Hallo Acco,

Ich antworte einmal stumpf mit dem Inhalt aus dem Handbuch:
Der Zugriff auf Datenbanken außerhalb der aktuellen Datenbank ist folgendermaßen möglich:
DIM oDatabaseContext AS OBJECT
DIM oDatasource AS OBJECT
DIM oConnection AS OBJECT
oDatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
oDatasource = oDatabaseContext.getByName("angemeldeter Name der Datenbank in LO")
oConnection = oDatasource.GetConnection("","")
Auch die Verbindung zu nicht in LO angemeldete Datenbanken ist möglich. Hier muss dann ledig-
lich statt des angemeldeten Namens der Pfad zur Datenbank mit «file:///..../Datenbank.odb» ange-
geben werden.
Du musst ja auf die Zieldatenbank kommen. Mit ThisDatabaseDocument ist Dein Ziel die Datenbankdatei, in der das Makro ausgelöst wird.
Ich habe so eine Verbindung noch nie gesucht (habe immer die Daten, die eine Sache betreffen, in einer Datenbank ...). Ich würde jetzt einfach einmal mit
oDatasource.FormDocuments.getByName ...
weiter versuchen.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Acco
Beiträge: 94
Registriert: Fr 31. Jan 2014, 16:41

Re: Formular in entfernter Datenbank öfnen

Beitrag von Acco » Mo 14. Apr 2014, 17:59

Hallo Robert,

in der Regel halte ich es wie Du, alle Infos in einer DB. Nur ist der konkrete Fall etwas kompliziert, denn die DB Rechnungen bedient mehr Betriebszweige als nur die Kurse. Die sind in den Kinderschuhen und werden voraussichtlich ein kleinerer Teil des Unternehmenszwecks bleiben. Da wäre es elegant gewesen aus der DB "Kurse" einen kurzen Ausflug in DB "Rechnungen" und Formular "Rechnung" zu machen - und dann in DB "Kurse" zurückzukehren.

Dein Vorschlag

Code: Alles auswählen

oDataSource.DatabaseDocument.FormDocuments.getByName("Formularname").open
funktioniert soweit als das Formular geöffnet wird. Es werden allerdings keinerlei Datensätze darin gezeigt, der Zugriff auf die Daten ist so leider nicht gegeben und scheint nicht ohne Weiteres einzurichten zu sein. Jedenfalls habe ich bei Xray nichts gefunden.

Ich glaube, ich verwerfe die Idee und öffne die DB "Rechnungen" wie bisher manuell. Sonst wird die Brühe teurer als die Brocken.

Danke für Deinen Tipp und die schnelle Reaktion.

Gruß
acco
openSUSE Tumbleweed - LibreOffice 24.8.2.1

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Formular in entfernter Datenbank öfnen

Beitrag von RobertG » Mo 14. Apr 2014, 18:11

Hallo Acco,

hast Du denn auch die Verbindung hergestellt?
oConnection = oDatasource.GetConnection("","")
Vielleicht hilft das ja. Für ein Formular innerhalb der Datenbank müsste ja eigentlich auch die Datenbankdatei selbst geöffnet werden.
Ich würde bei so einem Verfahren eher vorziehen, externe Formulare zu nutzen. Da springst Du einfach von Dokument zu Dokument.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Acco
Beiträge: 94
Registriert: Fr 31. Jan 2014, 16:41

Re: Formular in entfernter Datenbank öfnen

Beitrag von Acco » Mo 14. Apr 2014, 18:23

Hallo Robert,

wie ich oben schrieb:
Acco hat geschrieben:Der Zugriff auf die Tabellen in "Rechnungen" funktioniert, ich kann Daten abrufen und in "Kurse" verarbeiten...
Die Verbindung steht, die DB ist geöffnet, und Daten "rüberholen" kann ich auch. Leider halt das gewünschte Formular nur leer öffnen, ohne Daten.

Vielleicht ist der Tipp mit externen Formularen ein Weg der hier akzeptiert wird.

Danke nochmal und eine erfogreiche Zeit.

Gruß

acco
openSUSE Tumbleweed - LibreOffice 24.8.2.1


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten