Hallo Zusammen,
ich habe einen Datenbank die mit bestimmten Formularen ausgestattet ist. Jedes Formular wird durch
eine Makro angesteuert. Alles klappt wunderbar, oder besser gesagt hat geklappt. Und das seit 4 Jahren.
Die Datenbank ist mittlerweile auf über 10 000 Einträge gewachsen. Seit 2 Wochen macht die Datenbank
nicht mehr das was sie soll.
Beispiel: auf dem Startformular kann man mittels Button auf das nächste Formular springen, um dann Eintragungen
vornehmen zu können. Durch den Button verschwindet das Startformular und es öffnet sich das nächste Formular.
Das ist alles so gewollt.
Nur jetzt springt er entweder nicht auf das Formular oder beim zurück klicken auf den Startbutton öffnet sich nicht
das Startformular. Zum veranschaulichen hier die entsprechenden Makros.
1. Öffnen der Datenbank:
Sub start
oDatenquelle = ThisDatabaseDocument.CurrentController
If NOT (oDatenquelle.isConnected()) THEN
oDatenquelle.connect()
END IF
oVerbindung=oDatenquelle.ActiveConnection()
oHauptform=ThisDatabaseDocument.FormDocuments.getByName("Hauptformular")
oHauptform.open
end Sub
2. Wechseln zur Dateneingabe (nächstes Formular)
SUB Zu_Formular_von_Formular(oEvent AS OBJECT)
DIM stTag AS String
stTag = oEvent.Source.Model.Tag
aForm() = Split(stTag, ",")
IF Ubound(aForm()) > 0 THEN
ThisDatabaseDocument.FormDocuments.getByName( Trim(aForm(1)) ).open
END IF
ThisDatabaseDocument.FormDocuments.getByName( Trim(aForm(0)) ).close
END SUB
Seht ihr vielleicht einen Fehler oder liegt das an einem Update mit Libre Office zusammen?
Gruß Marc
Fehler beim Anzeigen von Formular in einer Datenbank
Moderator: Moderatoren
-
- **
- Beiträge: 29
- Registriert: Fr, 05.01.2018 08:38
Re: Fehler beim Anzeigen von Formular in einer Datenbank
Wenn es einfach nur nichts tut, würde ich erstmal prüfen, ob Macros überhaupt ausgeführt werden...
MfG, Jörn
MfG, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
-
- **
- Beiträge: 29
- Registriert: Fr, 05.01.2018 08:38
Re: Fehler beim Anzeigen von Formular in einer Datenbank
Guten Morgen,
die Makros werden ausgeführt. Beim öffnen der Datenbank frägt er nach, ob Diese aktiviert werden sollen oder nicht.
gruß Marc
die Makros werden ausgeführt. Beim öffnen der Datenbank frägt er nach, ob Diese aktiviert werden sollen oder nicht.
gruß Marc
Re: Fehler beim Anzeigen von Formular in einer Datenbank
Letzteres sagt doch nichts darüber ob die Makros ausgeführt werden, sondern nur das sie ausgeführt werden können (sofern Du beim Erscheinen des Dialogs zustimmst).die Makros werden ausgeführt. Beim öffnen der Datenbank frägt er nach, ob Diese aktiviert werden sollen oder nicht.
Um zu Prüfen ob ein makro ausgeführt wird schreibne z.B. eine MsgBox-Anweisung an den Anfang des Makros und kontrolliere ob die Msgbox angezeigt wird:
Code: Alles auswählen
Sub start
Msgbox "Makro wurde gestartet"
oDatenquelle = ThisDatabaseDocument.CurrentController
If NOT (oDatenquelle.isConnected()) THEN
oDatenquelle.connect()
END IF
oVerbindung=oDatenquelle.ActiveConnection()
oHauptform=ThisDatabaseDocument.FormDocuments.getByName("Hauptformular")
oHauptform.open
end Sub
Gruß
Stephan
-
- **
- Beiträge: 29
- Registriert: Fr, 05.01.2018 08:38
Re: Fehler beim Anzeigen von Formular in einer Datenbank
Hallo Stephan,
deine Hilfe habe ich eingebaut und die Makros werden jeweils gestartet. Liegt da ein Problem,
bei dem Code unten, dass er vielleicht im Hintergrund nicht mehr zum richtigen Dokument hin und
her switschen kann?
gruß marc
SUB Zu_Formular_von_Formular(oEvent AS OBJECT)
DIM stTag AS String
stTag = oEvent.Source.Model.Tag
aForm() = Split(stTag, ",")
IF Ubound(aForm()) > 0 THEN
ThisDatabaseDocument.FormDocuments.getByName( Trim(aForm(1)) ).open
END IF
ThisDatabaseDocument.FormDocuments.getByName( Trim(aForm(0)) ).close
End Sub
deine Hilfe habe ich eingebaut und die Makros werden jeweils gestartet. Liegt da ein Problem,
bei dem Code unten, dass er vielleicht im Hintergrund nicht mehr zum richtigen Dokument hin und
her switschen kann?
gruß marc
SUB Zu_Formular_von_Formular(oEvent AS OBJECT)
DIM stTag AS String
stTag = oEvent.Source.Model.Tag
aForm() = Split(stTag, ",")
IF Ubound(aForm()) > 0 THEN
ThisDatabaseDocument.FormDocuments.getByName( Trim(aForm(1)) ).open
END IF
ThisDatabaseDocument.FormDocuments.getByName( Trim(aForm(0)) ).close
End Sub
Re: Fehler beim Anzeigen von Formular in einer Datenbank
Das solltest Du uns sagen können indem Du den Code debugst.Liegt da ein Problem,
bei dem Code unten, dass er vielleicht im Hintergrund nicht mehr zum richtigen Dokument hin und
her switschen kann?
Fange z.B. so an das Du Dir den WErte von AForm() anzeigen lässt und schaust ob Diese richtig sind:
Code: Alles auswählen
SUB Zu_Formular_von_Formular(oEvent AS OBJECT)
DIM stTag AS String
stTag = oEvent.Source.Model.Tag
aForm() = Split(stTag, ",")
Msgbox aForm(0) & CHR(13) & aForm(1)
IF Ubound(aForm()) > 0 THEN
ThisDatabaseDocument.FormDocuments.getByName( Trim(aForm(1)) ).open
END IF
ThisDatabaseDocument.FormDocuments.getByName( Trim(aForm(0)) ).close
End Sub
Stephan