
Problem bei der Aktualisierung
Problem bei der Aktualisierung
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
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: 3209
- Registriert: Mo 12. Nov 2012, 16:59
Re: Problem bei der Aktualisierung
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.
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.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Problem bei der Aktualisierung
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
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
Re: Problem bei der Aktualisierung
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
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.
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
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Problem bei der Aktualisierung
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
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
Re: Problem bei der Aktualisierung
Die Datenbank runtergeladen haben 115 User. Auf das Problem eingegangen ist 1 User, der sich allerdings laut eigenen Worten das Problem nur nebenbei ansehen konnte...
Es ist schade, viele gute Informationsquellen ( wie auch dieses Forum) schlafen immer mehr ein. Das ist keine
Rundumschelte, die kann ich mir nicht anmaßen da ich ja auch selbst wenig beitrage .
Es ist ein reines zur Kenntnis nehmen und Bedauern.
Liegt es am mangelnden Wissen um anderen zu helfen (wie bei mir) und jeder stellt hier sein Problem ein, was dann von 2 oder 3 kompetenten Experten gelöst wird ? Diese Experten verlieren dann irgendwann die Lust oder haben wenig bis keine Zeit ? Sind es finanzielle Aspekte um das Forum am Leben zu erhalten ?
Oder woran kann man die "Ruhe" festmachen ?
Grüße aus dem Norden
Emandu
Es ist schade, viele gute Informationsquellen ( wie auch dieses Forum) schlafen immer mehr ein. Das ist keine
Rundumschelte, die kann ich mir nicht anmaßen da ich ja auch selbst wenig beitrage .
Es ist ein reines zur Kenntnis nehmen und Bedauern.
Liegt es am mangelnden Wissen um anderen zu helfen (wie bei mir) und jeder stellt hier sein Problem ein, was dann von 2 oder 3 kompetenten Experten gelöst wird ? Diese Experten verlieren dann irgendwann die Lust oder haben wenig bis keine Zeit ? Sind es finanzielle Aspekte um das Forum am Leben zu erhalten ?
Oder woran kann man die "Ruhe" festmachen ?
Grüße aus dem Norden
Emandu
-
Pit Zyclade
- * LO-Experte *
- Beiträge: 3209
- Registriert: Mo 12. Nov 2012, 16:59
Re: Problem bei der Aktualisierung
Du beschreibst dein Problem viel zu komplex.
z.B. ich bin mit Programmieren gar nicht so vertraut. Da gibt es doch noch ein Unterforum, nicht wahr?
"Problem bei der Aktualisierung" sagt ja auch fast gar nichts, nämlich nicht einmal, was du aktualisieren willst... jedenfalls willst du nicht base oder LO aktualisieren...
Aber das wurde wohl schon geklärt?!
Mach kleine schrittweise Fragen als Betreff und im jeweils richtigen Forum...
Übrigens Hunde... spricht für kommerzielles, ist in diesem Forum nicht ganz richtig.
Sprich doch einen Programmierer gegen Cash an und er wird gerne arbeiten, weil doch alle hier klamm sind.
z.B. ich bin mit Programmieren gar nicht so vertraut. Da gibt es doch noch ein Unterforum, nicht wahr?
"Problem bei der Aktualisierung" sagt ja auch fast gar nichts, nämlich nicht einmal, was du aktualisieren willst... jedenfalls willst du nicht base oder LO aktualisieren...
Aber das wurde wohl schon geklärt?!
Mach kleine schrittweise Fragen als Betreff und im jeweils richtigen Forum...
Übrigens Hunde... spricht für kommerzielles, ist in diesem Forum nicht ganz richtig.
Sprich doch einen Programmierer gegen Cash an und er wird gerne arbeiten, weil doch alle hier klamm sind.
LO 25.8.6.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Problem bei der Aktualisierung
Danke Pit für deine Meinung zu meinem Beitrag.
Meine Intention hier in diesem Forum zu sein ist mich auszutauschen, zu lernen und zu verstehen.
Den größten Teil dieser Datenbank habe ich mit dieser Vorgehensweise selbst entworfen, so dass ich den Vorschlag einen Programmierer anzusprechen eher geeignet finden würde, wenn ich in den Raum stelle "Kann mir mal jemand eine Datenbank zu dem oder dem Thema entwerfen". Das ist allerdings nicht der Fall !!
Du sprichst die kommerzielle Nutzung von LibreOffice an... Soviel ich weiß ist dies ausdrücklich erlaubt.
Verbessere mich, wenn ich da falsch liegen sollte.
Ich kann allerdings den Administrator dieses Forums bitten, den Threat komplett zu entfernen, wenn er gegen die Regeln verstößt.
Was ich hiermit auch ausdrücklich tue !
Ich bin dem auch nur nachgekommen, weil du das Einstellen der Datenbank vorgeschlagen hattest. Die Thematik und das Einsatzgebiet hatte ich zu dem Zeitpunkt schon dargelegt
Gruß Emandu
Meine Intention hier in diesem Forum zu sein ist mich auszutauschen, zu lernen und zu verstehen.
Den größten Teil dieser Datenbank habe ich mit dieser Vorgehensweise selbst entworfen, so dass ich den Vorschlag einen Programmierer anzusprechen eher geeignet finden würde, wenn ich in den Raum stelle "Kann mir mal jemand eine Datenbank zu dem oder dem Thema entwerfen". Das ist allerdings nicht der Fall !!
Du sprichst die kommerzielle Nutzung von LibreOffice an... Soviel ich weiß ist dies ausdrücklich erlaubt.
Verbessere mich, wenn ich da falsch liegen sollte.
Ich kann allerdings den Administrator dieses Forums bitten, den Threat komplett zu entfernen, wenn er gegen die Regeln verstößt.
Was ich hiermit auch ausdrücklich tue !
Ich bin dem auch nur nachgekommen, weil du das Einstellen der Datenbank vorgeschlagen hattest. Die Thematik und das Einsatzgebiet hatte ich zu dem Zeitpunkt schon dargelegt
Gruß Emandu
