Seite 1 von 2

Datenbank in einem bestimmten Formular öffnen

Verfasst: Fr, 27.03.2009 13:59
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

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Fr, 27.03.2009 14:04
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!

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Fr, 27.03.2009 14:28
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

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Fr, 27.03.2009 14:51
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?

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Fr, 27.03.2009 14:57
von utepf
nicht böse sein, ich komm bald wieder hab jetzt leider keine Zeit.

Gruss utepf

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Fr, 27.03.2009 19:52
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

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Sa, 28.03.2009 10:54
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

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Sa, 28.03.2009 11:20
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?

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Sa, 28.03.2009 13:58
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

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Sa, 28.03.2009 14:25
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

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Sa, 28.03.2009 14:39
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

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Sa, 28.03.2009 14:39
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

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Sa, 28.03.2009 17:32
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

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Mi, 10.06.2009 12:54
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

Re: Datenbank in einem bestimmten Formular öffnen

Verfasst: Mi, 10.06.2009 22:04
von eBayer
es tut richtig gut zu lesen, daß meine Testanwendung nicht für die Katz war.
Gruß eBayer