externes Formular

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Schmedt
Beiträge: 5
Registriert: Fr, 31.03.2017 18:47

externes Formular

Beitrag von Schmedt »

Hallo liebes Forum,

ich meine kleine Datenbank ist jetzt ziemlich fertig. Jetzt wollte ich das der Bediener die Tabellen , Abfragen und Formulare in der Datenbank sieht.
Ich dachte mir über ein externes Formular würde so etwas funktionieren.
Die Datenbank ist eine registrierte Datenbank. Das Startformular wurde kopiert und eine odt - Datei erstellt und auf den Desktop verlegt . Die Verbindung zur Datenbank über das externe Formular funktioniert auch. Die Buttons zum wechseln der Formulare klappt auch wunderbar , selbst bei geschlossener Datenbank
Woran kann es liegen, das sie Formulare sich nicht füllen, sondern nur wenn die Datenbank geöffnet ist

Liebe Grüße

Schmedt
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: externes Formular

Beitrag von RobertG »

Hallo Schmedt,

Dein Text wird mir nicht ganz klar. Du wolltest vermutlich durch ein externes Formular *verhindern*, dass Tabellen, Abfragen und Formulare sichtbar sind, oder?

Die Verbindung zur Datenbank von dem externen Formular heraus klappt ja anscheinend. Du siehst die Daten im externen Formular. Mit dem Formular erzeugst Du eine Verbindung zur Datenbank. Öffnest Du jetzt die Datenbank selbst, so greift diese auf die gleiche Verbindung zu. Schließt Du diese Datenbank, so kann es vorkommen, dass genau diese Verbindung dann auch geschlossen wird. Das habe ich jetzt nicht getestet, da ich hier keine DB mit externen Datenbanken gerade verfügbar habe. Formulare, auch solche innerhalb der Datenbank, sind erst einmal von so etwas unberührt. Nur die Datenquelle selbst, also die interne HSQLDB, ist mit dem Schließen der Datenbankdatei geschlossen worden.

Klappt denn alles wie gewünscht wenn Du die Datenbankdatei selbst nicht anrührst und nur mit dem externen Formular darauf zugreifst?

Gruß

Robert
Schmedt
Beiträge: 5
Registriert: Fr, 31.03.2017 18:47

Re: externes Formular

Beitrag von Schmedt »

Hallo Robert ,
Du wolltest vermutlich durch ein externes Formular *verhindern*, dass Tabellen, Abfragen und Formulare sichtbar sind, oder?
ja genau das wollte ich .
Klappt denn alles wie gewünscht wenn Du die Datenbankdatei selbst nicht anrührst und nur mit dem externen Formular darauf zugreifst?
ja dann klappt es
Das geöffnete Formular aus der Datenbank, welches ich mit dem externen Formular öffne ist gefüllt . ( funktioniert)
Wenn ich jetzt mit dem geöffneten Formular aus der Datenbank ein weiteres Formular (aus der Datenbank) öffnen möchte geht es zwar, es ist aber nicht gefüllt.
oder gibt es weitere Möglichkeiten, das der Benutzer die Tabellen, Abfragen, und Formulare nicht sieht?

Liebe Grüße Schmedt
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: externes Formular

Beitrag von RobertG »

Hallo Schmedt,

Du öffnest also mit dem Formular von außen ein Formular, das in der Datenbank liegt?

Anschließend öffnest Du von diesem Formular aus ein weiteres Formular, das auch in der Datenbank liegt?

Hast Du einmal aus dem Handbuch das Kapitel "Druck von Berichten aus einem externen Formular heraus" gelesen? Dort wird zwar ein Bericht gestartet, könnte aber auch ein Formular sein. Und natürlich müsste das Formular nicht anschließend direkt geschlossen werden.
Bei dem entsprechenden Makro wird die Datenbank einfach auf "invisible" geschaltet.

Ansonsten musst Du hier mitteilen, wie Du die Formulare ansteuerst, dann das wird ja bei Dir nicht ohne Makros laufen - und da scheint dann die Verbindung zur Datenbank nicht mehr da zu sein, wenn Du das erste Formular schließt, oder?

Gruß

Robert
Schmedt
Beiträge: 5
Registriert: Fr, 31.03.2017 18:47

Re: externes Formular

Beitrag von Schmedt »

Hallo Robert

Code: Alles auswählen

'Sub Start_oeffnen	
DIM oDatasource AS OBJECT
DIM oConnection AS OBJECT
oDatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
oDatasource = oDatabaseContext.getByName("registrierter Datenbankname ")
oConnection = oDatasource.GetConnection("","")

dim Args(1) as new com.sun.star.beans.PropertyValue  
  Args(1).name = "OpenMode"
   Args(1).value = "open"
    Args(0).name = "ActiveConnection"
   Args(0).value = oConnection
    oForms = oDataSource.DataBaseDocument.getFormDocuments
    oForms.loadcomponentfromURL( "Start","_Default", 63,Args()) 
diese Makro steht bei mir unter "Meine Makros"

das Makro in der Datenbank wo ich die Formulare wechsele ist

Code: Alles auswählen

SUB Zu_Formular_von_Formular(oEvent AS OBJECT)
	DIM stTag AS String
	stTag = oEvent.Source.Model.Tag
	aForm() = Split(stTag, ",")
	ThisDatabaseDocument.FormDocuments.getByName( Trim(aForm(0)) ).open
	ThisDatabaseDocument.FormDocuments.getByName( Trim(aForm(1)) ).close
	
	
END SUB
Ansonsten musst Du hier mitteilen, wie Du die Formulare ansteuerst, dann das wird ja bei Dir nicht ohne Makros laufen - und da scheint dann die Verbindung zur Datenbank nicht mehr da zu sein, wenn Du das erste Formular schließt, oder?
genau so ist es
sobald ich das Formular wechsele habe ich keine Verbindung zur Datenbank

Liebe Grüße
Schmedt
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: externes Formular

Beitrag von RobertG »

Hallo Schmedt,

ohne das jetzt zu testen:
Du baust die Verbindung zur Datenbank auf. Du startest mit dieser Verbindung ein Formular. Die Verbindung wird mit dem Objekt des Formulars weitergegeben. Dann öffnest Du von diesem Formular ein neues Formular und schließt das alte Objekt - mit der Verbindung.

Was passiert, wenn Du stattdessen erst einmal das Schließen des vorherigen Formulars auskommentierst?

Was passiert, wenn Du zuerst einmal die Datenbank über loadComponentFromURL lädst, anschließend die Verbindung aufbaust und dann das Formular lädst - so wie im Handbuch bei dem Bericht?

Poste gegebenenfalls ein Beispiel.

Gruß

Robert
Schmedt
Beiträge: 5
Registriert: Fr, 31.03.2017 18:47

Re: externes Formular

Beitrag von Schmedt »

Hallo Robert,

Ich habe mal ne Beispieldatei angehangen , mit dem externen Formular,
Irgendwie will es einfach nicht funktionieren
Vielleicht geht es ja bei euch.

Liebe Grüße
Schmedt
Dateianhänge
Test0805.odt
(10.4 KiB) 171-mal heruntergeladen
Test0805.odb
(54.96 KiB) 164-mal heruntergeladen
Schmedt
Beiträge: 5
Registriert: Fr, 31.03.2017 18:47

Re: externes Formular

Beitrag von Schmedt »

Hallo liebes Forum,
ich habe es mitlerweise hinbekommen, auch die Formulare werden gefüllt.
Das einzige was leider noch nicht klappt ist, das wenn ich ein Formular öffne sich das bereits geöffnete schließt
So wie es beim MAkro SUB Zu_Formular_von_Formular ging.

Könnt Ihr euch das mal bitte ansehen??

Vielen Dank schonmal

Liebe Grüße
Schmedt
Dateianhänge
Test0508.odb
(55.73 KiB) 176-mal heruntergeladen
Antworten