ID do artigo: 248011 - Última revisão: quinta-feira, 23 de junho de 2005 - Revisão: 2.0

ACC2000: Como controle vinculados formulário transações nos bancos de dados do Access

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Avançadas: Requer especialista de codificação, interoperabilidade e habilidades de multiusuário.

Este artigo se aplica somente a um banco de dados do Microsoft Access (.mdb).

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo mostra como você usa Data Access Objects (DAO) para transações de controle em um formulário que é baseado em uma tabela (um formulário acoplado) em um banco de dados do Microsoft Access (Jet).

Mais Informações

Normalmente, um desenvolvedor precisa ser capaz de permitir que os usuários de uma confirmação de aplicativo de banco de dados todas ou nenhuma das suas alterações de dados em um formulário. Em versões anteriores à versão 2000 do Access, você não pode encapsular alterações de dados em formulários vinculados dentro de transações. Isso era porque todas as transações em formulários vinculados foram tratadas em um espaço de separado trabalho, acessível apenas ao Microsoft Access.

No Microsoft Access 2000, no entanto, você pode usar uma combinação de Data Access Objects (DAO) e o novo, formulário propriedade Recordset para fornecer esse recurso. O exemplo neste artigo assume que o usuário quer ser solicitado a confirmar todas as alterações feitas nos dados do formulário quando o usuário fecha o formulário. Nesse momento, o usuário ou pode confirmar todas as alterações ou nenhuma das alterações.

Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação para uma finalidade específica. Este artigo presume que você está familiarizados com a linguagem de programação que está sendo demonstrada e com as ferramentas que são usadas para criar e depurar procedimentos. Engenheiros de suporte podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades. Observação : O código de exemplo neste artigo usa o Microsoft Data Access Objects. Para que este código seja executado corretamente, você deve fazer referência a Microsoft DAO 3.6 Object Library. Para fazer isso, clique em referências no menu Ferramentas no Editor do Visual Basic e veja que a caixa de seleção Microsoft DAO 3.6 Object Library está selecionada.

Observação : Este exemplo foi projetado para funcionar com formulários principais único. Ele não é projetado para trabalhar com subformulários vinculados.

Controle de transações em formulários vinculados

  1. Abra o banco de dados de exemplo Northwind.mdb.
  2. Crie um novo formulário baseado na tabela Customers.
  3. Adicione todos os campos à seção detalhe do formulário.
  4. No menu Exibir , clique em código para exibir o módulo do formulário e, em seguida, adicione o código a seguir ao módulo:
    Option Compare Database
    Option Explicit
    
    Private boolFrmDirty As Boolean
    Private boolFrmSaved As Boolean
    
    Private Sub Form_AfterDelConfirm(Status As Integer)
        If Me.Saved = False Then Me.Saved = (Status = acDeleteOK)
    End Sub
    
    Private Sub Form_AfterUpdate()
        Me.Saved = True
    End Sub
    
    Private Sub Form_Delete(Cancel As Integer)
        If Me.Dirtied = False Then DBEngine.BeginTrans
        Me.Dirtied = True
    End Sub
    
    Private Sub Form_Dirty(Cancel As Integer)
        If Me.Dirtied = False Then DBEngine.BeginTrans
        Me.Dirtied = True
    End Sub
    
    Private Sub Form_Open(Cancel As Integer)
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        Set db = CurrentDb
        Set rs = db.OpenRecordset("SELECT * FROM Customers", dbOpenDynaset)
        Set Me.Recordset = rs
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
        Dim msg As Integer
        If Me.Saved Then
            msg = MsgBox("Do you want to commit all changes?", vbYesNoCancel)
            Select Case msg
                Case vbYes
                    DBEngine.CommitTrans
                Case vbNo
                    DBEngine.Rollback
                Case vbCancel
                    Cancel = True
            End Select
        Else
            If Me.Dirtied Then DBEngine.Rollback
        End If
    End Sub
    
    Public Property Get Dirtied() As Boolean
        Dirtied = boolFrmDirty
    End Property
    
    Public Property Let Dirtied(boolFrmDirtyIn As Boolean)
        boolFrmDirty = boolFrmDirtyIn
    End Property
    
    Public Property Get Saved() As Boolean
        Saved = boolFrmSaved
    End Property
    
    Public Property Let Saved(boolFrmSavedIn As Boolean)
        boolFrmSaved = boolFrmSavedIn
    End Property
    					
  5. No menu Debug , clique em Compilar Northwind .
  6. No menu arquivo , clique em Salvar Northwind .
  7. Quando você for solicitado, salve o formulário como frmCustomers.
  8. Abra o formulário frmCustomers no modo de formulário. Observe que o formulário é preenchido com dados.
  9. Fazer algumas alterações ao editar um registro existente, inserindo alguns novos registros e excluindo alguns registros.
  10. Feche o formulário. Observe que você será solicitado se deseja confirmar todas as alterações.
  11. Clique em não.
  12. Abra o formulário no modo de formulário. Observe que nenhuma das alterações que você fez na etapa 9 foram salvos no banco de dados.
  13. Repita as etapas 9 e 10.
  14. Quando você for solicitado para confirmar todas as alterações, clique em Sim .
  15. Abra o formulário no modo de formulário. Observe que todas as alterações feitas foram salvas no banco de dados.

A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbmt kbhowto KB248011 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 248011  (http://support.microsoft.com/kb/248011/en-us/ )