🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ 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. 🤗

(Gelöst) Fehlermeldung beim Speichern eines neuen Datensatzes

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
freddie1962
Beiträge: 12
Registriert: Di 25. Jun 2024, 07:35

(Gelöst) Fehlermeldung beim Speichern eines neuen Datensatzes

Beitrag von freddie1962 » Di 2. Jul 2024, 07:48

Ich habe mehr oder weniger eine Datenbank mit vielen Personen, dazu habe ich ein Formular in dem ich diese Personen filtern kann nach ihrem Namen. Jedoch möchte ich nun in diesem Formular eine Schaltfläche mit "Benutzer hinzufügen" und "Benutzer speichern" hinzufügen. Dazu habe ich jeweils ein Makro geschrieben für diese Dinge. das Benutzer hinzufügen funktioniert auch so weit, er switched in den Einfügemodus und ich kann Dinge in meine Felder eingeben, jedoch das Speichern funktioniert nicht, da ein Error kommt sobald ich auf die Schaltfläche klicke. Vielleicht kann mir hierbei jemand weiterhelfen. Anbei füge ich meine beiden geschriebenen Makros hinzu.

Hier die zwei Fehlermeldungen: Fehler beim Schreiben des aktuellen Datensatzes at C:/LO/lode/dev/core/connectivity/source/commontools/dbtools.cxx:744

BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.sdbc.SQLException
Message: Fehler in der Funktionsfolge. at C:/LO/lode/dev/core/connectivity/source/commontools/dbexception.cxx:342.


Sub addUser
Dim oForm As Object
Dim oUnterformular As Object

' Referenzieren Sie das Hauptformular
oForm = ThisComponent.DrawPage.Forms.getByName("Filter")

' Überprüfen Sie, ob das Hauptformular gefunden wurde
If IsNull(oForm) Then
MsgBox "Hauptformular 'Filter' nicht gefunden.", 16, "Fehler"
Exit Sub
End If

' Referenzieren Sie das Unterformular
oUnterformular = oForm.getByName("FilterUnter")

' Überprüfen Sie, ob das Unterformular gefunden wurde
If IsNull(oUnterformular) Then
MsgBox "Unterformular 'FilterUnter' nicht gefunden.", 16, "Fehler"
Exit Sub
End If

' Wechseln Sie in den Einfügemodus für das Unterformular
oUnterformular.moveToInsertRow()
End Sub



Sub saveUser
Dim oForm As Object
Dim oUnterformular As Object

' Referenzieren Sie das Hauptformular
oForm = ThisComponent.DrawPage.Forms.getByName("Filter")

' Überprüfen Sie, ob das Hauptformular gefunden wurde
If IsNull(oForm) Then
MsgBox "Hauptformular 'Filter' nicht gefunden.", 16, "Fehler"
Exit Sub
End If

' Referenzieren Sie das Unterformular
oUnterformular = oForm.getByName("FilterUnter")

' Überprüfen Sie, ob das Unterformular gefunden wurde
If IsNull(oUnterformular) Then
MsgBox "Unterformular 'FilterUnter' nicht gefunden.", 16, "Fehler"
Exit Sub
End If

' Speichern Sie den neuen Datensatz im Unterformular
oUnterformular.updateRow()
End Sub




Danke schon mal!
Zuletzt geändert von freddie1962 am Mi 3. Jul 2024, 09:06, insgesamt 1-mal geändert.

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

Re: Fehlermeldung beim Speichern eines neuen Datensatzes

Beitrag von RobertG » Di 2. Jul 2024, 07:58

Ich verstehe erst einmal nicht, was der ellenlange Code soll.
Wenn der Button in dem Formular liegt, das abgespeichert werden soll, dann reicht doch

Code: Alles auswählen

SUB Speichern(oEvent AS OBJECT)
   oForm = oEvent.Source.Model.Parent
Dann: Der Cursor bleibt doch im Makroeditor dort stehen, wo der Fehler ist. Ich vermute einmal bei updateRow().
Neuer Datensatz → InsertRow
Bestehender Datensatz → UpdateRow

Warum machst Du das Ganze eigentlich mit Makros? Der Button stellt doch die Eigenschaft "neuer Datensatz" und "Speichern" direkt (unter Eigenschaften → Aktion) zur Verfügung.
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


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