Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Aceess Runtime Unterformular Datensatz löschen

Begonnen von OpaOesterweg, November 05, 2019, 14:56:24

⏪ vorheriges - nächstes ⏩

OpaOesterweg

Hallo,
in der Runtime Version von Access sind alle Kontextmenüs ausgeblendet und der größte Teil der TastaturKürzel funktioniert auch nicht.
Hat jemand eine Idee, wie es trotzdem möglich ist, einen Datensatz aus der Datenblattansicht eines Unterformulars zu löschen.
(In der Vollversion von Access ganz einfach möglich durch [Entf] oder rechte Maustaste - Kontextmenü).
Noch eine Zusatzfrage:
Welches Ereignis wird ausgelöst, wenn ich den Datensatz markiere?

Danke
OpaOesterweg

DF6GL

Hallo,

Idee:  Per VBA bei Doppel-Klick auf den Datensatzmarkierer eine Löschabfrage in der dazugehörenden Ereignisprozedur  absetzen.

Private Sub Form_DblClick(Cancel As Integer)
  CurrentDb.Execute "Delete * from tblTabelle Where IDFeld = " & Me!IDFeld
End Sub



Wenn der Datensatzmarkierer angeklickt (markiert) wird, löst das das Form_Click-Ereignis aus.

OpaOesterweg

Nochmals schönen Dank an Franz vom Bodensee.
Ich habe dann noch etwas mit dem Form-Ereignissen experimentiert und schließlich folgende Code gefunden:

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

    Select Case Button
        Case 2
        If Me.Form.SelWidth <> 7 Then Exit Sub
        If MsgBox("Ausgewählten Datensatz löschen?", vbYesNo) = vbYes Then
            CurrentDb.Execute "Delete * from tblPosition Where ID = " & Me.ID
        End If
    End Select

End Sub

Bei MausUp hat der Datensatzzeiger auf den aktuellen DS gewechselt (bei MausDown ist noch der vorherige drin). Dann werte ich nur die rechte Maustaste aus und mit SelWith kann ich ziemlich sicher herausfinden, ob der User auch wirklich eine Zeile und nicht eine Spalte markiert hat. Dazu muß ich natürlich vorher SelWith der Tabelle heraustesten. Klappt einwandfrei.

Viele Grüße aus Westfalen
Rolf

Beaker s.a.

Hallo Rolf,
ZitatWelches Ereignis wird ausgelöst, wenn ich den Datensatz markiere?
Beim Anzeigen (Form_Current)
ZitatBei MausUp hat der Datensatzzeiger auf den aktuellen DS gewechselt
Um das zu gewährleisten verwende ich das o.a. Ereignis. Da muss ich erstens
nicht mir den Mouse-Ereignissen "rummachen", und vor allem funzt das auch
wenn ich Datensätze mit den Pfeiltasten ansteuere und das Ereignis wird beim
Klick auf den Spaltenkopf gar nicht ausgelöst.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)