Hallo zusammen,
Gibt es eine Möglichkeit in einem Makro zu überprüfen, ob gerade eine verbindung besteht oder nicht??
Und diese dann zu schließen??
Mein Problem ist folgendes:
Mein Makro formt eine dbase-Datei in ein Tabellendokument um. Wenn der Benutzer allerdings. Die dBase-Datei wird von einem anderen Programm bereitgestellt. Sobald eine Vorlage gestartet wird, wird nach einer neuen dBase gesucht und diese wenn nötig umgeformt.
Wenn keine dBase vorliegt kann aber mit dem bereits umgeformten Tabellendokument gearbeitet werden.
Folglich stellt oo eine Verbindung zu diesem tabellendokument her.
Wenn der Benutzer jetzt feststellt, dass er aktuellere Daten benötigt und eine dBase erzeugt, kann er mein Makro nicht benutzen, da ein Zugriff auf das Tabellendokument besteht.
Und eine Datei auf die ein Zugriff ist, kann man nun mal nicht überschreiben.
Kann mir jemand weiterhelfen?
Danke
Grüße
Max
Datenbankverbindungen per Makro beenden
Moderator: Moderatoren
Hi Max,
ich verstehe nicht so genau, was du moechtest. Wenn du eine Verbindung mit Basic aufbaust, kannst du close() fuer die Verbindung aufrufen:
Dannach darf man "conn" nicht mehr benutzen, sonst stirbt OOo wahrscheinlich. Vllt kannst du mal dein bisheriges Makro oder Teile davon schicken, damit ich besser verstehem, was du meinst.
zap
ich verstehe nicht so genau, was du moechtest. Wenn du eine Verbindung mit Basic aufbaust, kannst du close() fuer die Verbindung aufrufen:
Code: Alles auswählen
option compatible
sub datenquellen
Manager = GetProcessServiceManager()
dbctx = Manager.createInstance("com.sun.star.sdb.DatabaseContext")
namen = dbctx.getElementNames()
msgbox join(namen, vbLf)
datenquelle = dbctx.getByName("Bibliography")
conn = datenquelle.getConnection("", "")
msgbox conn.isClosed()
conn.close()
end sub
zap
Hallo,
Ich weiß ich hab mich doof ausgedrückt.
Der Sachverhalt den du beschreibst ist mir klar!
Das Problem ist, mein Makro öffnet die Datenbankverbindung nicht.
Sondern der benutzer.
Und zu dem Zeitpunkt an dem mein Makro abläuft besteht dann eine vom Benutzer aufgebaute Verbindung zur Datenquelle XY.
Wenn ich in meinem Makro dann versuche, die Datei der Datenquelle XY auszutauschen, bekomme ich natürlich eine Exeption.
Klar geöffnete dateien können nicht überschrieben werden.
Daher frage ich ob es eine Möglichkeit gibt abzufragen: "Hat der Benutzer eine Verbindung zur Datenquelle aufgebaut?"
Wenn ja -> Schließen
Nein -> Makro läuft weiter
Trotzdem Danke für die Antwort!
Grüße
Max
Ich weiß ich hab mich doof ausgedrückt.
Der Sachverhalt den du beschreibst ist mir klar!
Das Problem ist, mein Makro öffnet die Datenbankverbindung nicht.
Sondern der benutzer.
Und zu dem Zeitpunkt an dem mein Makro abläuft besteht dann eine vom Benutzer aufgebaute Verbindung zur Datenquelle XY.
Wenn ich in meinem Makro dann versuche, die Datei der Datenquelle XY auszutauschen, bekomme ich natürlich eine Exeption.
Klar geöffnete dateien können nicht überschrieben werden.
Daher frage ich ob es eine Möglichkeit gibt abzufragen: "Hat der Benutzer eine Verbindung zur Datenquelle aufgebaut?"
Wenn ja -> Schließen
Nein -> Makro läuft weiter
Trotzdem Danke für die Antwort!
Grüße
Max