Seite 1 von 1

(Gelöst) Fehlermeldung beim Speichern eines neuen Datensatzes

Verfasst: Di 2. Jul 2024, 07:48
von freddie1962
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!

Re: Fehlermeldung beim Speichern eines neuen Datensatzes

Verfasst: Di 2. Jul 2024, 07:58
von RobertG
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.