Wie ist der Pfad zu den Formulare in Base?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Martin Egerer
**
Beiträge: 29
Registriert: Do, 25.12.2008 11:43

Wie ist der Pfad zu den Formulare in Base?

Beitrag von Martin Egerer »

Hallo an alle,

ich möchte in einigen meiner Formulare Pushbuttons einsetzen, um zu einzelnen Formularen innerhalb meiner Basedatei zu wechseln.
In verschiedenen meiner Formulare habe ich Pushbuttons Hyperlinks zugeordnet um jeweils eine bestimmte Seite im Internet aufzurufen. Mit diesen Hyperlinks könnte ich auch Dateien auf meinem PC öffnen, bzw. ein neues Dokument öffnen. Wie das geht habe ich herausgefunden. :D
Jetzt wollte ich durch einen Klick auf einen Pushbutton auch ein Formular innerhalb meiner Basedatei öffnen. Aber ich finde einfach nicht den Pfad mit dem ich das machen kann. :?
Wie ist der Pfad zu einem Formular, welches ich in meiner Basedatei öffnen will?

Viele Grüße vom Martin.
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Wie ist der Pfad zu den Formulare in Base?

Beitrag von eBayer »

Hallo Martin,
mit dem folgenden Makro rufst Du Dein Formular auf: (einfach dieses Makro auf deun entsprechenden Button legen)
Viel Erfolg, eBayer

Sub OpenFormMeinFormular(oEvent As Variant) As Variant
Dim args(1) As New com.sun.star.beans.PropertyValue
Dim container As Variant, oForm As Variant
Dim oCon
oCon = oEvent.Source.Model.Parent.ActiveConnection
container = oCon.Parent.DatabaseDocument.FormDocuments
args(0).Name = "ActiveConnection"
args(0).Value = oCon
args(1).Name = "OpenMode"
args(1).Value = "open"
oForm = container.loadComponentFromURL("MeinFormular","_blank",0,args())
With oForm.getCurrentController().getFrame().getContainerWindow()
End With
End Sub
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
Martin Egerer
**
Beiträge: 29
Registriert: Do, 25.12.2008 11:43

Re: Wie ist der Pfad zu den Formulare in Base?

Beitrag von Martin Egerer »

Hallo eBayer,

danke für die schnelle Hilfe.

Ich hatte es mit einem Hyperlink versucht.
Dazu habe ich als Pfad zu meiner Datei eingegeben und als Sprungziel den Namen meines Formulars eingegeben.
Das kann ich niemandem empfehlen.
Wenn ich nämlich dann auf den entsprechenden Pushbutton klicke, stürzt das Programm ab und startet sofort die Wiederherstellungsroutine.

Ich wollte es deshalb per Hyperlink machen, weil es schneller gegangen wäre und weil es später leichter gewesen wäre, diese zu wieder zu verändern.

Nochmal vielen Dank für die schnelle Hilfe.
Jetzt arbeite ich weiter an meiner Datenbank für die Vereinsschriftführung.

Grüße vom Martin.
Martin Egerer
**
Beiträge: 29
Registriert: Do, 25.12.2008 11:43

Re: Wie ist der Pfad zu den Formulare in Base?

Beitrag von Martin Egerer »

Hallo eBayer,

was habe ich falsch gemacht?
Wenn ich auf den Button klicke, geht kurz das Formular, welches ich haben will auf, und dann aber sofort wieder zu. Das Formular ganz kurz im Vordergrund, mal oben rechts, mal mittig hintendran.

Ich habe deshalb im Makrodialog auf das graue Kästchen mit dem grünen Dreieck gedrückt.
In der Zeile

oCon = oEvent.Source.Model.Parent.ActiveConnection
bekomme ich angezeigt:
Basic-Laufzeitfehler
Argument ist optional


Ich wünsche noch eine schöne Hexennacht.

Grüße vom Martin.
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Wie ist der Pfad zu den Formulare in Base?

