Olá pessoal,
Preciso de ajuda no seguinte contexto...
Tenho um arquivo MS Excel que consulta dados através de uma consulta SQL, em um banco de dados MS Access, de uma tabela (muito pesada) de muitos dados.
A função DAO RecordSet recebe a consulta SQL, coleta os dados e insere os dados no MS Excel. Toda operação é realizada com sucesso, porém o problema é que demora muito, quando a consulta SQL é realizada em uma tabela pesada.
Gostaria de saber se é possível inserir uma barra de progresso, para que o MS Excel apresente uma barra de progresso ao usuário enquanto a consulta SQL é realizada.
Alguém pode me dar uma dica?
Atenciosamente,
edu_vba
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Barra de progresso
Re: Barra de progresso
Você está efetuando várias consultas nessa base grande? Uma consulta apenas não é pra demorar muito, mesmo se a base for gigantesca.
Fazer a barra de progresso é possível se forem várias consultas.
Fazer a barra de progresso é possível se forem várias consultas.
Re: Barra de progresso
Olá Raygsson,
O cenário é o seguinte... um relatório de indicadores MS Excel, no qual o usuário seleciona o segmento e ao clicar no botão de execução, os dados são consultados e coletados do MS Access em rede para o MS Excel.
Ou seja é o usuário que realiza consulta(s) a cada novo clique, de acordo com sua necessidade, sendo efetuada apenas uma consulta por vez.
As tabelas no banco de dados estão divididas em ano, mês, dia e intervalo. Todas as tabelas são de rápida execução com exceção da tabela intervalo, o tempo de execução varia entre 3 à 5 minutos.
O cenário é o seguinte... um relatório de indicadores MS Excel, no qual o usuário seleciona o segmento e ao clicar no botão de execução, os dados são consultados e coletados do MS Access em rede para o MS Excel.
Ou seja é o usuário que realiza consulta(s) a cada novo clique, de acordo com sua necessidade, sendo efetuada apenas uma consulta por vez.
As tabelas no banco de dados estão divididas em ano, mês, dia e intervalo. Todas as tabelas são de rápida execução com exceção da tabela intervalo, o tempo de execução varia entre 3 à 5 minutos.
Re: Barra de progresso
Como a demora é apenas numa consulta desconheço forma de acompanhar o progresso durante o processamento.
Uma alternativa é melhorar o tempo dessa consulta, 3/5 minutos é muito. Com Access nunca mexi com base muito grande mas no SQL Server sim, tabela com mais de 1 milhão de linhas em rede demorava poucos segundos. Alguma especificação no seu código/banco tá deixando a consulta lenta.
Uma alternativa é melhorar o tempo dessa consulta, 3/5 minutos é muito. Com Access nunca mexi com base muito grande mas no SQL Server sim, tabela com mais de 1 milhão de linhas em rede demorava poucos segundos. Alguma especificação no seu código/banco tá deixando a consulta lenta.