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