Como desligar remotamente um aplicativo personalizado do Access

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

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: 304408
Avançadas: Requer especialista de codificação, interoperabilidade e habilidades de multiusuário.

Este artigo se aplica somente a um Microsoft Access banco de dados (.mdb ou .accdb).
Sumário
Às vezes, talvez seja necessário executar tarefas de manutenção em um banco de dados Microsoft Access, como compactar ou reparar, fazer cópias de backup ou modificações no design. Muitas dessas operações exigem que todos os usuários o banco de dados de saída. No entanto, não é possível forçar os usuários a sair do Microsoft Access criado no. E não é uma boa idéia desconectar o usuário apenas das soluções de rede. Que pode causar o banco de dados corrompido.

Este artigo mostra uma abordagem que você pode usar para desligar normalmente um aplicativo de banco de dados front-end do Access. Você também pode usar muitos desses conceitos para compactar ou reparar o banco de dados, fazer cópias de backup e assim por diante.

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.
Mais Informações

Como funciona a solução

A solução funciona como a seguir. Em um servidor, há um arquivo em uma pasta. Este arquivo pode ser chamado nada. Para esta solução, um arquivo chamado chkfile.ozx é usado. Quando esse arquivo é renomeado ou excluído, ele notifica o aplicativo front-end do Access que possui a fechar.

É criado um formulário aberto quando os usuários iniciarem o aplicativo de banco de dados front-end. Este formulário verifica a existência do arquivo no servidor em um intervalo definido. Ele usa a propriedade IntervaloDoCronômetro e o evento NoCronômetro para fazer isso.

Se o arquivo for encontrado, nada acontece. Se o arquivo não for encontrado, o formulário será exibido outro formulário para avisar o usuário que o banco de dados será fechado automaticamente em um período de tempo especificado.

Observação : esta solução não usa a função CaixaDeMensagem para avisar o usuário. A função MsgBox aguardará antes de executar qualquer código de entrada do usuário. Isso seria derrotar o objetivo da solução.

Para fechar as sessões de cliente normalmente, esta solução renomeia o arquivo que está sendo verificado. Quando tudo o que precisa ser feito é concluído, esta solução renomeia o arquivo novamente para o nome original. Isso permite que os usuários saibam que eles podem iniciar novamente o banco de dados front-end.

Esse processo também pode ser automatizado para fornecer a operação autônoma usando um serviço agendado no servidor que renomeia chkfile.ozx em horários especificados.

Passos para criar um cenário de exemplo