Beitrag von eBayer »

Hallo Martin,
da gibt es verschiedene Fehlermöglichkeiten....
- Versuchst Du etwa das Formular aus einem Dialog zu starten? Das geht mit dem Beispiel nicht.
- Ist die Datenbank angemeldet?
Um nicht weiter herumraten zu müssen, habe ich Dir eine kleine Beispielanwendung erstellt und bei mir getestet!
Einfach die Anwendung "test2" in ein für Makros geeignetes Verzeichnis stellen und die Anwendung unter oo registrieren.
Dann aufrufen, MainForm doppelklick und die beiden Testvarianten anklicken.
Schau Dir die dahinterliegenden Makros an, dann weißt Du alles was Du brauchst.
Variante 1 holt sich die Connection über das auslösende Event.
Variante 2 baut die Connection manuell auf.
Entscheide selbst.... wenn Du allerdings das Formular aus einem Dialog aufrufst, MUSST Du Variante 2 wählen und im Dialog nicht vergessen, die manuell aufgebaute Connection mit oCon.close() wieder zu schließen!!!!
Gruß eBayer
Dateianhänge
test2.odb
(18.54 KiB) 194-mal heruntergeladen
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
Martin Egerer
**
Beiträge: 29
Registriert: Do, 25.12.2008 11:43

Re: Wie ist der Pfad zu den Formulare in Base?

Beitrag von Martin Egerer »

Hallo eBayer,

ich komme an der Stelle nicht weiter.
Die Datenbank habe ich angemeldet. Ich habe das zwar in den Büchern von Thomas Krumbein gelesen und mache es deshalb immer, aber ich habe bis heute nicht den Sinn dahinter verstanden. Aber solange es funktioniert ist es ja auch egal.

Wenn ich Deine neuen Makros einsetze, stürzt das gesamte Base-Programm ab. Ich habe in der letzten Nacht und seit heute Mittag weiter Formulare und die dazugehörigen Tabellen erstellt. Mit soviel Arbeit habe ich da nicht gerechnet und bin auch noch nicht fertig. Aber egal, so langsam wird es und es macht auch Spaß.
Das vorherige Makros hat eigentlich richtig funktioniert. Das Problem war nur, dass es das falsche Formular geschlossen hat.
In mein Ausgangsformular, ich hab es "Startformular" genannt, setze ich die Pushbuttons ein. Das ist auch das Formular, welches später beim Starten der Datei als erstes angezeigt werden soll.
Meine Kontakte habe ich in drei Gruppen eingeteilt:
In der ersten Gruppe verwalte ich alle Mitglieder in meinem Ortsverein.
In der zweiten Gruppe verwalte ich alle Kontakte die nicht zum meinem Ortsverein, aber in zur übrigen Partei gehören.
In der dritten Gruppe verwalte ich alle sonstigen Kontakte.
(Wenn ich diese Datenbank dann später für meinen Turnverein abändere, kann ich diese Struktur beibehalten. Und wenn ich sie anderen weitergebe, können die auch ohne größere Probleme damit arbeiten. Wenn es soweit ist, hoffe ich mal, dass mir jemand mit einer Routine weiterhelfen kann. Mit dieser Routine möchte ich erreichen, dass jeder einfach nur die notwendigen Grundinformationen abändert, und dann ganz normal arbeiten kann. Die meisten Sportvereine habe ja gewöhnlich auch eine Verband dem sie angehören.)

