Hmm ok ich werd das mal versuchen...
Dachte halt wenn man so vorgeht wie in dem Link von ,4 angegeben nimmt er die Daten aus der Datenbank komplett also mit den Makros und nicht nur die Base daten Einträge.
dann bin ich mal gespannt ob das Makro läuft wenn ich es außerhalb starte oder ob das Makro dann garnet mehr geht ......
Formular über Button starten [gelöst]
Moderator: Moderatoren
Re: Formular über Button starten [gelöst]
Habs befürchtet Das Makro läuft dann nicht mehr....
Bevor ich jetzt anfange und mühevoll das Makro ändere...frag ich lieber nach... kann ich Base starten und dann automatisch das Formular dabei öffnen?
Also ohne nachzufragen welche datenbank er öffnen.
Bevor ich jetzt anfange und mühevoll das Makro ändere...frag ich lieber nach... kann ich Base starten und dann automatisch das Formular dabei öffnen?
Also ohne nachzufragen welche datenbank er öffnen.
Re: Formular über Button starten [gelöst]
Code: Alles auswählen
oCon = ThisDatabaseDocument.CurrentController
Ein bestimmtes Formular bei Datenbankstart öffnen:
ein Makro wie dieses erstellen:
Code: Alles auswählen
Sub StartUpDatabase
' stellt die Verbindung zu den Daten her
ThisComponent.DataSource.ConnectWithCompletion(createUnoService("com.sun.star.sdb.InteractionHandler"))
If isNull(ThisDatabaseDocument.CurrentController.ActiveConnection) Then
ThisDatabaseDocument.CurrentController.Connect
End If
' öffnet das Forular
ThisDatabaseDocument.FormDocuments.getByName( "Zentralformular" ).open ' oder wie auch immer Dein zu öffnendes Formular heisst
end sub
Datenbankfenster: Menü: Extras/Anpassen, und da im Index:Ereignisse dem Ereignis 'Dokument öffnen' das Makro zuweisen.
Unter der Liste ist ein Listenfeld 'Speichern in', dort vorzugsweise die aktuelle Datenbank auswählen, sonst startet das Makro bei jedem Base-Start...
g
g
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
Re: Formular über Button starten [gelöst]
Code: Alles auswählen
If isNull(ThisDatabaseDocument.CurrentController.ActiveConnection) Then
In der Zeile sagt er mir das die Objektvariable nicht belegt ist.
Oder muss ich "isNull" durch den Namen meiner Datenbank ersetzten?
Der Einwand mit der Codezeile
Code: Alles auswählen
oCon = ThisDatabaseDocument.CurrentController

Ich denke aber Wenn das Makro zum Automatischen Formular öffnen läuft dürfte das für die Anwender einfach genug sein, die haben dann ja nur eine Datenbank und müssen nicht wählen.
Was mich jetzt noch interessieren würde woher habt ihr die ganzen Befehle und wisst wie ihr die Datenbanken ansprechen könnt? Ich frage immer hier im Forum nach was ja schön einfach und schnell ist
aber es gibt doch bestimmt ne seite mit Befehlen der nen "Online Kurs" oder sowas oder?
Re: Formular über Button starten [gelöst]
... kommt der Fehler beim Starten des Formulars das Du Dir "rauskopiert" hast? - das Formular ist keine Datenbank, also gibt's auch kein Objekt "ThisDatabaseDocument". Die Anleitung bezog sich auf die Datenbankdatei. Das "rauskopierte" Writerformular hat nichts mehr mit der Datenbank am Hut, denn beim "Rauskopieren" wird die Verbindung zu den Daten gekappt. Du solltest eigentlich keine Daten aus der Datenbank in dem Formular sehen können! Wenn Du das Makro in der Bibliothek der Datenbank speicherst, dann ist "ThisDatabaseDocument" zu Beginn der Sub sicher schon definiert.
g
g
g
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
Re: Formular über Button starten [gelöst]
Ne ich habe das Makro normal in die Datenbank gespeichert das Externe Formular benutzte ich garnicht mehr.