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


2 participantes

    [Resolvido]Exportar dados - Evitar erros ao copiar consultas vazias

    avatar
    miguel.serra
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Exportar dados - Evitar erros ao copiar consultas vazias Empty [Resolvido]Exportar dados - Evitar erros ao copiar consultas vazias

    Mensagem  miguel.serra 13/11/2017, 02:18

    Olá pessoal!

    Tenho um sistema que cria relatórios exportando dados do Access ao Excel.

    Basicamente a rotina é: (1) abrir uma consulta, (2) selecionar tudo, (3) copiar, e (4) colar os dados no excel

    Só que, em alguns casos, a consulta retorna vazia, gerando erro logo no copiar.

    Para evitar isto, sem ter que recorrer ao "On Error Resume Next", utilizo o código abaixo, checando primeiro a qtd de registros retornados.

    Código:
    If Nz(DCount("*", "qry_relatorio_X")) <> 0 Then
    DoCmd.OpenQuery "qry_relatorio_X"
    DoCmd.RunCommand acCmdSelectAllRecords
    DoCmd.RunCommand acCmdCopy
    .Range("CD1").PasteSpecial
    bla bla bla
    End if

    Ok, funciona, contudo, a consulta é feita duas vezes e isto sobrecarrega muito, pois os relatórios possuem diversas planilhas e, em cada planilha, há uma rotina destas
    As consultas também são pesadas. Tem relatórios que demoram 20 minutos para serem concluídos!

    Alguém saberia dizer se há como evitar uma dupla consulta?

    Algo do tipo

    Código:
    DoCmd.OpenQuery "qry_relatorio_X"
    if RESULTADO_NÃO_É_NULO then
    DoCmd.RunCommand acCmdSelectAllRecords
    DoCmd.RunCommand acCmdCopy
    .Range("CD1").PasteSpecial
    blablabla
    End if


    Obrigado!
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Exportar dados - Evitar erros ao copiar consultas vazias Empty Re: [Resolvido]Exportar dados - Evitar erros ao copiar consultas vazias

    Mensagem  FabioPaes 13/11/2017, 12:26

    Olá, ao invés de colocar On Error Resume Next, coloque no inicio do Codigo um tratamento de Erros!!!

    On Erro GoTo F:
    'Todo o Codigo da exportação aqui


    'até aqui...

    F:
    Select Case err.Number
       Case 3078
    MsgBox "Não Foram Localizados Dados", vbInformation, "Atenção!"
       Case 0
       Exit Sub
       Case Else
       MsgBox err.Number & " - " & err.Description, vbCritical, "Erro!"
    End Select



    Onde o Numero 3078 deve ser substituído pelo Código do erro que ocorre quando não tem Dados.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    miguel.serra
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Exportar dados - Evitar erros ao copiar consultas vazias Empty Re: [Resolvido]Exportar dados - Evitar erros ao copiar consultas vazias

    Mensagem  miguel.serra 13/11/2017, 17:43

    Excelente, FabioPaes!!! Reduziu à metade o tempo de confecção de todos os relatórios, muito obrigado!!!
    (no meu caso, o erro era o 2046)
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Exportar dados - Evitar erros ao copiar consultas vazias Empty Re: [Resolvido]Exportar dados - Evitar erros ao copiar consultas vazias

    Mensagem  FabioPaes 14/11/2017, 12:38

    Bacana Amigo!
    Vale ressaltar que devemos sempre colocar tratamento de erros nos Códigos, caso contrario o Access simplesmente abre uma brecha pro usuário ter acesso aos Códigos VBA.

    Até a Próxima se Deus quiser!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    Conteúdo patrocinado


    [Resolvido]Exportar dados - Evitar erros ao copiar consultas vazias Empty Re: [Resolvido]Exportar dados - Evitar erros ao copiar consultas vazias

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 00:31