Mit Pushbuttons will ich zu den verschiedenen Gruppen schalten können, sodass diese Getrennt bleiben können.
In dieses erste Formular habe ich auch eine Button zu meiner Kalenderfunktion eingebaut.
Dann habe ich auch Pushbuttons eingebaut, die ich mit Hyperlinks ausgestattet habe um ins Internet zu wechseln oder auch andere Dateien verwenden werde.
Ich will das mit diesem Formular deshalb machen, weil ich dann später auch weitere Buttons einsetzen kann, wenn die Datei mit weiteren Funktionen erweitere.
Mit den Pushbuttons will ich auch zum Springen zwischen den einzelnen Formularen arbeiten und um auch jederzeit wieder zum "Startformular" zu kommen.
Als ich Dein erstes Makro verwendet habe, wurde das gewünschte Formular kurz geöffnet und dann sofort wieder geschlossen. Deshalb vermute ich, dass ich den Eintrag nicht erkannt habe, mit dem das Startformlar geschlossen werden soll und statt dessen dort das gerade geöffnete wieder geschlossen wird.

In dem Buch von Krumbein habe ich gelesen, dass es einen Unterschied zwischen Dialogen und Formularen gibt. Wo der beginnt habe ich allerdings bisher noch nicht herausgefunden. Mein "Startformular" habe ich jedenfalls mit der Funktion "Formular erstellen" in Base gemacht. Wenn ich es richtig verstanden habe, müsste ich für die Dialogerstellung in die Makrofunktion oder ins Calcprogramm wechseln. Beides habe ich nicht getan.

Ich danke Dir schon mal für Deine geniale Hilfe.

Grüße vom Martin.
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Wie ist der Pfad zu den Formulare in Base?

Beitrag von eBayer »

Hallo Martin,
ich hatte ja bereits geschrieben, daß Du die Variante-2 des Testprogramms verwenden sollst. Zumindest für den Anfang, bis Du das notwendige Verständnis für ooBase entwickelt hast, ist das die bessere Variante für Dich.
Du mußt doch einfach nur das was im Testprogramm ist, abkupfern..... dabei kann man fast nichts falsch machen.
Im übrigen habe ich den Eindruck, daß Du Dich mit den Ansprüchen die Du an Dich selbst stellst, zumindest in der Startphase verzettelst. Viel zu viele unterschiedliche Baustellen. Fang doch einfach mal Schritt für Schritt an und wenn das erste funktioniert, machst Du das nächste.
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
Martin Egerer
**
Beiträge: 29
Registriert: Do, 25.12.2008 11:43

Re: Wie ist der Pfad zu den Formulare in Base?

Beitrag von Martin Egerer »

Hallo eBayer,

ja, ich weiß, ich bin zu ungeduldig.
Ich versuche ja auch immer, den nächsten Schritt erst zu machen, wenn ich den ersten fertig habe.
eBayer hat geschrieben:ich hatte ja bereits geschrieben, daß Du die Variante-2 des Testprogramms verwenden sollst.
Ich hatte zuerst die Variante-1 probiert, aber da hatte ich immer die Programmabstürze, wenn ich es ausprobiert habe. Deshalb habe ich auch die Variante-2 probiert. Aber damit hatte es auch nicht geklappt. Ich habe auch den gesamten Text im Makro markiert und dann mit "Ctrl"+"c" kopiert und dann in meiner Datei eingefügt. Aber es hat nicht geklappt.
Und weil ich selber den Grund nicht gefunden habe, machte ich einfach an der anderen Stelle weiter. Ich werde es heute aber noch mal versuchen. Vielleicht finde ich ja dann heraus, was ich falsch gemacht habe.

Ich danke Dir für Deine geniale Hilfe.

Viele Grüße vom Martin.
geimist
****
Beiträge: 191
Registriert: Fr, 15.02.2008 16:10

Re: Wie ist der Pfad zu den Formulare in Base?

Beitrag von geimist »

Hallo Martin,

wenn du die aktuelle Version von OpenOffice einsetzt (3.1) gibt es ein speziell für diesen Zweck vereinfachtes Makro. Es dient in dieser Schreibweise dazu, Berichte und Formulare innerhalb einer Datenbank zu öffnen (d.h. nicht von außerhalb). Achte auch auf die Groß- und Kleinschreibung der Formular- und Berichtnamen.

Für Formulare:

