Seite 1 von 1

Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Di, 28.07.2009 09:33
von schane65
Hallo !

Ich habe eine kleine Datenbank mit mehreren Abfragen und möchte nun mittels eines Makros mit einem Schalter die jeweiligen Abfragen direkt von einem Formular aus öffnen. Leider habe ich keine Ahnung von Makros.

Kann jemand helfen?


Gruß ANdy

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: So, 02.08.2009 23:54
von YumYum
Schau dir mal meinen Post an (YumYum). In ihm kannst du den Link zu einem Makro finden, das per Schaltfläche ein "NEUES" Formular öffnet. Mit "neu" ist gemeint, das sich der Inhalt (dein eigenständig erstelltes Formular) leider nicht im selben, sondern in einem neuen Fenster öffnet.

Bei der "Unterstützung", die einem unter anderem auch in diesem Forum widerfährt, sollte man sich doch besser von dem "Ich probier mal "Open", weil die "Community" ist der bessere Weg!" Gedanken schnellst möglich verabschieden.

Das zeichnen von neuem Inhalt im Originalanwendungsfenster ist in so ziemlich jeder EDV mit GUI eine Selbstverständlichkeit. Das man dafür in Base Makros einsetzen muss, die überdies noch selbst gestaltet werden müssen, kann niemand, der ernsthaft den Umstieg auf diese Software prüft, auch bei noch so gutem Willen ,als innovativ auslegen.

Ich Habe Zwei Anfragen, mit ähnlichem Inhalt gestellt:

die Erste wandelt nach wie vor auf Solopfaden (deine hätte dieses Schicksal sicherlich geteilt)

auf die Zweite wurde zwar anfänglich regiert, jedoch erlosch das Interesse zusehens, als es darum ging, das mit dem "Originalanwendungsfenster" zu eruieren.

ich hoffe dir einen brauchbaren Tip gegeben zu haben, wenn ich ich hab´s wenigstens probiert!

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Mo, 03.08.2009 15:10
von schane65
Hallo !

Ich weiß nicht, was du mit Post gemeint hast, ich finde keinen Link. Im Übrigen möchte ich kein Formular aufrufen, sondern eine fertige Abfrage. Ich habe es schon mal mit einem Makro probiert, welches mir ein Formular öffnet, es jedoch nicht hinbekommen.


Gruß Andreas

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Mo, 03.08.2009 16:47
von eBayer
Hallo Andreas,
wo siehst Du ein Problem bei Deiner Aufgabenstellung?
1. Erstelle ein Formular als Menü
2. Platziere auf dem Formular für jede Abfrage einen PushButton auf dem Formular
3. Erstelle ein Formular für jede Deiner Abfragen und verknüpfe das jeweilige Formular mit der Abfrage als Datenquelle

So kannst Du die relativ stupide Anzeige der Abfrage im Formular beliebig gestalten, was mit ein paar Mausklicks möglich ist.
Um die PushButtons mit dem jeweiligen Formular zu verbinden, brauchst Du jeweils ein kleines Makro. (3-Zeiler)
Wenn Du bereit bist, Dich etwas mit ooBase zu beschäftigen, sollte das wirklich kein Problem für Dich sein.
Falls Du Probleme mit der oben beschriebenen Vorgehensweise haben solltest, melde Dich. Es wird sich immer jemand finden, der Dir weiterhilft - wenn zu erkennen ist, daß Du selbst bereit bist etwas zu lernen.
Hilfe zur Selbsthilfe ist hier die Überschrift!
Vor allem lasse Dich nicht von ewigen Nörglern beeinflussen! ooBase ist zwar noch nicht vergleichbar mit Access, aber es bietet trotzdem fast alles, was man sich wünschen kann - lernen mußt Du hier wie dort. Und nochwas.... oOffice ist kostenlos!
Gruß eBayer

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Mo, 03.08.2009 21:29
von YumYum
Ok der linkPost klappt nicht recht.

Geh´ zurück auf die Hauptseite, dorthin wo dein Post auch gelistet ist und suche nach YumYum. Drauf klicken, ich glaube "Layout ändern" war das Thema, und dort findest du einen funktionierenden Link, der dich direkt zu dem code führt.

Grüße

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Mo, 03.08.2009 22:35
von schane65
Hallo !

Ich würde mich über einen solchen Dreizeiler auch freuen, da ich mit der Erstellung des Makro so meine Probleme habe. Formulare und Abfragen sind nicht das Problem. Vielleicht kann ich hier mal den Code posten, wie man ein Formular mittels einer Schaltfläche öffnet. Man muss nur den Formularnamen entsprechend ändern und es klappt tadellos.

Sub Formular_aufrufen_Januar

dim sFormularName as string

dim aFormulare()

dim arg(1) as New com.sun.star.beans.PropertyValue

sFormularName = "Januar"



oContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")

oDatenbank = oContext.getByName(StarDesktop.CurrentComponent.getParent.getLocation())

oVerb = oDatenbank.getConnection("","")

arg(0).Name = "OpenMode"

arg(0).Value = "open"

arg(1).Name = "ActiveConnection"

arg(1).Value = oVerb



StarDesktop.CurrentComponent.getParent.getFormDocuments().loadComponentFromURL(sFormularName,"Januar", 0, Arg())

End Sub


Das Makro ist nicht von mir, sondern wurde in einem anderen Forum gepostet und ich denke, man sollte für sowas echt dankbar sein. Vielleicht mag ja jetzt auch jemand eine Makro für eine Abfrage posten.


Danke

Andreas

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Mo, 03.08.2009 22:44
von komma4
Andreas,

