Datenbank in einem bestimmten Formular öffnen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

utepf
*
Beiträge: 13
Registriert: So, 08.02.2009 21:18

Datenbank in einem bestimmten Formular öffnen

Beitrag von utepf »

Hallo Zusammen,

ich habe eine Datenbank erstellt.
Was muss ich tun, wenn ich beim Start der Datenbank möchte, dass sie sich in einem bestimmten Formular öffnet.
Ganz früher bei Access war das mal was mit autoexec.bat.
Ich hab keine Ahnung mehr.

Besten Dank im voraus

Eure Utepf
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von komma4 »

brauchstu Makro:

base_openForm
base_openForm hat geschrieben:Anzeige eines Formulars; öffnet ein BASE-Dokument, dann das angegebene Formular
musstu anpassen!



Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
utepf
*
Beiträge: 13
Registriert: So, 08.02.2009 21:18

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von utepf »

Hallo Winfried,
Danke, aber ich bin völlig erschlagen. Darf ich um einige Tips bitten.

Wo fange ich da an, auf welche datei konzentriere ich mich?

Gruss
Utepf
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von komma4 »

utepf hat geschrieben:Wo fange ich da an, auf welche datei konzentriere ich mich?
?

auf Link klicken, Datei speichern/öffnen.
Den "bunten" Code auf Seite 2 kopieren, in ein Modul Deiner "Meine Makros"-STANDARD-Bibliothek kopieren.
Pfad und Namen der ODB-Datei in Zeile 2 anpassen
Formularnamen in der vorletzten Zeile anpassen - Fertig.

Hilft Dir das?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
utepf
*
Beiträge: 13
Registriert: So, 08.02.2009 21:18

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von utepf »

nicht böse sein, ich komm bald wieder hab jetzt leider keine Zeit.

Gruss utepf
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von eBayer »

@ Komma4
Hallo Komma,
ich habe das mal interessehalber versucht, nachzuvollziehen....
Bin zwar noch nicht vollkommen fit mit ooBase, aber wenn Du einem Anfänger solch einen Weg vor die Füße schmeißt, sollte das was Du anbietest auch funktionieren. Woher soll OO wissen, daß Dein Startmakro bei Doppelklick auf die ODB-Datei ausgeführt werden soll?
Habe es auch mal mit Extras - Anpassen - Programmstart versucht, das Makro als Startmakro zu hinterlegen. Dann startet das Programm zwar wie gewünscht, wird aber gleich wieder von der ooBase-Oberfläche in den Hintergrund geschoben. Aber genau DIE sollte ja vollkommen unterdrückt werden, denn sonst macht der gesamte Autostart keinen Sinn.
Hast Du jemals dieses Makro in der beschriebenen Form eingesetzt?
Achso, ich benutze die Version 3.01 unter Vista.
Mein Kommentar ist sicher nicht bös gemeint, aber eine leichte Kritik möchte ich damit schon loswerden.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von keksi1970 »

hi,

warum lagerst du das Formular nicht aus Base aus (Kopie speichern unter) und schon startest du einfach nur das Formular selbst (DB wid im Hintergrund geöffnet)

Darfst nur nicht vergessen, die Verknüpfungen zur Datenbank zu aktualisieren.

lg
Andreas
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von komma4 »

eBayer hat geschrieben:aber eine leichte Kritik möchte ich damit schon loswerden.
Gruß eBayer
Vollkommen richtig.

Ich entschulige mich bei utepf und allen anderen, die ich mit dieser schnoddrigen Antwort abgespeist habe.


Was ich nicht bedachte, was hier fehlt....

Irgendeine Anleitung !

An diesem Freitagmittag befand ich mich in einem emotionalen Antwortstress (und Zeitdruck-aber das war mein Problem) und habe auch zuviel voraus gesetzt.


Und ja: jeder Code den ich poste oder sonstwo veröffentliche ist von mir getestet, zumindest zu diesem Zeitpunkt in einer dokumentierten Form (OOo-Version, DB-Komponente [int.HSQLDB, MySQL, PostgreSQL], Betriebssystem) lauffähig und meist im täglichen Einsatz.


Im vorliegenden Fall ist das Codestück aus einer Antwort in einem anderen Forum. Ich versäumte es bislang eine Doku zu erstellen ...


Mein Vorgehen:
* neues Modul in der STANDARD-Bibliothek anlegen, Code reinkopieren
* aktuellen Pfad zu einer Testdatei (ODB mit interner HSQLDB) angepasst
* Name des Formulars angepasst
Makro läuft unter 3.0.1/Linux
Das Fenster des Formulars öffnet sich (in der zuletzt gespeicherten Grösse) im Vordergrund der laufenden OOo-Anwendung.


Ich hoffe, dass alle Lesenden damit nun klar kommen.


Hilft das?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von eBayer »