Code: Alles auswählen

Sub Formularoeffnen
ThisDatabaseDocument.FormDocuments.getByName("Formularname").open
End Sub
Für Berichte:

Code: Alles auswählen

Sub Berichtoeffnen
ThisDatabaseDocument.ReportDocuments.getByName( "report name" ).open
End Sub
Hier ist nochmal die Quelle dazu:
http://wiki.services.openoffice.org/wik ... res_in_3_1
Gruß
Stephan

LibreOffice 5.3 - MAC OS/X 10.11
Martin Egerer
**
Beiträge: 29
Registriert: Do, 25.12.2008 11:43

Re: Wie ist der Pfad zu den Formulare in Base?

Beitrag von Martin Egerer »

Hallo Geimist,

ich habe mir die neue Version von ooo noch nicht besorgt.
Da bin ich etwas altmodisch. Ich arbeite noch mit 2.0. Ich hatte mit der Erstellung meiner Datenbank bereits begonnen, bevor es die neue Version gab. Ich bin derzeit damit beschäftigt mir eine "schicke" Datenbank zu erstellen und habe noch keinerlei Infos darüber, ob ich dann, wenn ich damit fertig bin, die Daten meiner bisherigen Datei einfach so rüber kopieren kann. Bisher waren die Daten geschlossen in einer Tabelle. Das ist beim Aktuallisieren blöd, weil die Daten unübersichtlich und nicht sortiert sind. Ich möchte zudem "Datengruppen" erstellen: z.B. bei einer bestimmten Postleitzahl soll der Ort automatisch angezeigt werden, die Anrede möchte ich auswählen, akademische Titel zum Auswählen, ... Die Datengruppen, die nicht endlich sind wie z.B. die Anrede, sollen "lernbar" sein. Ich will z.B. nicht die komplette CD der Post mit den Postleitzahlen speichern, sondern neue Anlegen können, wenn ich sie nicht schon gespeichert habe. Mit anderen Daten, die sich wiederholen können, möchte ich ähnlich verfahren.

Und ich habe auch keine Erfahrungswerte darüber, was passiert wenn ich sogar mit der neuen Version von ooo arbeite.

Ich hatte meine Ausgangsfrage gestellt, weil ich gehofft hatte, dass ich mit der Hyperlink-Funktion innerhalb meiner Datenbank zwischen den Formularen springen könnte. Dafür bräuchte ich keine Makro-Kenntnisse und könnte später, wenn ich wieder was ändern will, leichter den Link zum neuen Formular ändern.
Die Funktion wollte ich hauptsächlich für das Startformular verwenden.
Von eBayer habe ich drei Makro-Lösungen bekommen, die auch funktionieren. Damit habe ich jetzt ein Stück mehr über die Makro-Programmierung gelernt.

Ich werde aber trotzdem mal Dein Makro versuchen. Vielleicht funktioniert es ja auch bei meiner Version. Ist nur ein Versuch. :) Wenn es klappt gebe ich Bescheid.

Danke schön und viele Grüße vom Martin.
geimist
****
Beiträge: 191
Registriert: Fr, 15.02.2008 16:10

Re: Wie ist der Pfad zu den Formulare in Base?

Beitrag von geimist »

Hallo Martin,

wenn du noch die Version 2.0 verwendest, dann sind die Makros von eBayer genau die richtigen. Mit Makros erstellt man ja auch nur Befehle, die das Programm verstehen und umsetzen können muss. Ab der Version 3.1 gibt es halt nun einen eindeutigen Befehl, um Formulare und Berichte öffnen zu können. Diesen Befehl kennt die Version 2.0 aber noch nicht.
Wenn du keinen speziellen Hinderungsgrund hast, so mache am besten ein Upgrade auf 3.1 - schließlich wird ja OOo immer besser und nicht schlechter :D
Gruß
Stephan

LibreOffice 5.3 - MAC OS/X 10.11
Antworten