MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos

    avatar
    SAPMM
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 368
    Registrado : 07/08/2011

    [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos Empty É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos

    Mensagem  SAPMM em 27/9/2011, 16:49

    Senhores,

    É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos?

    Obrigado.
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11228
    Registrado : 30/12/2009

    [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos Empty Re: [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos

    Mensagem  criquio em 27/9/2011, 17:58

    Você pode colocar uma rotina no próprio frontend para fechá-lo caso o campo Fechar de uma tabela do backend seja Sim ou caso tenha um arquivo no computador aonde está o frontend.

    If rs.RecordCount > 0 then
    Application.Quit
    Else
    End If


    If Len(Dir("C:\Arquivo.txt")) > 0 Then
    Application.Quit
    Else
    End If


    No primeiro caso, você teria uma variável Recordset de nome rs com um "Select Fechar From Tabela Where Fechar=" & "Sim" & "" e no segundo caso, você poderia copiar um arquivo para os computadores quando quiser fechar os frontends.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    SAPMM
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 368
    Registrado : 07/08/2011

    [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos Empty Re: [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos

    Mensagem  SAPMM em 27/9/2011, 18:52

    Criquio,

    Para declarar variável Recordset no primeiro caso, você poderia me dizer a estrutura da declaração e em qual objeto do front-end eu colocaria e em qual evento?
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11228
    Registrado : 30/12/2009

    [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos Empty Re: [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos

    Mensagem  criquio em 27/9/2011, 19:08

    Pode ser no evento "No timer" do formulário principal ou outro que fique sempre aberto:

    Dim rs as Recordset
    Set rs = DBEngine.Workspaces(0).OpenDatabase("X:\Pasta\Backend.mdb", False, False, "MS Access;PWD=senha").OpenRecordset("SELECT * FROM NomeTabela WHERE Fechar=" & "Sim" & "")

    If rs.RecordCount > 0 Then
    Application.Quit
    Else
    End If

    rs.Close
    set rs = Nothing


    Só tem um detalhe: como o frontend estará sempre utilizando a rede para fazer a pesquisa no backend, as operações podem ficar lentas. Uma saída para melhorar isso, seria ter a tabela no próprio frontend e colocar o Sim ao clicar em um botão em um form do backend. Nesse caso, mudaríamos a sintaxe acima por algo assim:

    Dim rs As Recordset
    Set rs = CurrentDb.OpenTable("SELECT Fechar FROM NomeTabela WHERE Fechar=" & "Sim" & ")
    O resto é igual


    No clique do botão do backend, você precisará checar qual frontend está aberto para poder colocar o Sim na tabela dos mesmos. Uma ideia para fazer isso, seria tem uma tabela no backend com uma lista dos frontend. Ao abrir um frontend, ele colocaria um Sim no campo Aberto da sua respectiva linha e para facilitar, poderia colocar tambem o endereço em um outro campo de nome Endereço mesmo, na tabela do backend.

    Na hora do clique desse botão, ele verifica quais frontends estão abertos e coloca o Sim na tabela dos aberto. Não pode esquecer de programar os frontends para mudar o Sim para Não ao fechar.

    Eu acho que usar um arquivo conforme o segundo exemplo do post anterior dá menos trabalho, uma vez que você só precisaria copiar o arquivo para o pc que quiser fechar o front.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    SAPMM
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 368
    Registrado : 07/08/2011

    [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos Empty Re: [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos

    Mensagem  SAPMM em 27/9/2011, 20:25

    Como os front-ends estão aberto em vários computadores, teria que copiar o arquivo para todos os computadores?

    Como meu backend não tem senha, como ficaria a linha:
    Set rs = DBEngine.Workspaces(0).OpenDatabase("X:\Pasta\Backend.mdb", False, False, "MS Access;PWD=senha").OpenRecordset("SELECT * FROM NomeTabela WHERE Fechar=" & "Sim" & "")
    avatar
    SAPMM
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 368
    Registrado : 07/08/2011

    [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos Empty Re: [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos

    Mensagem  SAPMM em 14/10/2011, 19:00

    encerrado sem solução.
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11228
    Registrado : 30/12/2009

    [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos Empty Re: [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos

    Mensagem  criquio em 14/10/2011, 19:57

    Quando um tópico fica sem postagem, os tópicos mais novos ou com novas mensagens, empurram ela para baixo e ele sai da lista de tópicos ativos. Você pode dar um up para colocar o tópico em evidência novamente. É por isso que, às vezes, fica sem resposta, porque o tópico não é visualizado. Quanto à questão, eu tenho um pequeno exemplo segundo as dicas que postei, mas ando demasiadamente atarefado e me falta tempo para vir ao forum. Se eu encontrar o exemplo, posto-o aqui depois.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11228
    Registrado : 30/12/2009

    [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos Empty Re: [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos

    Mensagem  criquio em 15/10/2011, 01:26

    Aqui está o exemplo que eu havia preparado a uns dias atrás. Para que todos possam testá-lo, eu criei cinco cópias do frontend e coloquei cada uma em uma pasta para simular uma rede. Tem ainda a pasta Admin, aonde está o frontend do administrador/responsável pela manutenção. No módulo do admin, há um formulário que lista todos os frontends e diz qual está conectado e qual não está. Conectado não quer dizer bd aberto, mas sim se há alguma conexão com o servidor, ou seja, se tiver apenas um formulário aberto no frontend e esse formulário não tiver nenhum vínculo externo, significa que o bd está desconectado da base. A lógica, então, é a seguinte: cada frontend tem uma tabela de controle. Quando o formulário do frontend é aberto, é inserido, na tabela tblLogados do frontend do admin, a palavra Sim e quando o formulário de manutenção do frontend é aberto, é inserida a palavra Não. Nas tabelas dos outros frontend, é inserida a palavra Sim no campo Fechar da tabela tblConfig quando o admin clica em um botão de um formulário do seu frontend. Os formulários dos outros frontend ficam pesquisando a sua tblConfig. Se lá estiver o Sim, ele fecha esse form e abre outro com um aviso de manutenção. Quando o admin termina a manutenção, clica no botão novamente e a palavra Não assume o lugar da Sim. O formulário de manutenção dos frontends tambem ficam verificando essa tabela e quando encontra a palavra Não, fecha-se e abre novamente o form principal. Observe bem a tabela de frontends conectados no módulo do admin e veja como ela é alterada ao se abrir ou fechar um frontend e observe nos frontends, como eles se comportam quando se inicia a manutenção e quando se termina.
    Não se esqueça de mudar o caminho do frontend do admin nos outros frontends. Aonde está "F:\My files\Access...", coloque o caminho correto para o seu caso.

    https://www.dropbox.com/s/bszx8rv4863su7z/SistemaManut.zip?dl=0


    Veja o sistema em funcionamento no vídeo abaixo:



    Última edição por criquio em 19/2/2019, 14:53, editado 1 vez(es) (Razão : Atualização do link de download)


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    wsenna
    wsenna
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos Empty Forçar usuários a fechar os FrontEnds

    Mensagem  wsenna em 11/6/2012, 18:34

    Olá Senhores, boa tarde.

    Estou disponibilizando um exemplo que fecha todos os FrontEnds que porventura estejam logados automaticamente. Não é tão elaborado como o do nosso amigo acima mas eu o utilizo no Hospital e funciona muito bem.
    O segredo consiste em você criar um arquivo texto com o bloco de notas, não precisa digitar nada nêle, com o nome KickOut.txt e coloca-lo numa pasta qualquer da rede. Lembre-se porém de setar o caminho desta pasta. No exemplo abaixo eu indiquei o caminho C:KickOut (pasta que você deverá criar para ver o resultado) mas nada impede que você direcione para outra pasta qualquer.

    Exemplo: http://dl.dropbox.com/u/1378556/KickOut2006.mdb

    Abraços, WSenna
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4236
    Registrado : 06/11/2009

    [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos Empty Re: [Resolvido]É possível incluir um botão em um form de administrador para encerrar todos os front-end abertos

    Mensagem  Assis em 20/4/2020, 11:40

    Bom dia Damasceno

    Sim verifiquei os link do Amigo Teixeira, vão os dois quase que para o mesmo caminho. Um exemplo do Mestre WSenna.

    Não tem outro jeito ?

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***

      Data/hora atual: 4/12/2020, 20:40