MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


3 participantes

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

    avatar
    eliabeabreu
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  eliabeabreu 2/12/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
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Avelino Sampaio 2/12/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:

    http://www.usandoaccess.com.br/Dicas/dicas-praticas-de-access-parte-6.asp?id=1&idlista=215

    Sucesso!



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    eliabeabreu
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  eliabeabreu 2/12/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
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Noobezinho 2/12/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


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    eliabeabreu
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  eliabeabreu 3/12/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.

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 06:50