Button im Formular anlegen und mit folgendem Makro verknüpfen:
Code: Alles auswählen
Sub RatenStatus_Updaten()
oDoc = StarDesktop.CurrentComponent
oForm = oDoc.DrawPage.Forms.GetByIndex(0)
'Ermittelt die aktuelle KundenID
oFeld = oForm.getByName("fmtIDKunde")
sIDKunde = oFeld.text
' SQL-Statements
oStatement = ThisDatabaseDocument.CurrentController.ActiveConnection.createStatement
oResultSet = oStatement.executeQuery( "Update ""Kunden"" set ""bisherbezahlt"" = (SELECT SUM( ""bezahlterBetrag"" ) FROM ""Raten"" WHERE ""IDKunde"" = " + sIDKunde + ") where ""IDKunde"" = " + sIDKunde)
oResultSet = oStatement.executeQuery( "Update ""Kunden"" set ""zuletztbezahlt"" = (SELECT ""bezahlterBetrag"" FROM ""Raten"" WHERE ""bezahltam"" in (SELECT MAX( ""bezahltam"" ) FROM ""Raten"" WHERE ""IDKunde"" = " + sIDKunde + ") AND ""IDKunde"" = " + sIDKunde + ") where ""IDKunde"" = " + sIDKunde )
oResultSet = oStatement.executeQuery( "Update ""Kunden"" set ""naechstefaelligam"" = (SELECT MIN( ""Faelligam"" ) FROM ""Raten"" WHERE ""bezahlt"" = False AND ""IDKunde"" = " + sIDKunde + ") where ""IDKunde"" = " + sIDKunde )
'legt einen Filter an und laed das Formular mit den aktualisierten Daten neu
oForm.filter = "IDKunde = " + sIDKunde
oForm.ApplyFilter=true
oForm.reload
end Sub
g