Jak uživatele vyzvat k uložení změn záznamu ve formuláři v Accessu

Původní číslo KB: 197103

Tip

Vyžaduje základní dovednosti v oblasti maker, kódování a vzájemné spolupráce.

Souhrn

Když přejdete na další záznam ve formuláři nebo zavřete formulář, microsoft Access automaticky uloží všechny změny, které jste v aktuálním záznamu udělali. V tomto článku se dozvíte, jak použít proceduru události BeforeUpdate k zobrazení výzvy k ověření operace uložení, než bude aplikace Microsoft Access pokračovat.

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci, bez žádné záruky výslovně uvedené nebo odvozené, včetně, bez omezení, odvozených záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že uživatel je obeznámen s programovacím jazykem, který je předmětem ukázky, a s nástroji použitými pro vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu, nemohou však následující příklady rozšířit o další funkce nebo konstrukce podle konkrétních požadavků uživatele.

Další informace

Upozornění

Pokud budete postupovat podle kroků v tomto příkladu, upravíte Northwind.mdb ukázkové databáze. Můžete chtít zálohovat soubor Northwind.mdb a postupovat podle těchto kroků v kopii databáze.

Tento příklad používá proceduru události BeforeUpdate ve formuláři Zákazníci k zobrazení výzvy k potvrzení změn před uložením záznamu aplikací Microsoft Access:

  1. Otevřete ukázkovou databázi Northwind.mdb a v návrhovém zobrazení otevřete formulář Zákazníci.

  2. Nastavte vlastnost formuláře BeforeUpdate na následující proceduru události:

    Private Sub Form_BeforeUpdate(Cancel As Integer)
    
     ' This procedure checks to see if the data on the form has
     ' changed. If the data has changed, the procedure prompts the
     ' user to continue with the save operation or to cancel it. Then
     ' the action that triggered the BeforeUpdate event is completed.
    
     Dim ctl As Control
    
     On Error GoTo Err_BeforeUpdate
    
     ' The Dirty property is True if the record has been changed.
     If Me.Dirty Then
       ' Prompt to confirm the save operation.
       If MsgBox("Do you want to save?", vbYesNo + vbQuestion, _
               "Save Record") = vbNo Then
          Me.Undo
       End If
     End If
    
    Exit_BeforeUpdate:
     Exit Sub
    
    Err_BeforeUpdate:
     MsgBox Err.Number & " " & Err.Description
     Resume Exit_BeforeUpdate
    End Sub
    
  3. V nabídce Debug (Ladění ) klikněte na Compile Northwind (Zkompilovat Northwind).

  4. V nabídce File (Soubor ) klikněte na Save Northwind (Uložit Northwind).

  5. V nabídce File (Soubor ) klikněte na Close And Return to Microsoft Access (Zavřít a vrátit se do Aplikace Microsoft Access).

Když teď provedete změnu záznamu a pak přejdete na jiný záznam nebo zavřete formulář, zobrazí se výzva k potvrzení, že chcete aktuální záznam uložit. Pokud kliknete na Ne, záznam se resetuje a operace bude pokračovat jako obvykle.