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

4 participantes

    Tempo ocioso fechar forms

    avatar
    Vanderlei
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 20/01/2011

    Tempo ocioso fechar forms Empty Tempo ocioso fechar forms

    Mensagem  Vanderlei 6/9/2018, 18:35

    Olá

    Na pesquisa aqui no forum consegui encontrar este código abaixo que funciona perfeito, mas eu gostaria que fechasse todos os formulários abertos e retornasse ao frmLogin


    Fecha somente o formulário em questão
    Private Sub Detail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Me.lblTempo.Caption = "00:00:00"
    End Sub


    Private Sub Form_Timer()
    'By JPaulo ®️ Maximo Access
    Static strHora As Integer
    Static strMinutos As Integer
    Static strSegundos As Integer

           If Trim(lblTempo.Caption) = "00:00:00" Then
               strHora = 0
               strMinutos = 0
               strSegundos = 0
           End If

       strSegundos = strSegundos + 1
       
           If strSegundos = 60 Then
               strSegundos = 0
               strMinutos = strMinutos + 1
           If strMinutos = 60 Then
               strMinutos = 0
               strHora = strHora + 1
           If strHora = 24 Then
           strHora = 0
          End If
        End If
      End If

       lblTempo.Caption = Format(strHora, "00") & ":" & _
       Format(strMinutos, "00") & ":" & _
       Format(strSegundos, "00")
    'tempo de inatividade do banco para encerramento, aqui o exemplo são de 1 minuto
    If lblTempo.Caption = "00:01:00" Then
    'Dim Msg As String
     ' Msg = "Sem usuário ativo detectado," & vbCrLf & "Tempo expirado"
     ' MsgBox Msg, vbInformation
     DoCmd.Close
        DoCmd.OpenForm "formulário1"
      'DoCmd.Quit acQuitSaveAll
    End If
    End Sub
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  JPaulo 6/9/2018, 20:11

    Código:
    Dim obj As AccessObject, dbs As Object
    Set dbs = Application.CurrentProject
    For Each obj In dbs.AllForms
      If obj.IsLoaded = True Then
        DoCmd.Close acForm, obj.Name, acSaveYes
      End If
    Next obj
    DoCmd.OpenForm "formulário1"

    Este trecho você insere logo após o
    If lblTempo.Caption = "00:01:00" Then


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

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Tempo ocioso fechar forms Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Tempo ocioso fechar forms Folder_announce_new 102 Códigos VBA Gratuitos...
    Tempo ocioso fechar forms Folder_announce_new Instruções SQL como utilizar...
    avatar
    Vanderlei
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 20/01/2011

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  Vanderlei 12/9/2018, 18:04

    JPaulo
    Perfeito funciona de boa, mas como meu projeto tem vários forms que podem estar aberto ao mesmo tempo, teria como fechar independente de qual formulário estivesse e retornasse ao forma frmlogin. Pensei que pudesse inserir o mesmo código em todos os forms mas não funciona a casos que um form necessita do outro para funcionamento.
    Ou seja fechar quando o sistema tiver inativo independente do form que estiver logado

    Grato
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  JPaulo 12/9/2018, 18:40

    Para isso tem de ser em função num módulo VBA.
    Código:
    Public Function fechaforms ()
    Dim obj As AccessObject, dbs As Object
    Set dbs = Application.CurrentProject
    For Each obj In dbs.AllForms
      If obj.IsLoaded = True Then
        DoCmd.Close acForm, obj.Name, acSaveYes
      End If
    Next obj
    DoCmd.OpenForm "SeuformLogin"
    End Function

    No lugar do trecho anterior, você chama a função
    Código:
    Call fechaforms


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

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Tempo ocioso fechar forms Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Tempo ocioso fechar forms Folder_announce_new 102 Códigos VBA Gratuitos...
    Tempo ocioso fechar forms Folder_announce_new Instruções SQL como utilizar...
    avatar
    Vanderlei
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 20/01/2011

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  Vanderlei 12/9/2018, 19:23

    não entendi
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  JPaulo 12/9/2018, 22:58

    Simplificando
    Cole a função que passei na última mensagem, num módulo e salve.

    Delete o trecho que tinha inserido no formulário.

    Chame a função logo após esta instrução

    If lblTempo.Caption = "00:01:00" Then
    Call fechaforms



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

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Tempo ocioso fechar forms Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Tempo ocioso fechar forms Folder_announce_new 102 Códigos VBA Gratuitos...
    Tempo ocioso fechar forms Folder_announce_new Instruções SQL como utilizar...
    avatar
    Vanderlei
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 20/01/2011

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  Vanderlei 13/9/2018, 12:08

    JPaulo

    Acho que não estou sabendo me expressar.

    Na verdade é assim quando o sistema estiver ocioso por um periodo independente de qual tela (form) esteja, seja fechado e retorne ao form de login

    Teria que colocar o codigo em todos os forms ?

    Se sim, teria como ao sair do form1 para  form2, o codigo no form1 seja encerrado para que o sistema não seja fechando por inatividade do primeiro form (form1)

    Será que fui mais claro ou piorei ?
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  JPaulo 13/9/2018, 13:13

    Ola;

    Vamos por partes;

    Esta função você vai inseri-la num modulo e salve-o com o nome a seu gosto;

    Código:
    Public Function fechaforms()
    Dim obj As AccessObject, dbs As Object
    Set dbs = Application.CurrentProject
    For Each obj In dbs.AllForms
      If obj.IsLoaded = True Then
        DoCmd.Close acForm, obj.Name, acSaveYes
      End If
    Next obj
    DoCmd.OpenForm "SeuformLogin"
    End Function

    Este trecho de código e a label "lblTempo", terá de estar presente em todos os seus formularios;

    Código:
    Private Sub Form_Timer()
    'By JPaulo ®️? Maximo Access
    Static strHora As Integer
    Static strMinutos As Integer
    Static strSegundos As Integer

           If Trim(lblTempo.Caption) = "00:00:00" Then
               strHora = 0
               strMinutos = 0
               strSegundos = 0
           End If

       strSegundos = strSegundos + 1
      
           If strSegundos = 60 Then
               strSegundos = 0
               strMinutos = strMinutos + 1
           If strMinutos = 60 Then
               strMinutos = 0
               strHora = strHora + 1
           If strHora = 24 Then
           strHora = 0
          End If
        End If
      End If

       lblTempo.Caption = Format(strHora, "00") & ":" & _
       Format(strMinutos, "00") & ":" & _
       Format(strSegundos, "00")
    'tempo de inatividade do banco para encerramento, aqui o exemplo são de 1 minuto
    If lblTempo.Caption = "00:01:00" Then
        Call fechaforms
    End If
    End Sub


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

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Tempo ocioso fechar forms Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Tempo ocioso fechar forms Folder_announce_new 102 Códigos VBA Gratuitos...
    Tempo ocioso fechar forms Folder_announce_new Instruções SQL como utilizar...
    avatar
    Vanderlei
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 20/01/2011

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  Vanderlei 13/9/2018, 13:53

    Ja tinha feito isso, acontece que passando para outro form sem fechar o atual quando da o tempo inativo ele fecha o sistema, mas ainda estamos trabalhando em outro form


    JPAULO, só da pra fazer doação pelo paypal via cartão ?
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  JPaulo 13/9/2018, 15:56

    Certo, não me tinha ocorrido que ficaria um form aberto.

    Nesse caso ao abrir o outro formulario, só parando o time do 1º formulario.

    Quanto á outra pergunta, respondo por mensagem privada.

    Vou tentar criar aqui um exemplo.


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

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Tempo ocioso fechar forms Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Tempo ocioso fechar forms Folder_announce_new 102 Códigos VBA Gratuitos...
    Tempo ocioso fechar forms Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  JPaulo 13/9/2018, 16:41

    Vamos imaginar que o frm1 deste exemplo é o seu form principal.

    Cenários:
    Ao abrir o frm1 inciar o relógio, que se passar com o mouse no detalhe fica a zeros.

    Se abrir o frm2 sem mexer no frm1, o reláogio do frm1 vai parar a contagem e jamais fechará.

    Se algum formulario estiver com tempo ocioso durante 1 minuto, todos se irão fechar e o frm1 ficará aberto.

    Download






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

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Tempo ocioso fechar forms Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Tempo ocioso fechar forms Folder_announce_new 102 Códigos VBA Gratuitos...
    Tempo ocioso fechar forms Folder_announce_new Instruções SQL como utilizar...
    avatar
    Vanderlei
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 20/01/2011

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  Vanderlei 13/9/2018, 18:08

    Desculpa ai pode ser que eu esteja pedindo algo impossível.

    Desta forma também não resolve a questão, porque se eu abrir frmlogin e chamar formCadastroCliente e em seguida acessar o formDetalheDoCliente consequentemente quando o tempo ocioso do formCadastroCliente findar independente de estar trabalhando no formDetalheDoCliente, ele vai me fechar os formularios e voltar em frmlogin, que nunca fecha,
    Se eu estiver certo volta a estaca zero.
    E também porque tenho que especificar ao fechar o qual quero fechar e o qual vou abrir. o que torna inviável ja que trabalho com muitos forms no sistema
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  JPaulo 14/9/2018, 11:13

    Vanderlei, eu apenas fiz para 2 forms, você tem de fazer o mesmo para todos os forms, caso contrario não vai funcionar.

    Não conheço de momento outra forma subtil de fazer o que pretende, lamento amigo.


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

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Tempo ocioso fechar forms Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Tempo ocioso fechar forms Folder_announce_new 102 Códigos VBA Gratuitos...
    Tempo ocioso fechar forms Folder_announce_new Instruções SQL como utilizar...
    avatar
    Vanderlei
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 20/01/2011

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  Vanderlei 14/9/2018, 16:20

    De qualquer forma, obrigado pela ajuda
    avatar
    Vanderlei
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 219
    Registrado : 20/01/2011

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  Vanderlei 4/10/2018, 17:15

    Pessoal

    Como pesquisei em outros lugares as também não encontrei, resolvi encher mais um pouco sobre o timer no form
    Precisaria que quando eu passasse do form1 para o form2 o timer fosse zerado e parado, e a contagem iniciado no form2.....
    avatar
    nar2016
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 08/02/2016

    Tempo ocioso fechar forms Empty Quando baixa e tenta abrir o arquivo diz que está em formato não reconhecido

    Mensagem  nar2016 17/2/2020, 22:59

    JPaulo. Quando baixa o arquivo e tenta abri-lo diz que está em formato nao reconhecido. Poderia verificar?

    Obrigado
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3339
    Registrado : 22/11/2016

    Tempo ocioso fechar forms Empty Re: Tempo ocioso fechar forms

    Mensagem  DamascenoJr. 2/11/2021, 13:09

    Vanderlei, conseguiu resolver?

    Aguardamos...


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: 6/12/2021, 17:14