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

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

    Eloirp
    Eloirp
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Eloirp 3/11/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
    daniloreiis
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  daniloreiis 6/11/2015, 00:45

    Boa noite amigo tudo joia ?

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

    https://www.dropbox.com/s/7v2y5fcw7eic8uh/MAX1.accdb?dl=0


    .................................................................................
    Att, Danilo Reis
    -------------------------------------------------------------------------------------------------------------------------------------------------

    Se alguém não quiser trabalhar, não coma também.
    2 Tessalonicenses 3:10
    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]Abrir form antes de continuar a execução do código Empty Re: [Resolvido]Abrir form antes de continuar a execução do código

    Mensagem  Avelino Sampaio 6/11/2015, 06:02

    Olá!

    Veja também a minha dica 12:

    http://www.usandoaccess.com.br/dicas/dicas-praticas-de-access-parte-2.asp?id=1&idlista=164#inicio

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Eloirp
    Eloirp
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Eloirp 6/11/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
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Noobezinho 6/11/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


    .................................................................................
    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.
    Eloirp
    Eloirp
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Eloirp 9/11/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
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Noobezinho 9/11/2015, 13:21

    Que ótimo Eloir !

    O importante, é que funfou Razz

    Valeu o retorno!

    Boa sorte!


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

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 18:26