Barvna shema: Riviera
Trenutno dejavna stran: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Zadržanje uporabnika na strani z neshranjenimi spremembami

Zadržanje uporabnika na strani z neshranjenimi spremembami

Ko uporabnik v WklNavBar izbere drug vnos, ga zadržite na strani, ki jo ureja, namesto da bi izgubil spremembe ali bi se te neopazno shranile.

Zahteva WKL Forms Object Library 1.24 ali novejšo različico.

Pregled rešitve

BeforeNavigate se izvede, preden vrstica spremeni izbor; nastavitev Cancel ohrani trenutni vnos in prepreči Navigate, zato stran ostane taka, kot je. Form.Dirty podobrazca strani pove, ali ima prikazani zapis neshranjene spremembe.

Izvedba

Private Sub navMain_BeforeNavigate(ByVal Key As String, Cancel As Integer)
    If PageDirty() Then
        Select Case MsgBox("Ali želite shraniti spremembe?", vbYesNoCancel + vbQuestion)
            Case vbYes: Cancel = Not SavePage()
            Case vbNo: Me!sfPage.Form.Undo
            Case Else: Cancel = True
        End Select
    End If
End Sub
 
Private Sub navMain_Navigate(ByVal Key As String)
    Me!sfPage.SourceObject = "Form." & Key
End Sub
 
' A page showing a table or an unbound form has no unsaved record.
Private Function PageDirty() As Boolean
    On Error Resume Next
    PageDirty = Me!sfPage.Form.Dirty
End Function
 
' Saves the page's record; False when Access refused it (validation rule, required field).
Private Function SavePage() As Boolean
    On Error Resume Next
    Me!sfPage.Form.Dirty = False
    SavePage = (Err.Number = 0)
End Function

Opombe

  • BeforeNavigate sprožijo le izbire uporabnika (klik, Enter, preslednica, UI Automation). Nastavitev SelectedKey s kodo ne sproži ničesar, zato lahko koda označi vnos strani, ki jo je odprla sama.
  • Vrstica, vezana na tabelo za krmarjenje, sama vpraša, preden cilj s podobrazcem zamenja stran z neshranjenim zapisom, tako kot Access ob zapiranju spremenjenega načrta (ConfirmUnsavedChanges, privzeto True); zgornja koda je namenjena vrstici, ki svoje strani prikazuje v Navigate.
  • Ko ima stran neshranjene spremembe, se izbira prekliče, stran in izbor pa ostaneta; po Undo ista izbira zamenja stran.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/stay-on-a-page-with-unsaved-changes.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille