❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Fehler beim Aufruf eines Berichts über externes Formular

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von RobertG » Di 24. Okt 2017, 16:19

Hallo Swordfish,

genau da scheint das Problem zu liegen. Die Zeile

Code: Alles auswählen

oDocument.getCurrentController().connect
läuft so nicht.
Wenn Du xray installiert hast, dann kämen wir schneller weiter. Ich würde mich dann mit Hilfe von

Code: Alles auswählen

xray oDocument
langsam an den Haken rantasten.

Code: Alles auswählen

SUB Kundenliste
DIM oDocument AS OBJECT
DIM Arg()
msgbox "0"
oDocument = StarDesktop.loadComponentFromURL("file:///J:/Documents/Immobilien/Interessentenverwaltung.odb", "_blank", 0, Arg() )
msgbox "1"
IF NOT (oDocument.CurrentController.isConnected()) THEN 
	msgbox "Keine Verbindung"
'	oDocument.getCurrentController().connect	
END IF
msgbox "2"
' Wait(100)
' oDocument.ReportDocuments.getByName("Kundenliste").open
END SUB
Wenn Du die Verbindungszeile raus nimmst: Siehst Du anschließend msgbox 2 und danach die Datenbankdatei? Was passiert, wenn Du dann versuchst, eine Tabelle zu öffnen?

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Swordfish76
Beiträge: 19
Registriert: Di 11. Jul 2017, 20:32

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von Swordfish76 » Mi 25. Okt 2017, 08:37

RobertG hat geschrieben:
Di 24. Okt 2017, 16:19
Hallo Swordfish,

genau da scheint das Problem zu liegen. Die Zeile

Code: Alles auswählen

oDocument.getCurrentController().connect
läuft so nicht.
Wenn Du xray installiert hast, dann kämen wir schneller weiter. Ich würde mich dann mit Hilfe von

Code: Alles auswählen

xray oDocument
langsam an den Haken rantasten.

Code: Alles auswählen

SUB Kundenliste
DIM oDocument AS OBJECT
DIM Arg()
msgbox "0"
oDocument = StarDesktop.loadComponentFromURL("file:///J:/Documents/Immobilien/Interessentenverwaltung.odb", "_blank", 0, Arg() )
msgbox "1"
IF NOT (oDocument.CurrentController.isConnected()) THEN 
	msgbox "Keine Verbindung"
'	oDocument.getCurrentController().connect	
END IF
msgbox "2"
' Wait(100)
' oDocument.ReportDocuments.getByName("Kundenliste").open
END SUB
Wenn Du die Verbindungszeile raus nimmst: Siehst Du anschließend msgbox 2 und danach die Datenbankdatei? Was passiert, wenn Du dann versuchst, eine Tabelle zu öffnen?

Gruß

Robert
Hi Robert,

geklappt hat es leider nicht - und xray ist natürlich auch nicht installiert... :(

Ich erhalte beim Aufruf des Makros die msgbox "0", "1", "keine Verbindung", "2". Danach bleibt Base auf der Datenbank stehen. Klicke ich jetzt auf den Punkt "Tabellen" in der linken Seitenleiste, erhalte ich folgende Meldung:

"Die Verbindung zur Datenquelle "Interessentendatenbank.odb" konnte nicht hergestellt werden. Die Verbindung konnte nicht hergestellt werden. Es wurde kein Speicherbereich oder keine URL angegeben."

Vielleicht hilft Dir das ja weiter. :)

Gruß,
Swordfish76

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von F3K Total » Mi 25. Okt 2017, 17:07

Hi,
dies funktioniert bei mir einwandfrei:

Code: Alles auswählen

SUB Kundenliste
    DIM oDocument AS OBJECT
    DIM Arg()
    oDocument = StarDesktop.loadComponentFromURL("file:///J:/Documents/Immobilien/Interessentenverwaltung.odb", "_blank", 0, Arg() )
    IF NOT (oDocument.CurrentController.isConnected()) THEN 
	    oDocument.getCurrentController().connect	'<------- hier muss das Hochkomma am Anfang der Zeile raus, damit sich die Datenbank verbindet!!!
    END IF
    do
        wait 10
    loop until oDocument.CurrentController.isConnected()
    oDocument.ReportDocuments.getByName("Kundenliste").open
END SUB
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von RobertG » Mi 25. Okt 2017, 19:35

Hallo F3K,

das ist ja gerade das Problem. Sobald die Zeile zum Verbinden drin ist stürzt Base ab.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von RobertG » Mi 25. Okt 2017, 19:59

Hallo Swordfish76,

mein letzter Versuch, nachdem ich über discuss@de.libreoffice.org nachgefragt habe.

Prüfe einmal folgendes:
Öffne Dein externes Formular.
Arbeite mit der Datenbank.
Jetzt öffne die Datenbankdatei nicht über den Button, mit dem Du den Bericht starten willst, sondern direkt auf dem Server.
Kannst Du jetzt über die Datenbankdatei auf die Tabellen zugreifen?
Wenn nicht, dann liegt das Problem nicht an der Ansprechmöglichkeit über ein Makro, sondern hat Gründe in der Konstruktion der *.odb-Datei mit der internen HSQLDB. Dann sollten wir uns, wie Thomas Krumbein in der Mailingliste schreibt, da nicht weiter verrennen. Da wäre es dann besser, die Datenbank als Serverdatenbank laufen zu lassen und die *.odb-Datei nur zum Zugriff auf die Daten zu nutzen.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von F3K Total » Do 26. Okt 2017, 19:08