wenn Du den Code, den Du postest, nicht in die CODE-Tags setzt, dann wird -je nach Bildschirmauflösung- ein Teil abgeschnitten und ist nicht lesbar.


Zu Deiner Frage:
"eine Abfrage öffnen" ... Du meinst, innerhalb einer BASE-Datei das Gleiche erreichen, wie bei einem Doppelklick?
Dazu gibt es keine API, und ein dispatcher-call dazu ist mir auch nicht bekannt.
Ansonsten beherzige den Rat von eBayer - nehme ein Formular und verbinde das mit der Abfrage.
Dann kommst Du mit Deinem Code -der wurde übrigens hier auch schon mehrfach gepostet [Suchfunktion!]- zum Ziel.

Viel Erfolg!

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Mo, 03.08.2009 22:54
von schane65
Hallo !

Wusste nicht, dass dieser Code schon des öfteren gepostet wurde.
Aber wenn es nichts anderes für Abfragen gibt, werde ich den Rat wohl befolgen.


Danke

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Mo, 03.08.2009 23:12
von eBayer
Hallo, unter 3.1 wäre es ein echter 3-Zeiler.
Da ich nicht weiß, welche Version Du im Einsatz hast, gebe ich Dir lieber eine allgemein gültige Variante:
1. einen 3-Zeiler, der mit dem jeweiligen PushButton zu verbinden ist
2. "Sub OpenForm(sForm)" - Dieses ist der eigentliche Aufruf des Formulars.
Gruß und viel Erfolg
eBayer

Sub OpenFormMeinFormular
OpenForm("MeinFormular")
End Sub

Sub OpenForm(sForm) ' allgemein gültiges Makro zum Start der Formulare. Aufruf: OpenForm("Formularname")
Dim args(1) As New com.sun.star.beans.PropertyValue
Dim container As Variant, oForm As Variant
Dim oContext As Variant, oSource As Variant, oCon As Variant

oContext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
oSource = oContext.getByName( "DeineDatenbank" )
oCon = oSource.getConnection( "" , "" )
container = oCon.Parent.DatabaseDocument.FormDocuments

args(0).Name = "ActiveConnection"
args(0).Value = oCon
args(1).Name = "OpenMode"
args(1).Value = "open"
oForm = container.loadComponentFromURL(sForm,"_blank",0,args())
With oForm.getCurrentController().getFrame().getContainerWindow()
End With
End Sub

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Di, 04.08.2009 07:52
von schane65
Hallo eBayer !

Danke erstmal. Ich werde es heute mal ausprobieren. Im Moment muss ich leider noch OO 2.4 verwenden, aber bald 3.1. Vielleicht haste ja schon mal vorab den Dreizeiler für OO 3.1.
Fragen habe ich aber noch mal:
Entnehme ich der ganzen Diskussion hier, dass es kein Makro gibt, welches mir die Abfrage direkt öffnet? Geht es nur über das Erstellen eines Formulars mit der Abfrage?
Wenn dem so ist, kann ich meine Datenbank diesbezüglich fertig machen, kein Problem. Wenn es jedoch eins gibt, würde ich mich freuen, es über eben diese Alternative zu probieren.

Gruß

Andreas

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Di, 04.08.2009 09:16
von komma4
Andreas,

was ist für Dich "eine Abfrage öffnen"?

Innerhalb einer BASE-Datei kannst Du eine Abfrage doppelklicken, die daraufhin die ermittelten Daten in einem Tabellengitter anzeigt. Möchtest Du das? Dann siehe mein Post von 03.08.09 22:44


Ansonsten müssen Abfragedaten ja irgendwie dargestellt werden ... und das passiert mit der Bindung an ein Formular.

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Mi, 05.08.2009 22:53
von schane65
Hallo !

ebayer, habe deine Antwort nicht richtig durchgelesen. Somit erübrigt sich die Frage bzgl. des Dreizeilers.

Und für komma4:

Das hatte ich schon verstanden und nun auch wohl endgültig die Frage, ob es ein Makro zum Öffnen einer Abfrage gibt. Das ist nicht der Fall, also mit Formular arbeiten.


Danke trotzdem nochmal an alle.


Gruß Andy

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Mi, 05.08.2009 23:07
von eBayer
Hallo Andy,
warum habe ich dir dann soviel dazu geschrieben, wenn du es nicht liest.
finde das ist nicht fair! glaube mal nicht, daß es spaß macht, wenn man sich ehrlich bemüht und dann lesen muß, daß du es ja nicht so genau gelesen hast. Dann solltest Du Dir eine andere Hilfe suchen!
Gruß eBayer

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Mi, 05.08.2009 23:28
von schane65
Hallo eBayer !

So war das nicht gemeint. Dein Posting vom 3.8.09 beinhaltet das Makro für OO 2.4, dann habe ich gelesen, dass du 1. und 2. geschrieben hast. Das hatte ich überlesen, mehr nicht. Ich bin dir für deine Hilfe wirklich dankbar.
Jetzt habe ich mich aber wohl wieder geirrt und gedacht, der erste Dreizeiler sei das Makro fur OO 3.1. Das war aber wohl nicht so, da es bei mir nicht funktioniert. Ich habe es mit der 3.1 Version ausprobiert.


Gruß Andreas

Re: Makro zum Öffnen einer Abfrage per Schaltfläche

Verfasst: Mi, 30.12.2009 01:00
von schane65
Hallo !

Wenn es um Makros geht, bin ich ein Anfänger und ich habe mal nachgeschaut, was du da für eine Fehlermeldung hast. In den Makros, die ich gepostet habe, sehe ich diese Zeile gar nicht. Überprüfe das erstmal, ok?


Gruß Andy