Re: [de-users] Re: Schließen einer Datenbankdatei aus dem Formular

2010-01-12 Diskussionsfäden Robert Großkopf
Hallo Andreas,

  Lapidare Antwort von Basic: Objektvariable nicht belegt. Als wenn keine
  Verbindung da ist.
 
  Gruß
 
  Robert
 
 Wenn schon Basic, dann auch mit Option Explicit.
 
 Grüße,
 Andreas

Wenn Du mir sagen könntest, was der Kommentar mir an Hilfestellung bieten soll 
...
Natürlich achte ich darauf, dass meine Variablen vorher deklariert werden. 
Aber wenn es so etwas wie ThisDatabaseConnection gar nicht gibt hilft mir auch 
kein DIM ... AS OBJECT

Gruß

Robert

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



[de-users] Re: Schließen einer Datenbankdatei aus dem Formular

2010-01-10 Diskussionsfäden Andreas Saeger

Robert Großkopf wrote:

Liebe Liste,

ich versuche gerade für jemanden den Wunsch zu realisieren, mittels eines 
Buttons aus einem Formular der Datenbankdatei heraus Formular und Datei zu 
schließen. Das Schließen der Formulare ist mit


oController = ThisDatabaseDocument.CurrentController
oController.closeSubComponents

kein Problem.

oDoc = ThisDatabaseDocument
oDoc.close(True)

führt aber regelmäßig dazu, dass OpenOffice das Ganze als Absturz 
interpretiert und am liebsten einen Bericht an Sun schicken möchte. Dabei ist 
es egal, ob ich vorher die SubComponents (also eigentlich nur das eine 
Formular ...) geschlossen habe oder den Befehl direkt im Formular ausführe.


Setze ich oDoc.close(True) nach geschlossenem Formular bei der Datenbank.odb 
ab, so schließt sich zwar das Datenbankfenster, aber die Lock-Datei (*.lck) 
bleibt bestehen. Zumindest kommt aber nicht die Botschaft eines Absturzes ...


Bitte jetzt nicht die gutgemeinten Ratschläge, das im Sinne der 
Datensicherheit lieber sein zu lassen. Die gebe ich so schon weiter und würde, 
wenn das Schließen aus dem Formular heraus gewünscht ist, doch direkt auf die 
Formulare innerhalb der *.odb verzichten - obwohl ich da jetzt bereits einige 
Zeit investiert habe. 
Die Nachfrage, wie vermieden werden kann, dass dies als Absturz interpretiert 
bzw. die Lock-Datei nicht geschlossen wird, soll mir lediglich helfen, 
eventuelle Problemstellen genauer zu durchschauen.


Gruß

Robert


Wären die Formulare in unabhängigen Dokumenten hättest du weder Probleme 
sie per Hyperlink zu öffnen, noch irgendein Problem mit einer 
abgeschmierten Datenbank.
So musst du dich wohl um die Datenbankverbindung kümmern bevor du das 
Datenbankdokument schließen kannst.



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



Re: [de-users] Re: Schließen einer Datenbankdatei aus dem Formular

2010-01-10 Diskussionsfäden Robert Großkopf
Hallo Andreas,
 
 Wären die Formulare in unabhängigen Dokumenten hättest du weder Probleme
 sie per Hyperlink zu öffnen, noch irgendein Problem mit einer
 abgeschmierten Datenbank.
 So musst du dich wohl um die Datenbankverbindung kümmern bevor du das
 Datenbankdokument schließen kannst.

Das Beknackte ist ja, dass

oDoc = ThisDatabaseDocument
oDoc.close(True)

mit der Einstellung True genau dies machen soll: Der Prozess wartet, bis alle 
ausstehenden anderen Prozesse beendet sind und führt dann das Schließen des 
Dokumentes durch. Nur beim DatabaseDocument (statt einem normalen) wird 
anscheinend die Datenbank selbst nicht berücksichtigt. Kennzeichnenderweise 
finde ich auch nirgendwo einen Befehl, wie ich eine Datenbankverbindung lösen 
kann, wohl aber, wie ich sie erzeugen kann ...

Gruß

Robert

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



[de-users] Re: Schließen einer Datenbankdatei aus dem Formular

2010-01-10 Diskussionsfäden Andreas Saeger

Robert Großkopf wrote:

Hallo Andreas,

Wären die Formulare in unabhängigen Dokumenten hättest du weder Probleme
sie per Hyperlink zu öffnen, noch irgendein Problem mit einer
abgeschmierten Datenbank.
So musst du dich wohl um die Datenbankverbindung kümmern bevor du das
Datenbankdokument schließen kannst.


Das Beknackte ist ja, dass

oDoc = ThisDatabaseDocument
oDoc.close(True)

mit der Einstellung True genau dies machen soll: Der Prozess wartet, bis alle 
ausstehenden anderen Prozesse beendet sind und führt dann das Schließen des 
Dokumentes durch. Nur beim DatabaseDocument (statt einem normalen) wird 
anscheinend die Datenbank selbst nicht berücksichtigt. Kennzeichnenderweise 
finde ich auch nirgendwo einen Befehl, wie ich eine Datenbankverbindung lösen 
kann, wohl aber, wie ich sie erzeugen kann ...


Gruß

Robert


Der folgende Code wurde vom MRI-Tool aufgezeichnet wärend ich darin die 
Methode suchte, um die Datenbankverbindung zu kappen und dann das 
Dokument zu schließen.


http://extensions.services.openoffice.org/project/MRI
oInitialTarget ist das aktive Datenbankdokument.

Sub Snippet( Optional oInitialTarget )
  Dim oCurrentController As Object
  Dim oActiveConnection As Object

  oCurrentController = oInitialTarget.CurrentController

  oActiveConnection = oCurrentController.ActiveConnection
  oActiveConnection.close()
  oInitialTarget.close( True )
End Sub

OOo läuft noch.


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