Hallo Komma4,
super, wie Du mit einer - wenn auch nicht bös gemeinten - Kritik umgehst. (ist nicht zynisch gemeint)
So kann man sich wirklich konstruktiv austauschen.
Trotz allem.... es genügt nicht, zumindest in meinem OO 3.01 unter Vista, daß ich das Makro unter "Meine Makros - Standard" einbaue.
Da kann sonstwas drin stehen und es wird nicht ausgeführt. Wenn ich allerdings das Makro mit dem Programmstart von OO verbinde, wird es auch ausgeführt. Das weiß ein Anfänger nicht! Doch auch dieses ist nur die halbe Lösung.....
1. wird nun das Programm bei jedem Aufruf von OO gestartet.
2. selbst wenn mich das nicht stört, weil ich sonst nix mit OO mache, ist das nicht ok, weil:
- erst das Programm (meine kleine Anwendung) gestartet wird
- dann legt sich die IDE von ooBase über das Programm und versteckt alles
3. wenn mich auch das nicht stört, muß ich nach Beendigung der Anwendung zusätzlich manuell ooBase schließen
Das kann es wirklich nicht sein!
Viel besser ist doch die in diesem Thread bereits von einem anderen Forenmitglied vorgeschlagene Lösung über ein externes Formular. Das hat zwar auch ein paar Tücken, aber damit kann man gut leben. Ich bin grad dabei, eine kleine Musterlösung zu erstellen, welche mit geringem Aufwand die Anwendung wirklich als freistehende Applikation erscheinen läßt. Zusätzlich werden darin auch die Menüleisten ausgeblendet sein, sodaß ein unbedarfter Anwender damit nichts mehr verbiegen kann. Denke, daß ich das Beispielprogramm noch heute nachmittag hier hereinstellen kann.
Gruß und weiter so
eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von turtle47 »

Hallo Zusammen,

also ich bin auch für die Variante das externe Formular direkt aufzurufen, anstelle erst die Datenbank und dann das Formular.

Folgendes trägt zwar nicht direkt was zum aktuellen Thema bei, ist aber vielleicht für den ein oder anderen interessant.
Vor kurzem habe ich für jemanden eine kleine Datenbank erstellt, sprich eine Tabelle und ein Formular, welche er auf einem USB-Stick mitführt. Da ist natürlich das Problem vorprogrammiert, dass sich der Laufwerksbuchstabe des Laufwerkes ändern kann. Dazu habe ich dann ein kleines Makro geschrieben, welches die Verbindung zwischen Datenbank und Formular herstellt.
Voraussetzung ist aber, dass die die Datenbank und das Formular in einem Ordner liegen. Die Verbindung wird über das Betätigen des Button "Connect DB" hergestellt.

Code: Alles auswählen

Dim StickDirectory as String
Dim oDoc as Object

Sub Anmelden
	oDoc = thisComponent
	GlobalScope.BasicLibraries.loadLibrary("Tools")
	StickDirectory = DirectoryNameoutofPath(oDoc.URL,"/")
	GlobalScope.BasicLibraries.loadLibrary("Tools")
	oForm = oDoc.drawpage.forms.getbyindex(0)
	Button = oForm.getByName("PushButton")'Button für Statusbericht
	Button.enabled = false
	Button1 = oForm.getByName("PushButton1")'Connect Button
	Button1.enabled = false
	Button1.Label = "Wait..."
	dim document   as object
	dim dispatcher as object

	document   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	dim args1(0) as new com.sun.star.beans.PropertyValue
	Wait 300
	args1(0).Name = "SwitchControlDesignMode"
	args1(0).Value = true
	dispatcher.executeDispatch(document, ".uno:SwitchControlDesignMode", "", 0, args1())
	Wait 300
	oForm.DataSourceName = StickDirectory & "/CRM.odb"
		
	Wait 300
	args1(0).Name = "SwitchControlDesignMode"
	args1(0).Value = false
	dispatcher.executeDispatch(document, ".uno:SwitchControlDesignMode", "", 0, args1())
	
	'>>> Option: Dialog für Statusmeldung anzeigen <<<
	'Dialoglibraries.Loadlibrary("Standard")
	'Dlg_Wait = CreateUnoDialog(Dialoglibraries.Standard.Dialog2)
	'Dlg_Wait.setVisible(true)
	'Wait 2000
	'Dlg_Wait.setVisible(false)
	
	Button = oForm.getByName("PushButton")
	Button.enabled = True
	Button1 = oForm.getByName("PushButton1")
	Button1.enabled = True
	Button1.Label = "Connect DB"
	wait 500
	odoc.store()
End Sub
Schöne Grüsse.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
utepf
*
Beiträge: 13
Registriert: So, 08.02.2009 21:18

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von utepf »

