MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Fechar .accdb para todos os usuários na rede

    Compartilhe

    eliabeabreu
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 06/11/2015

    [Resolvido]Fechar .accdb para todos os usuários na rede

    Mensagem  eliabeabreu em Qua 02 Dez 2015, 09:27

    Bom dia a todos.

    Estou tentando implementar um método eficaz de fechar o arquivo na rede.
    O que fiz a principio é criar uma tabela "fechar" onde o meu form principal que fica aberto a todo tempo verifica num intervalo de 10s se o valor do campo é "sim" se for ele da um "Aplication.quit" e fecha.

    A principio isso funcionou, porém no segundo dia deu algum BUG.
    Ai percebi que havia uma MSGBOX de aviso que estava prendendo.
    Parei então de usar a MSGBOX e comecei a usar um FORM padrão de notificação e isso resolveu, mas hoje ainda tenho alguns usuários presos.

    O que acham que pode ser?
    Como posso resolver isso?

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3347
    Registrado : 04/04/2010

    Re: [Resolvido]Fechar .accdb para todos os usuários na rede

    Mensagem  Avelino Sampaio em Qua 02 Dez 2015, 09:39

    Olá!

    Experimente, antes de fechar o aplicativo, fechar os objetos (formulários e relatórios). Veja como fechar, na minha dica 56:

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

    Sucesso!



    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    eliabeabreu
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 06/11/2015

    Re: [Resolvido]Fechar .accdb para todos os usuários na rede

    Mensagem  eliabeabreu em Qua 02 Dez 2015, 09:54

    Obrigado pela dica Avelino Sampaio.

    Coloquei agora esta opção antes do QUIT mas só vou saber se funcionou após conseguir subir para todos.
    Implementei também na tabela de usuários um parâmetro "Derrubado" onde ao executar o comando de fechar ou quando o user fecha o ACCESS eu atualizo para "SIM" desta forma pelo menos saberei quem esta prendendo o arquivo.

    Pensei aqui agora, será que pode ser algum usuário que mandou abrir o arquivo da rede e não confirmou aquela mensagem de aviso de segurança?

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2483
    Registrado : 29/06/2012

    Re: [Resolvido]Fechar .accdb para todos os usuários na rede

    Mensagem  Noobezinho em Qua 02 Dez 2015, 12:03

    Eliabe

    Aqui está um EXEMPLO  o qual relaciona e

    fecha os FE nas estações.

    Devo dizer que que baixei esse exemplo da net a muito tempo, não lembro quem é o autor.

    Comece por ver a parte do administrador, pois terá que mudar o caminho para o teu BE nele

    e onde precisar.

    Ele está em mdb mas pode ser usado ou transformado em accdb.


    Senha do rar: balem

    Bom estudo  study   Wink


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    eliabeabreu
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 06/11/2015

    Re: [Resolvido]Fechar .accdb para todos os usuários na rede

    Mensagem  eliabeabreu em Qui 03 Dez 2015, 11:48

    Bom dia, aparentemente resolvi meu problema.
    Implementei uma rotina para identificar o micro/user que estava prendendo a aplicação.
    Segue abaixo a rotina base que eu adaptei para minha realidade.

    Código:
    Sub ShowUserRosterMultipleUsers()
        Dim cn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        Dim i, j As Long

        Set cn = CurrentProject.Connection

        ' The user roster is exposed as a provider-specific schema rowset
        ' in the Jet 4.0 OLE DB provider.  You have to use a GUID to
        ' reference the schema, as provider-specific schemas are not
        ' listed in ADO's type library for schema rowsets

        Set rs = cn.OpenSchema(adSchemaProviderSpecific, _
        , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")

        'Output the list of all users in the current database.

        Debug.Print rs.Fields(0).Name, "", rs.Fields(1).Name, _
        "", rs.Fields(2).Name, rs.Fields(3).Name

        While Not rs.EOF
            Debug.Print rs.Fields(0), rs.Fields(1), _
            rs.Fields(2), rs.Fields(3)
            rs.MoveNext
        Wend

    End Sub

    Fui até esse user e vi que apesar do ACCESS não estar aberto havia um processo aberto no gerenciador prendendo a aplicação.
    Implementei o meu código inicial com o código passado pelo Avelino Sampaio para fechar e desde então esta tudo ok.

    Obrigado a todos pela ajuda.

      Data/hora atual: Sab 03 Dez 2016, 04:37