Seite 1 von 1

ooBase - Datensatz löschen - event canceln oder mehr

Verfasst: Sa, 14.04.2012 10:07
von JannieV
Problem:
In einem ooBase-Form möchte ich das Event "Löschen" abfangen und mit weiteren Aktionen versehen. Dazu habe ich ein Makro geschrieben und in das Event des Formulars eingehängt (Ereignis "Löschen bestätigen"). Wenn ich in diesem Event nichts veranlasse, bleibt die übliche Abfrage aus, ob der Datensatz gelöscht werden darf.
Ich würde diese Abfrage gerne mit einem eigenen Text (MsgBox) durchführen und, wenn gelöscht wird, auch weitere Datensätze bzw. es geht auch um extern gelagerte Daten und Dateien, diese mit beeinflussen.

Lösung mit Listener?
Im Forum gibt es bereits einen Lösungsansatz mit einem Listener-Objekt. Wenn diese Lösung vielleicht etwas präzisiert oder das Thema Listener etwas verdeutlicht wird, kann ich mir den Rest erarbeiten.

Weitere Frage?
Wo finde ich die Informationen, welche Recordsets von der Aktion betroffen wären?
Dazu müsste es ja irgendeine Enumerations geben oder eine Where-Klausel einer SQL-Abfrage.

System:
MS-Win7
Open-Office 3.2.1
Formulare mit Open-Office-Basic-Makros

Danke schon mal ...

Re: ooBase - Datensatz löschen - event canceln oder mehr

Verfasst: So, 15.04.2012 22:10
von DPunch
Servus

Dieses Makro dem Ereignis zuweisen:

Code: Alles auswählen

Function ConfirmDelete(oEvt) as Boolean
	nRowCount = oEvt.Rows
	If 6 <> MsgBox("Sie beabsichtigen " & nRowCount & " Zeilen zu löschen." & Chr(13) & "Fortfahren?", 36) Then
		ConfirmDelete = False
		Exit Function
	Else
		ConfirmDelete = True
	End If
	'Hier dann weitere Aktionen nach Belieben
End Function

Re: ooBase - Datensatz löschen - event canceln oder mehr

Verfasst: Mi, 18.04.2012 11:43
von JannieV
1000 Dank dPunch

funktioniert einwandfrei - über den Cursor kriege ich dann die Infos zu dem zu löschenden Datensatz und kann entsprechend die anderen Elemente dann ebenfalls löschen. Funktioniert allerdings nur für einen, markierten Datensatz.

Muss mich nochmal mit beschäftigen, wenn mehrere Datensätze in einer Tabelle selektiert wurden und dann "Löschen" aufgerufen wird. Wenn Du auch dafür einen Tipp hast, würde ich mich freuen, ansonsten suche ich noch ein wenig ...

Besten Dank noch mal.