Color scheme: Light
You are here: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Datensätze neben der Liste bearbeiten

Datensätze neben der Liste bearbeiten

Öffnen Sie ein Bearbeitungsformular in einem Bereich rechts neben einer Liste, sobald der Benutzer einen Datensatz wählt – ohne Dialogfeld und ohne die Liste zu verlassen.

Voraussetzungen: WKL Forms Object Library 1.48 oder höher.

Lösungsüberblick

Ein WklDrawer liegt zwischen der Liste und einem Unterformular-Steuerelement. Content nennt das Unterformular-Steuerelement, Open zeigt darin ein Formular an, Close blendet es wieder aus. Das Bearbeitungsformular ist ein gewöhnliches Access-Formular; der Drawer platziert es nur. Filtern Sie es in AfterOpen oder über die Verknüpfungsfelder des Unterformular-Steuerelements auf den Datensatz.

Umsetzung

In der Entwurfsansicht: Legen Sie die Liste links ab, ein Unterformular-Steuerelement sfBearbeiten rechts, und zeichnen Sie WKL Drawer (Formularentwurf › Steuerelemente › ActiveX-Steuerelemente) als schmale Leiste in die Lücke; nennen Sie es drw1. Wählen Sie im Designer ([...] in der Zeile Benutzerdefiniert, Seite Bereich) sfBearbeiten als Inhalt; die Vorschau nennt die Steuerelemente, die schmaler werden.

Private Sub lstKunden_DblClick(Cancel As Integer)
    Me!drw1.Object.Open "frmKundeBearbeiten"
End Sub
 
Private Sub drw1_AfterOpen(ByVal SourceObject As String)
    ' The content is loaded now: show the chosen record.
    Me!sfBearbeiten.Form.Filter = "KundeID = " & Me!lstKunden
    Me!sfBearbeiten.Form.FilterOn = True
End Sub
 
Private Sub drw1_BeforeClose(ByVal Reason As Long, Cancel As Integer)
    ' Keep the panel open while the record there has unsaved changes.
    If Me!sfBearbeiten.Form.Dirty Then Cancel = True
End Sub

Verschiedene Inhalte können eine eigene Breite haben:

With Me!drw1.Object
    .Widths = "{""frmKundeBearbeiten"": 4500, ""frmBestellmatrix"": 9000}"
    .MinBeside = 3402            ' 6 cm of the list stay visible
    .CloseOnEscape = True        ' Esc in an unchanged record closes the panel
End With

Hinweise

  • Reason von BeforeClose und Closed ist ein WklDrawerCloseReason: wdcCode (Close, Toggle, ein neues Open), wdcUser (die Schaltfläche zum Schließen, Eingabetaste oder Leertaste auf der Leiste), wdcEscape.
  • Das Setzen von Width per Code löst kein AfterResize aus; das tun nur Ziehen, eine Pfeiltaste oder UI Automation, und nur diese Breiten werden für den Benutzer gespeichert (AutoSaveLayout).
  • Lassen Sie die Verankerung der Liste und des Unterformular-Steuerelements auf Oben links: Der Drawer berechnet jede Anordnung aus den entworfenen Positionen. Verankerungen im Inhaltsformular sind erwünscht; mit AnchorContent wendet der Drawer sie an.
  • Entwerfen Sie das Inhaltsformular ohne horizontale Bildlaufleiste und nicht breiter als bei seiner schmalsten Verwendung: Access lässt ein Formular zur Laufzeit wachsen, aber nicht schrumpfen.
  • Solange der Datensatz im Inhalt geändert ist, tut Esc, was es in Access tut (es macht die Änderung rückgängig); nur Esc in einem unveränderten Datensatz schließt den Bereich.

Verwandte Themen

de/wiki/msaccess/comctl/how-to/edit-records-beside-the-list.txt · Last modified: by Wolfgang van der Stille