Libre Office

Problem bei der Aktualisierung

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Emandu
Beiträge: 25
Registriert: Fr 2. Mai 2025, 16:47

Problem bei der Aktualisierung

Beitrag von Emandu » So 12. Jul 2026, 23:25

Moin aus dem Norden,
ich habe ein Problem in der Hundedatenbank , die ich vor ca. einem Jahr mit eurer Unterstützung fertigstellen konnte. Inzwischen hat sie sich in der Hunde-Osteopathie-Praxis meiner Tochter bewährt und ist dort im täglichen Einsatz, wobei einige Sachen nicht optimal funktionieren und auf eher umständliche Art und Weise bewerkstelligt werden müssen.
Normaler Ablauf:
Kundenformular wird aufgerufen -> Hundedaten werden im über die KundenID verknüpften Ufrm mit angezeigt . Von hier aus wird ein Anamnese Formular aufgerufen, was über die HundeID aus dem Ufrm verknüpft ist. Funktioniert soweit alles bestens.
Problem:
Neuer Kunde wird angelegt -> Hund wird angelegt und gespeichert. HundeID steht danach im Ufrm und Hund ist in der TblHunde erfasst. Wenn man direkt nach der Speicherung der Hundedaten die Anamnese aufruft , zeigt diese den ersten Datensatz der tblHunde an und nicht den passenden zur HundeID im Ufrm.
Erst wenn ich über die im Ufrm vorhandene Navigationsleiste mittels der Pfeiltasten zum nicht vorhandenen imaginären zweiten Hund und direkt wieder zurück zum eben eingetragenen Hund wechsle , kann ich das entsprechende Anamnese Formular öffnen.
Das ist ein gangbarer aber doch auch etwas umständlicher Weg. Was läuft da bei der Aktualisierung schief bzw. wo ist mein Denkfehler ?

Gruß Emandu

Pit Zyclade
* LO-Experte *
Beiträge: 3208
Registriert: Mo 12. Nov 2012, 16:59

Re: Problem bei der Aktualisierung

Beitrag von Pit Zyclade » Mo 13. Jul 2026, 17:17

Anhand deiner Beschreibung mit den Abkürzungen hat man den Eindruck, dass du selber schon Spezialist bist.

Da hier die meisten "Besserwisser" sich deine Datenbank nicht selber vorstellen können, wäre es einfach und hilfreich gewesen, eine leere Beispieldatenbank (also ohne Hunde- und -besitzerangaben) hier hochzuladen. Dann könnte man probieren, experimentieren, bis man was komfortables hat.
LO 25.8.6.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

Emandu
Beiträge: 25
Registriert: Fr 2. Mai 2025, 16:47

Re: Problem bei der Aktualisierung

Beitrag von Emandu » Mo 13. Jul 2026, 21:14

Der Eindruck täuscht, ich habe früher mit Access einige Datenbanken entworfen und die damals üblichen Namenskonventionen auch in LO beibehalten. Das Ganze ist jetzt schon viele Jahre her , ansonsten steht man in Libre Office erstmal wie die Kuh vorm neuen Tor.
Das ist keineswegs abwertend gemeint , ich habe LibreOffice Base inzwischen sehr schätzen gelernt , brauche aber ab und zu Hilfe von den Profis hier im Forum.
Ich habe jetzt die ca. 500 Datensätze komplett rausgenommen und zwei Musterkunden angelegt.
Um mein Problem zu verdeutlichen sollte das aber reichen und ich habe die Datenbank dem Beitrag angefügt.
Wie ich bereits in meinem gestrigen Beitrag erwähnt habe, ist die Datenbank im täglichen Einsatz , hat aber die eine oder andere kleine Macke , die ich jetzt hoffe nach und nach beseitigen zu können.
Das erste Problem ist das gestern Geschilderte.
Der Datensatz wird zwar gespeichert und ich sehe die Änderung im Formular kann aber auf die Änderung erst nach Datensatzwechsel zugreifen.
Ich hatte versucht das Problem mit einem Button und dem Code
.....
SUB Aktualisieren
DIM oSubForm AS OBJECT
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oSubForm = oDrawpage.Forms.getByName ("MainForm").getbyName("SubForm")
'oSubForm = thisComponent.Forms.getByName ("MainForm").getByName("SubForm")
oSubForm.upDateRow()
oSubForm.reload()
END SUB
......
zu lösen, da trat aber ein anderes Problem bei Kunden mit zwei oder mehr Hunden auf, so dass ich zu dieser Variante zurück gewechselt bin.

Gruß Emandu
Dateianhänge
Dogs_1.0_AV - Kopie.odb
(292.41 KiB) 65-mal heruntergeladen

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

Re: Problem bei der Aktualisierung

Beitrag von RobertG » Mi 15. Jul 2026, 07:52

Ohne das weiter angesehen zu haben:

Du speicherst einen Datensatz.
Du lädst das Formular neu.
Das Formular steht beim ersten Datensatz.

Du müsstest, um den aktuellen Datensatz wieder zu erlangen, mit

Code: Alles auswählen

	loRow = oForm.getRow
	oForm.Reload
	IF loRow = 0 THEN
		oForm.MoveToInsertRow
	ELSE
		oForm.Absolute(loRow)
	END IF
arbeiten. Das obige Beispiel muss bei oForm durch oFormSub angepasst werden. Zuerst die Nummer des aktuellen Datensatzes aussuchen. Ist die 0, dann nach dem Reload zur Eingabe eines neuen Datensatzes wechseln. Ist die > 0, dann zu dem vorhergehenden Datensatz springen.
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

Emandu
Beiträge: 25
Registriert: Fr 2. Mai 2025, 16:47

Re: Problem bei der Aktualisierung

Beitrag von Emandu » Mi 15. Jul 2026, 18:25

Danke für den Code.
Ich muss allerdings das Problem etwas genauer verorten. Sorry!
Im Formular und Subformular wird ja alles richtig dargestellt und die Daten werden, wie bereits erwähnt auch korrekt gespeichert.
Der Fehler tritt beim Aufruf der Anamnese an der gekennzeichneten Stelle auf
..........
Sub set_Url_to_Button
sURL = converttourl(replace(ThisDatabasedocument.URL,ThisDatabasedocument.Title,"") & "Diagnoseberichte/")
oSubform = ThisComponent.drawpage.Forms.getbyName("MainForm").getbyName("SubForm")
oButton = oSubform.getbyName("cmdOpenReport")
nHUndeID = oSubform.Columns.getbyName("HundeID").getint
sTargetUrl = sURL & nHUndeID & ".odt"
if not fileexists(sTargetUrl) Then
create_Report(sTargetUrl)
endif
oButton.TargetURL = sTargetUrl
End Sub
.......
Hier müsste ich das abfangen und zwar eben nur beim ersten Aufruf des neu angelegten Hundes, denn ansonsten funktioniert der Code ja prima.
Ich bitte um einen Denkanstoß, wie ich das am elegantesten lösen kann?

Gruß Emandu

Open Office
Antworten