Hallo Leute,
mensch seid ihr alle lieb, ihr arbeitet wirklich hartnäckig an meinem Problem. Ich bin euch so dankbar.
Wäre super schön, wenn ebayer mir was basteln könnte.
Er hat das Problem richtig erkannt.
Es ist eine Mitgliederdatenbank für den Verein meiner Mutter.
Ich hab ihr vor Jahren mal diese DB gemacht, aber da wir jetzt alle in Richtung Mac umziehen, ist halt jetzt schluss mit Access und ich baue grad alles um.
Ich will ihr aber auch nicht unbedingt wegen dem Datenbänkchen Windows auf den Mac installieren.

Wenn ich mein altes Makro anschaue ist das super einfach
1. Zeile: Aktion: Echo, Aktionsargumente: ja
2. Zeile: Aktion: Sanduhr, Aktionsargumente: ja
3. Zeile: Aktion: Maximieren
4. Zeile: Aktion: ÖffnenFormular und hier waren ein paar Aktionsargumente eingetragen

Formularname, Ansicht, Fenstermodus

aber ganz ehrlich, ich habe das schon damals von einer bestehenden Datenbank abgeschrieben, die ein Superuser unserer damaligen Abteilung gebaut hat.
Ich kann halt nur abschreiben.

Liebe Grüsse
Utepf
utepf
*
Beiträge: 13
Registriert: So, 08.02.2009 21:18

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von utepf »

Hallo Leute,
mensch seid ihr alle lieb, ihr arbeitet wirklich hartnäckig an meinem Problem. Ich bin euch so dankbar.
Wäre super schön, wenn ebayer mir was basteln könnte.
Er hat das Problem richtig erkannt.
Es ist eine Mitgliederdatenbank für den Verein meiner Mutter.
Ich hab ihr vor Jahren mal diese DB gemacht, aber da wir jetzt alle in Richtung Mac umziehen, ist halt jetzt schluss mit Access und ich baue grad alles um.
Ich will ihr aber auch nicht unbedingt wegen dem Datenbänkchen Windows auf den Mac installieren.

Wenn ich mein altes Makro anschaue ist das super einfach
1. Zeile: Aktion: Echo, Aktionsargumente: ja
2. Zeile: Aktion: Sanduhr, Aktionsargumente: ja
3. Zeile: Aktion: Maximieren
4. Zeile: Aktion: ÖffnenFormular und hier waren ein paar Aktionsargumente eingetragen

Formularname, Ansicht, Fenstermodus

aber ganz ehrlich, ich habe das schon damals von einer bestehenden Datenbank abgeschrieben, die ein Superuser unserer damaligen Abteilung gebaut hat.
Ich kann halt nur abschreiben.

Liebe Grüsse
Utepf
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von eBayer »

Hallo Ute,
hier kommt nun mein versprochenes Beispiel mit einigen zusätzlichen Leckereien.
- Menu ausblenden
- Symbolleisten ausblenden
- Fenstergröße automatisch anpassen
und natürlich das externe Formular!
Alles dokumentiert in einer beigefügten Anleitung.
In dem beiliegenden Zip-Archiv befinden sich 3 Dateien:
- Anleitung Schritt für Schritt
- externes Formular als Beispiel
- Datenbankcontainer passend zum externen Formular

Das beigefügte Programm wird aufgerufen durch Doppelklick auf das Formular "Verkehr.odt".
Verkehr.odt seinerseits bedient sich der Daten in Verkehrsmittel.odb
Du kannst getrost alles mit dem Testprogramm ausprobieren.... es läuft stabil.
Ich habe es unter Vista mit oOffice 3.01 entwickelt und getestet.
Es ist alles nicht so schlimm, wie es aussieht.... ich habe vor ca. 3 Monaten ernsthaft mit ooBase angefangen.
Dabei war mir das Datenbankbuch Buch von Thomas Krumbein eine große Hilfe.
Vieles habe ich im internationalen ooForum gefunden und natürlich auch hier im Forum.

Viel Spaß und gaaanz langsam - immer mit der Ruhe
eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Snoopy
**
Beiträge: 31
Registriert: Mi, 03.06.2009 14:41

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von Snoopy »

eBayer hat geschrieben:...- Menu ausblenden
- Symbolleisten ausblenden
- Fenstergröße automatisch anpassen...

...- Anleitung Schritt für Schritt...
Hi Leutz,

was man hier so alles finden kann :D , genau so etwas hat mir gefehlt.

Dank der guten Anleitung/Makros von eBayer ist es kein Problem gewesen eine DB so zu erstellen das sich nur das Formular in OOoWrite öffnet, ohne Menü & Symbolleisten kann sich der Anwender direkt auf die Daten stürzen.

Diese Version (Anleitung.zip) funktioniert für Linux & Windows :D .

Gruß, Hermann
Gruß, Hermann
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Datenbank in einem bestimmten Formular öffnen

Beitrag von eBayer »

es tut richtig gut zu lesen, daß meine Testanwendung nicht für die Katz war.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Antworten