BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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
Beiträge: 2732
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
Beiträge: 2409
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 10: AOO, LO Linux Mint: AOO, LO

RobertG
Beiträge: 2732
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
Beiträge: 2732
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
Beiträge: 2409
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 10: AOO, LO Linux Mint: AOO, LO

RobertG
Beiträge: 2732
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
Beiträge: 2732
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 nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten