ACC: Como detectar automaticamente se um formulário está sendo editado

Traduções deste artigo Traduções deste artigo
ID do artigo: 122294 - Exibir os produtos aos quais esse artigo se aplica.
Moderado: Requer básica de macro, codificação e interoperabilidade habilidades.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve duas técnicas que você pode usar para executar o código automaticamente quando alterações de modo de edição do formulário. Você pode usar essas técnicas quando você deseja ter diferentes controles disponíveis em um formulário quando um registro está sendo editado e quando um registro não está sendo editado.

Este artigo presume que você esteja familiarizado com Visual Basic for Applications e com a criação de aplicativos do Microsoft Access usando as ferramentas de programação fornecidas com o Microsoft Access. Para obter mais informações sobre o Visual Basic for Applications, consulte sua versão do manual "Criando aplicativos com o Microsoft Access".

Observação: o Visual Basic for Applications é chamado Access Basic no Microsoft Access versão 2.0. Para obter mais informações sobre o Access Basic, consulte o manual "Building Applications".

Observação: Este artigo explica uma técnica demonstrada nos arquivos de exemplo, FrmSampl.exe (para o Microsoft Access para Windows 95 versão 7.0) e FrmSmp97.exe (para o Microsoft Access 97). Para obter informações sobre como obter esses arquivos de exemplo, consulte os seguintes artigos na Base de dados de Conhecimento da Microsoft:
150895ACC95: Exemplo do Microsoft Access Forms disponível no Centro de download
175066ACC97: Microsoft Access 97 formulários de exemplo disponível no Centro de download

Mais Informações

Quando o Microsoft Access exibe um símbolo de lápis no seletor de registro, o registro está sendo editado mas ainda não foi salvo. Quando o Microsoft Access exibe um símbolo de triângulo no seletor de registro, o registro foi salvo e não está sendo editado. Observe que, se a propriedade do formulário RecordSelector é definida como não, esses símbolos não são exibidos.

Há dois métodos que você pode usar para executar o código automaticamente quando alterações de modo de edição do formulário:

  • Use evento de timer do formulário para verificar a propriedade Dirty do formulário periodicamente para verificar se o modo de edição foi alterada.
  • Use a propriedade Dirty em uma expressão no formulário para executar uma função quando o modo de edição é alterado.
Os exemplos a seguintes demonstram como usar essas técnicas para ativar ou desativar um botão Desfazer registro, dependendo do modo de edição do formulário automaticamente.

Método 1: Usar evento de timer do formulário

  1. Abra o exemplo banco de dados Northwind.mdb (ou NWIND.MDB na versão 2.0).
  2. Abra o formulário Funcionários no modo de design.
  3. Use o Assistente de botão de comando para criar um botão Desfazer registro no formulário.
  4. Altere propriedades do botão Desfazer registro para coincidir com o seguinte:
    nome: btnDesfazer ativado: não
  5. Defina propriedade do TimerInterval do formulário com:
    1000
  6. Defina do NoCronômetro propriedade formulário o procedimento de evento a seguir:
          Private Sub Form_Timer()
              Static bFlag As Boolean
              If Me.Dirty Then
                  If Not bFlag Then
                      Me!btnUndo.Enabled = True
                      bFlag = True
                  End If
              Else
                  If bFlag Then
                     Me!FirstName.SetFocus
                     Me!btnUndo.Enabled = False
                     bFlag = False
                  End If
              End If
          End Sub
    						
  7. Exiba o formulário no modo de formulário. Observe que no botão Desfazer registro está indisponível.
  8. Modificar qualquer campo no registro atual e, em seguida, pressione a tecla TAB. Observe que o botão Desfazer registro se tornará disponível.
  9. Pressione a tecla ESC duas vezes (ou clique em Desfazer no menu Editar) para desfazer suas alterações. Observe que no botão Desfazer registro se torna indisponível.

Método 2: Usando a propriedade Dirty em uma expressão

  1. Execute as etapas 1 a 4 no método 1.
  2. Adicionar uma nova caixa de texto com as seguintes propriedades para o formulário:
          Name: txtEditModeChange
          ControlSource: =[Form].[Dirty] & EditModeChange([Form])
          Visible: No
    						
  3. No menu Exibir, clique em código.
  4. Criar a função a seguir no módulo e, em seguida, fechar o módulo:
          Function EditModeChange (F As Form) As Variant
             If F.Dirty Then
                F!btnUndo.Enabled = True
             Else
                F!btnUndo.Enabled = False
             End If
          End Function
    						
  5. Defina propriedade do formulário o procedimento de evento a seguir:
          Sub Form_AfterUpdate ()
             Me!txtEditModeChange.Requery
          End Sub
    						
  6. Execute as etapas 7 a 9 no método 1 para testar esse método.

Referências

Para obter mais informações sobre a propriedade Dirty, procurar o índice da Ajuda a propriedade Dirty ou pergunte ao Assistente do Office do Microsoft Access 97.

Para obter mais informações sobre o evento Timer, pesquisar o índice da Ajuda Evento Timer ou pergunte ao Assistente do Office do Microsoft Access 97.

Propriedades

ID do artigo: 122294 - Última revisão: sexta-feira, 19 de janeiro de 2007 - Revisão: 2.3
A informação contida neste artigo aplica-se a:
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Palavras-chave: 
kbmt kbhowto kbprogramming kbusage KB122294 KbMtpt
Traduçã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: 122294
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com