RobertG hat geschrieben:
Mi 25. Okt 2017, 19:35
das ist ja gerade das Problem. Sobald die Zeile zum Verbinden drin ist stürzt Base ab.
Deshalb habe ich ja die Schleife eingebaut:

Code: Alles auswählen

    do
        wait 10
    loop until oDocument.CurrentController.isConnected()
so wartet er mit dem Öffnen des Berichtes bis die Verbindung da ist.
Vielleicht hilft es.

Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von RobertG » Do 26. Okt 2017, 21:00

Hallo F3K,

das ist ja das Problem: Sobald

Code: Alles auswählen

oDocument.getCurrentController().connect
ausgeführt werden soll stürzt Base ab. Danach ist nichts mehr. Deswegen kommt auch bei geöffneter Base-Datei eine Fehlermeldung, wenn die Tabellen angezeigt werden sollen:
"Die Verbindung zur Datenquelle "Interessentendatenbank.odb" konnte nicht hergestellt werden. Die Verbindung konnte nicht hergestellt werden. Es wurde kein Speicherbereich oder keine URL angegeben."
Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Swordfish76
Beiträge: 19
Registriert: Di 11. Jul 2017, 20:32

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von Swordfish76 » Fr 27. Okt 2017, 10:20

RobertG hat geschrieben:
Mi 25. Okt 2017, 19:59
Hallo Swordfish76,

mein letzter Versuch, nachdem ich über discuss@de.libreoffice.org nachgefragt habe.

Prüfe einmal folgendes:
Öffne Dein externes Formular.
Arbeite mit der Datenbank.
Jetzt öffne die Datenbankdatei nicht über den Button, mit dem Du den Bericht starten willst, sondern direkt auf dem Server.
Kannst Du jetzt über die Datenbankdatei auf die Tabellen zugreifen?
Wenn nicht, dann liegt das Problem nicht an der Ansprechmöglichkeit über ein Makro, sondern hat Gründe in der Konstruktion der *.odb-Datei mit der internen HSQLDB. Dann sollten wir uns, wie Thomas Krumbein in der Mailingliste schreibt, da nicht weiter verrennen. Da wäre es dann besser, die Datenbank als Serverdatenbank laufen zu lassen und die *.odb-Datei nur zum Zugriff auf die Daten zu nutzen.

Gruß

Robert
Hallo Robert,

die Hoffnung stirbt zuletzt, oder? ;-)

Also, ich habe das externe Formular "Kundenverwaltung.odt" (Erfassung der Kundendaten) auf dem Server geöffnet und einen Testkunden eingegeben, gespeichert und wieder verändert. Dieses Formular ist über die Formulareigenschaften direkte mit der Datenbank verbunden. Während der Eingaben und Änderungen war die Datenbank auf dem Server geschlossen. ERGEBNIS: Funktioniert einwandfrei.

Dann habe ich die Datenbank auf dem Server geöffnet und geschaut, ob alles funktioniert, wie es soll. Die Eingaben aus dem externen Formular sind korrekt eingetragen worden, ich kann die Tabellen verändern, Berichte aufrufen... ERGEBNIS: Funktioniert auch einwandfrei.

Meine beiden externen Formulare ("Start.odt für den Aufruf der Berichte und "Kundenverwaltung.odt") sind auch in der Datenbank hinterlegt. Auch sie funktionieren, einwandfrei.

Gruß,
Swordfish76

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von RobertG » Fr 27. Okt 2017, 11:31

Hallo Swordfish,

wie sind denn die Verbindungsdaten der Formulare? Gehst Du da über eine Verbindung rein, die eine angemeldete Datenbank beinhaltet, oder ist dort auch "J:/Documents/Immobilien/Interessentenverwaltung.odb" angegeben?

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Swordfish76
Beiträge: 19
Registriert: Di 11. Jul 2017, 20:32

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von Swordfish76 » Fr 27. Okt 2017, 12:04

RobertG hat geschrieben:
Fr 27. Okt 2017, 11:31
Hallo Swordfish,

wie sind denn die Verbindungsdaten der Formulare? Gehst Du da über eine Verbindung rein, die eine angemeldete Datenbank beinhaltet, oder ist dort auch "J:/Documents/Immobilien/Interessentenverwaltung.odb" angegeben?

Gruß

Robert
Hi Robert,

kleine Korrektur von mir vorab: der Pfad über J:/... ist mein "lokaler" Pfad, also wo meine eigenen Dateien liegen. Der eigentliche Serverpfad wäre dann wie folgt: file:///O:/xxx/Immobilien/Interessenten-Datenbank%20xxxxxxxxxx/Interessentenverwaltung.odb. Hatte das in den Mails nur nicht korrigiert, da ich es für irrelevalt gehalten habe.

bei den Formularen, die in der Datenbank liegen, muß ich nichts machen, klar.
Beim Eingabeformular "Kundenverwaltung.odt" über den Server habe ich über den Formularnavigator -> Main Form -> Daten -> Datenquelle den kompletten Dateipfad mit dem Dateinamen stehen. Bei Art des Inhalts ist "Tabelle" und bei Inhalt "Kundendaten" hinterlegt.

In meinem Formular "Start.odt" ist über den Formularnavigator aktuell nichts separat hinterlegt.
Selbstverständlich habe ich aber auch hier schon etwas experimentiert. Ich habe den Dateipfad inkl. Dateinamen angegeben und z.B. mit der Art des Inhalts gespielt, aber ohne Erfolg.
Auch hatte ich versucht, das Ganze mit und ohne in LO angemeldeter Datenbank zu testen, ebenfalls ohne positiven Erfolg.

Gruß,
Swordfish76


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten