MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Ver Quem Está Usando Seu Banco de Dados

    Compartilhe

    Bernidios
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 44
    Registrado : 17/07/2017

    [Resolvido]Ver Quem Está Usando Seu Banco de Dados

    Mensagem  Bernidios em Qua 20 Set 2017, 18:46

    Olá amigos.

    Estou na fase final de desenvolvimento do meu programa, e ele já está sendo usado por cerca de 50 pessoas.

    Por esse motivo não estou conseguindo publicar atualizações para melhoria no uso do mesmo, pois ele fica como Locked ACCDB (LACCDB), pois as tabelas principais estão abertas ou sendo usadas nos desktops dos usuários.

    Atualmente utilizo do método que encontrei de versionamento, no qual eu mudo a versão, no caso coloco como Manut, e assim consigo editar após todas as pessoas serem desconectadas, pois quando as mesmas atualizam o formulário principal, a função de versionamento é executada, e desconecta os usuários.

    Porém existe o caso de algumas pessoas estarem em horário de almoço ou em reunião, e nesse caso não consigo desconectar a pessoa, pois ela não vai atualizar o formulário principal, já que não está usando a ferramenta, pois ela está em segundo plano.

    Teria algum jeito de eu desconectar todos os usuários de minha ferramenta de uma única vez, na hora?

    Desde já obrigado!
    avatar
    CassioFabre
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 524
    Registrado : 18/01/2013

    Re: [Resolvido]Ver Quem Está Usando Seu Banco de Dados

    Mensagem  CassioFabre em Qua 20 Set 2017, 19:35

    Boa tarde,

    Eu já tive este problema e resolvi da seguinta maneira:

    Tenho um form oculto (formPassagem) que, no timer, verifica de tempos em tempos um arquivo que tenho na raiz do sistema no servidor (voce pode usar o que quiser, como já faz no seu caso aí) e caso esse arquivo seja encontrado (apenas pelo nome) eu faço com que o programa conte 1 minuto e feche, independente de o usuário permitir ou não. Deixei um minuto pois dá tempo do usuário terminar alguma coisa que esteja fazendo de importante.

    No form passagem:
    Código:
            If Not getUsuarioAtual = "admin" Then
                If booVar = False Then
                    If getGrupoUsuarioAtual <> "Administradores" Then
                        Dim str As String
                       
                        str = pastaBackEnd(mBd) & "maintenance.txt"

    'pastaBackEnd é uma função que tenho que retorna a pasta em que o banco de dados está alocado no servidor.
                       
                        If Len(Dir(str)) Then
                            DoCmd.OpenForm "formMensagemManutencao", , , , , acDialog
                        End If
                    End If
                   
                    Exit Sub
                End If
       
                If contador = 50 Then
                    MsgBox "Você tem apenas 10 segundos para terminar suas tarefas.", vbInformation, "Manutenção"
                ElseIf contador = 60 Then
                    MsgBox "O tempo acabou. Neste momento é necessário fechar o sistema para manutenção.", vbInformation, "Manutenção"
                    DoCmd.Quit
                End If
                       
                contador = contador + 1
            End If

    No formMensagemManutencao
    Código:
    Private Sub Form_Close()
        Forms!formPassagem.booVar = True
    End Sub

    Private Sub Form_Open(Cancel As Integer)
        txtMensagem.ForeColor = vbBlack
        txtMensagem = "Foi solicitada uma manutenção no sistema. Durante este período, apenas usuários habilitados poderão acessá-lo. " & _
            "A partir do fechamento deste formulário, você terá 1 minuto para concluir suas operações." & vbCrLf & vbCrLf & _
            "Agradecemos a compreensão e o sistema estará disponível o quanto antes. Obrigado."
    End Sub

    Do jeito que está aí, gera o inconveniente do usuário ter que apertar OK nas msgbox pro tempo contar, já que tanto forms modo diálogo quanto msgbox travam todos os processos em execução. Adapte ao seu projeto.

    Abraço.
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9697
    Registrado : 04/11/2009

    Re: [Resolvido]Ver Quem Está Usando Seu Banco de Dados

    Mensagem  JPaulo em Qui 21 Set 2017, 00:20

    Excelente dica a do Cássio.

    Este tópico pode também ajudar.

    [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    Bernidios
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 44
    Registrado : 17/07/2017

    [Resolvido]Ver Quem Está Usando Seu Banco de Dados

    Mensagem  Bernidios em Qui 21 Set 2017, 18:38

    Amigos CassioFabre e JPaulo,

    Muito obrigado pela disponibilização dos códigos e links!

    Usei o codigo do Cassio e fiz algumas alterações para o mesmo se adaptar a minha ferramenta.

    Esse código foi de grande ajuda, quebrou um galho, pois a cada 2 ou 3 horas estou atualizando o programa e isso dificultava e atrasava muito meu trabalho!

    Obrigado mesmo.

    E se for de ajuda para os demais coloco o código alterado aqui para uso de todos, se for solicitado.

    Mais uma vez, muito obrigado pela ajuda!

      Data/hora atual: Sab 18 Nov 2017, 08:08