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]Abrir form antes de continuar a execução do código

    Compartilhe

    Eloirp
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 15/06/2013

    [Resolvido]Abrir form antes de continuar a execução do código

    Mensagem  Eloirp em Ter 03 Nov 2015, 15:43

    Tenho alguns processamentos que são um pouco lentos, então criei um form com a informação de "Processando" para o usuário saber que o sistema está trabalhando e ele deve aguardar, porém ocorre que o Access abre o form praticamente quando conclui a rotina e não ao iniciar como solicitado, alguém saberia me dizer se tem como forçar abrir primeiro o form antes de executar o restante do código?

    Private Sub bt_Salvar_Click()

    On Error GoTo ErroTrat:

      DoCmd.OpenForm "sys_processando"
         
       'consiste número do pedido --------------------------------------------------------------------------------------------------------------------------------------------------------------
       If IsNull(Me.Pedido) Then
           If MsgBox(" Número do Pedido não informado, importar NFe mesmo assim? ", vbYesNo + vbDefaultButton1 + vbInformation, " Sistema Interno ELPER ") = vbYes Then
               Me.Pedido = 0
           
           Else
               DoCmd.Close acForm, "sys_processando"
               Exit Sub
           End If
       End If..... segue o código

    DoCmd.Close acForm, "sys_processando"

    daniloreiis
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 315
    Registrado : 14/02/2011

    Abrir form antes de continuar a execução do código

    Mensagem  daniloreiis em Sex 06 Nov 2015, 00:45

    Boa noite amigo tudo joia ?

    segue exemplo espero que atenda, abraços e boa sorte!

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


    .................................................................................
    Att, Danilo Reis
    -------------------------------------------------------------------------------------------------------------------------------------------------
    [Você precisa estar registrado e conectado para ver este link.]

    Se alguém não quiser trabalhar, não coma também.
    2 Tessalonicenses 3:10

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Abrir form antes de continuar a execução do código

    Mensagem  Avelino Sampaio em Sex 06 Nov 2015, 06:02

    Olá!

    Veja também a minha dica 12:

    [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ê.

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

    Eloirp
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 15/06/2013

    Re: [Resolvido]Abrir form antes de continuar a execução do código

    Mensagem  Eloirp em Sex 06 Nov 2015, 14:59

    Muito obrigado pelas dicas Danilo e Avelino!
    Tentei usar ambas as discas, mas infelizmente ambas fazem o código parar e na verdade preciso que ele abra o form mas não pare! O Form é uma msg de que está processando, pois a rotina é um pouco longa e o BD é MySQL on-line, então demora um pouco e alguns usuários clicam novamente para executar achando que clicaram e nada aconteceu!

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Abrir form antes de continuar a execução do código

    Mensagem  Noobezinho em Sex 06 Nov 2015, 19:45

    Eloir

    Experimente colocar uma pausa no código só para abrir o formulário:

    1= 1 segundo

    Abre o formulário, da uma pausa no código até ele abrir e continua.

    Private Sub bt_Salvar_Click()

    On Error GoTo ErroTrat:

     DoCmd.OpenForm "sys_processando"
     Pausa 2  
      'consiste número do pedido --------------------------------------------------------------------------------------------------------------------------------------------------------------
      If IsNull(Me.Pedido) Then
          If MsgBox(" Número do Pedido não informado, importar NFe mesmo assim? ", vbYesNo + vbDefaultButton1 + vbInformation, " Sistema Interno ELPER ") = vbYes Then
              Me.Pedido = 0
         
          Else
              DoCmd.Close acForm, "sys_processando"
              Exit Sub
          End If
      End If..... segue o código

    DoCmd.Close acForm, "sys_processando"


    Caso não tenha a função , aqui está ela:

    Código:

    Public Function Pausa(Nsec As Variant)
    'uso: Pausa 1  = 1 segundo
    On Error GoTo Err_Pausa

        Dim PausaTime As Variant, start As Variant

        PausaTime = Nsec
        start = Timer
        Do While Timer < start + PausaTime
        DoEvents
        Loop

    Exit_Pausa:
        Exit Function

    Err_Pausa:
        Dialog.Box Err.Number & " - " & Err.Description, vbCritical, "Pausa()"
        Resume Exit_Pausa

    End Function


    .................................................................................
    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 .

    Eloirp
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 15/06/2013

    Re: [Resolvido]Abrir form antes de continuar a execução do código

    Mensagem  Eloirp em Seg 09 Nov 2015, 13:06

    Valeu Noobezinho!

    Temporizador eu já tinha usado para não resolvia, porém usei parte da sua dica e fiz assim:

    coloquei a variável strCtrlSysProcess no form a ser aberto e ao abrir atribuo o valor 1 para ela e no form corrente coloquei a instrução em vermelho e agora ele aguarda abrir para atribuir o valor 1 para a variável e quando abre o código segue em frente...


    Private Sub bt_Salvar_Click()

    On Error GoTo ErroTrat:

       DoCmd.OpenForm "sys_Processando"
       
       Do While strCtrlSysProcess <> 1
       DoEvents
       Loop

       
       '1. consiste número do pedido --------------------------------------------------------------------------------------------------------------------------------------------------------------
       If IsNull(Me.Pedido) Then
           If MsgBox(" Número do Pedido não informado, importar NFe mesmo assim? ", vbYesNo + vbDefaultButton1 + vbInformation, " Sistema Interno ELPER ") = vbYes Then
               Me.Pedido = 0
           Else
               DoCmd.Close acForm, "sys_Processando"
               Exit Sub
           End If
       End If
       
       
       '2. consiste campo representante --------------------------------------------------------------------------------------------------------------------------------------------------------------
       If IsNull(Me.Repres) Then
           DoCmd.OpenForm "reg_ImportarXmlSaida_SelecRepres"
           DoCmd.Close acForm, "sys_Processando"
           Exit Sub
       End If


       '3. verifica se itens possuem saldo suficiente --------------------------------------------------------------------------------------------------------------------------------------------------------------
       Dim str_cProd, strStatusSld
       Dim str_qCom As Currency
       Dim db As Database
       Dim rs As Recordset
       strStatusSld = ""
       strRS = "SELECT cProd,qCom FROM Prod "
       Set db = CurrentDb
       Set rs = db.OpenRecordset(strRS)
                   
       Do While Not rs.EOF
           '3.1. --------------------------------------------------------------------------------------------------------------------
           str_cProd = rs!cProd
           str_qCom = FormatNumber(Nz(Replace(rs!qCom, ".", ","), 0), 0)
           strRS4 = "SELECT Produto,SldEstoque FROM tbl_Produto WHERE Produto = '" & str_cProd & "'"
           Call Cnn_Open
           Set Rs4 = cnn.Execute(strRS4)
           If Not Rs4.BOF Then..............

               

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Abrir form antes de continuar a execução do código

    Mensagem  Noobezinho em Seg 09 Nov 2015, 13:21

    Que ótimo Eloir !

    O importante, é que funfou Razz

    Valeu o retorno!

    Boa sorte!


    .................................................................................
    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 .

      Data/hora atual: Sex 09 Dez 2016, 09:40