Como pedir ao utilizador para guardar as alterações a registar num formulário no Access

Número original da BDC: 197103

Sugestão

Necessita de competências básicas de macro, programação e interoperabilidade.

Resumo

Quando passa para o registo seguinte num formulário ou fecha um formulário, o Microsoft Access guarda automaticamente todas as alterações efetuadas ao registo atual. Este artigo mostra-lhe como utilizar um procedimento de evento BeforeUpdate para lhe pedir para verificar a operação de guardar antes de o Microsoft Access continuar.

A Microsoft fornece exemplos de programação apenas a título informativo, sem qualquer garantia expressa ou implícita, incluindo, sem limitações, as garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que o utilizador está familiarizado com a linguagem de programação demonstrada e as ferramentas utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às suas necessidades específicas.

Mais Informações

Atenção

Se seguir os passos neste exemplo, modifique a base de dados de exemplo Northwind.mdb. Poderá querer fazer uma cópia de segurança do ficheiro Northwind.mdb e seguir estes passos numa cópia da base de dados.

Este exemplo utiliza o procedimento de evento BeforeUpdate no formulário Clientes para pedir ao utilizador para confirmar as alterações antes de o Microsoft Access guardar o registo:

  1. Abra a base de dados de exemplo Northwind.mdb e abra o formulário Clientes na vista Estrutura.

  2. Defina a propriedade do BeforeUpdate formulário para o seguinte procedimento de evento:

    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. No menu Depurar , clique em Compilar Northwind.

  4. No menu Ficheiro , clique em Guardar Northwind.

  5. No menu Ficheiro , clique em Fechar e Regressar ao Microsoft Access.

Agora, quando efetua uma alteração a um registo e, em seguida, muda para um registo diferente ou fecha o formulário, é-lhe pedido que confirme que pretende guardar o registo atual. Se clicar em Não, o registo será reposto e a operação continuará normal.