Para demonstrar como essa solução funciona, você precisará ter o seguinte:
  • Uma pasta em seu disco rígido com um caminho de C:\MyData.
  • Um arquivo vazio. Esta solução irá verificar a presença desse arquivo.
  • Um design de banco de dados de divisão com as tabelas em um arquivo de banco de dados back-end e links para essa tabela no banco de dados front-end. O banco de dados front-end conterá o código que verifica a existência do arquivo em um intervalo de conjunto e, em seguida, avisa ao usuário.
  • Criar a pasta para o aplicativo de exemplo

  • Crie uma pasta no diretório raiz da unidade C e nomeie- MyData .

    Criando o arquivo de texto vazia

    1. Criar um novo arquivo de texto na pasta MyData e denomine chkfile.txt .
    2. Renomeie o arquivo de texto para que ele tenha uma extensão ozx (chkfile.ozx). Quando solicitado, confirme que você deseja alterar a extensão de arquivo.

    Criando o banco de dados back-end

    1. Criar um novo banco de dados na pasta C:\MyData e denomine Northwind_Be.mdb .
    2. Importe a tabela Customers do banco de dados de exemplo Northwind para o banco de dados Northwind_Be.mdb. (Por padrão, Northwind está localizada na c:\Arquivos de Programas\Microsoft Office\Office10\Exemplos.)
    3. Feche o banco de dados.

    Criando o banco de dados front-end

    1. Criar outro novo banco de dados e denomine Northwind_Fe.mdb .
    2. A tabela Customers do Northwind_Be.mdb banco de dados em Northwind_Fe.mdb novo link
    3. Criar um AutoFormulário com base na tabela Customers vinculada e salve-o como frmCustomers . Feche este formulário.

    Criar o formulário com o código que verifica a existência do arquivo

    1. Criar um formulário não acoplado e salvá-lo com o nome frmAppShutDown . Em um banco de dados de produção, este formulário normalmente sempre seria aberto mas não estiver visível. Neste exemplo, ele pode ser deixado aberto como de costume.
    2. Defina a propriedade TimerInterval do formulário como 60000 milissegundos. Isso é igual a um minuto. (Para sua própria solução, você pode aumentar ou decease este intervalo de tempo.)
    3. No Microsoft Office Access 2003 ou em versões anteriores do Access, no modo de design do formulário frmAppShutDown, clique em código no menu Exibir . No Microsoft Office Access 2007, no modo de design do formulário frmAppShutDown, clique na guia Design e, em seguida, clique em Exibir código no grupo Ferramentas . Digite ou cole o código a seguir:
      Option ExplicitDim boolCountDown As BooleanDim intCountDownMinutes As IntegerPrivate Sub Form_Open(Cancel As Integer)    ' Set Count Down variable to false    ' on the initial opening of the form.    boolCountDown = FalseEnd SubPrivate Sub Form_Timer()On Error GoTo Err_Form_Timer    Dim strFileName As String    strFileName = Dir("c:\MyData\chkfile.ozx")    If boolCountDown = False Then        ' Do nothing unless the check file is missing.        If strFileName <> "chkfile.ozx" Then            ' The check file is not found so             ' set the count down variable to true and            ' number of minutes until this session            ' of Access will be shut down.            boolCountDown = True            intCountDownMinutes = 2        End If    Else        ' Count down variable is true so warn        ' the user that the application will be shut down        ' in X number of minutes.  The number of minutes        ' will be 1 less than the initial value of the        ' intCountDownMinutes variable because the form timer        ' event is set to fire every 60 seconds        intCountDownMinutes = intCountDownMinutes - 1        DoCmd.OpenForm "frmAppShutDownWarn"        Forms!frmAppShutDownWarn!txtWarning = "This application will be shut down in approximately " & intCountDownMinutes & " minute(s).  Please save all work."        If intCountDownMinutes < 1 Then            ' Shut down Access if the countdown is zero,            ' saving all work by default.            Application.Quit acQuitSaveAll        End If    End IfExit_Form_Timer:    Exit SubErr_Form_Timer:    Resume NextEnd Sub						
    4. Salve e feche o formulário.

    Criar o formulário que servirá para avisar o usuário

    Observação : não usar a função CaixaDeMensagem para avisar o usuário. A função MsgBox aguardará antes de executar qualquer código de entrada do usuário. Isso seria derrotar o objetivo da solução.

    1. Criar um formulário não acoplado e denomine frmAppShutDownWarn . Adicione o seguinte controle caixa de texto:
         Name: txtWarning   Type: Textbox						
    2. Salve e feche o formulário.
    3. Crie uma macro que abrirá o formulário frmCustomer e o formulário frmAppShutDown na inicialização. Nome da macro autoexec .
    4. Feche e reabra o banco de dados.
    5. Renomeie chkfile.ozx para chkfile.old .

Tempo de eventos de solução

Observação : todos os seguintes horários são aproximados e eles iniciarem após a renomeação de chkfile.ozx.

  • Um minuto ou menos: Northwind_FE.mdb irá notar que o arquivo que está sendo verificado estiver faltando.
  • Dois minutos: um formulário será aberto no Northwind_FE.mdb, informando que fechará o banco de dados em um minuto.
  • Três minutos: Northwind_FE.mdb automaticamente irá fechar e salvar todo o trabalho.
Referências
Para obter informações relacionadas, consulte os seguintes artigos na Base de dados de Conhecimento da Microsoft:
287655ACC2002: Como usar o controle da conexão para impedir que usuários de efetuar logon em tempo de execução
230575ACC2000: Como iniciar o Access usando o serviço de agendamento do Windows NT
303528ACC2002: Como minimizar a corrupção do banco de dados ao usar o Microsoft Jet 4.0
inf ACC2002 ACC2003 ACC2007

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 304408 - Última Revisão: 03/29/2007 17:56:09 - Revisão: 7.1

Microsoft Office Access 2007, Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition

  • kbmt kbprogramming kbnetwork kbinfo kbhowto KB304408 KbMtpt
Comentários