Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: OpaOesterweg am November 05, 2019, 14:56:24

Titel: Aceess Runtime Unterformular Datensatz löschen
Beitrag von: OpaOesterweg am November 05, 2019, 14:56:24
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
Titel: Re: Aceess Runtime Unterformular Datensatz löschen
Beitrag von: DF6GL am November 05, 2019, 15:09:42
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.
Titel: Re: Aceess Runtime Unterformular Datensatz löschen
Beitrag von: OpaOesterweg am November 05, 2019, 19:19:09
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
Titel: Re: Aceess Runtime Unterformular Datensatz löschen
Beitrag von: Beaker s.a. am November 05, 2019, 21:17:36
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