3 participantes
[Resolvido]Não salvar o pdf, caso não exista dados
digitaltec- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 153
Registrado : 09/05/2020
- Mensagem nº1
[Resolvido]Não salvar o pdf, caso não exista dados
Saudações a todos, tenho 3 relatórios no meu sistema, que ao clicar no botão gerar no meu Formulário, ele cria os arquivos em uma pasta automaticamente executando o seguinte comando, DoCmd.OutputTo acOutputReport, "nfceemitidas", acFormatPDF, "C:\teste\Nfce emitidas.pdf" desejo que se o relatório estiver sem dados ele não gere arquivo. Já tentei utilizar o DoCmd.CancelEvent no meu relatório em nenhum dados mais dessa maneira ele dar erro. Desde já agradeço a atenção de todos !
digitaltec gosta desta mensagem
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
Gerando o erro, é só trata-lo.
- Código:
on error goto trataErro
comando que gera o pdf
sair:
exit sub
trataerro:
select case err.number
case 2501 'acho que é o número do erro do cancelameto de abertura, se não for, ajuste
err.clear
case else
call msgbox(err.description,vbcritical,err.number
end select
resume sair
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
digitaltec gosta desta mensagem
digitaltec- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 153
Registrado : 09/05/2020
Ele só gerou o primeiro arquivo, vou explicar melhor a situação no meu botão gerar relatorio tenho o seguinte codigo:
DoCmd.OutputTo acOutputReport, "nfce emitidas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfce emitidas.pdf", False
DoCmd.OutputTo acOutputReport, "nfcecanceladas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfce canceladas.pdf", False
DoCmd.OutputTo acOutputReport, "nfceinutilizadas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfce inutilizadas.pdf", False
DoCmd.OutputTo acOutputReport, "nfeemitidas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfe emitidas.pdf", False
DoCmd.OutputTo acOutputReport, "nfecanceladas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfe canceladas.pdf", False
DoCmd.OutputTo acOutputReport, "vendasmonofasica", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Vendas Monofasica.pdf", False
Gostaria se caso algum desses relatórios nao tivesse dados, ele não gere o arquivo e pule para o próximo. Com o codigo informado ao chega no relatorio que nao possui dados ele interrompe os demais códigos.
DoCmd.OutputTo acOutputReport, "nfce emitidas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfce emitidas.pdf", False
DoCmd.OutputTo acOutputReport, "nfcecanceladas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfce canceladas.pdf", False
DoCmd.OutputTo acOutputReport, "nfceinutilizadas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfce inutilizadas.pdf", False
DoCmd.OutputTo acOutputReport, "nfeemitidas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfe emitidas.pdf", False
DoCmd.OutputTo acOutputReport, "nfecanceladas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfe canceladas.pdf", False
DoCmd.OutputTo acOutputReport, "vendasmonofasica", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Vendas Monofasica.pdf", False
Gostaria se caso algum desses relatórios nao tivesse dados, ele não gere o arquivo e pule para o próximo. Com o codigo informado ao chega no relatorio que nao possui dados ele interrompe os demais códigos.
digitaltec gosta desta mensagem
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
- Código:
on error goto trataErro
dim bytPonto as byte
DoCmd.OutputTo acOutputReport, "nfce emitidas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfce emitidas.pdf", False
ponto1:
bytPonto = 1
DoCmd.OutputTo acOutputReport, "nfcecanceladas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfce canceladas.pdf", False
ponto2:
bytPonto = 2
DoCmd.OutputTo acOutputReport, "nfceinutilizadas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfce inutilizadas.pdf", False
ponto3:
bytPonto = 3
DoCmd.OutputTo acOutputReport, "nfeemitidas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfe emitidas.pdf", False
ponto4:
bytPonto = 4
DoCmd.OutputTo acOutputReport, "nfecanceladas", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Nfe canceladas.pdf", False
ponto5:
bytPonto = 5
DoCmd.OutputTo acOutputReport, "vendasmonofasica", acFormatPDF, "C:\Users\Digitaltec Suporte\Desktop\xml\Vendas Monofasica.pdf", False
ponto6:
sair:
exit sub
trataerro:
select case err.number
case 2501 'acho que é o número do erro do cancelameto de abertura, se não for, ajuste
err.clear
if bytPonto = 0 then resume ponto1
if bytPonto = 1 then resume ponto2
if bytPonto = 2 then resume ponto3
if bytPonto = 3 then resume ponto4
if bytPonto = 4 then resume ponto5
if bytPonto = 5 then resume ponto6
case else
call msgbox(err.description,vbcritical,err.number
end select
resume sair
Última edição por DamascenoJr. em 5/5/2022, 22:08, editado 1 vez(es)
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
digitaltec gosta desta mensagem
Alexandre Fim- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3491
Registrado : 13/12/2016
Tente isso:
Faça uma validação antes de gerar o relatório.
É isso
Att,
FIM
- Código:
If DCount("*", "[NOME_DA_CONSULTA_DO_RELATORIO]", "[Criterio se houver]") > 0 Then
DoCmd.OutputTo acOutputReport, "nfceemitidas", acFormatPDF, "C:\teste\Nfce emitidas.pdf"
End If
Faça uma validação antes de gerar o relatório.
É isso
Att,
FIM
.................................................................................
Marcar tópico como Resolvido: clique aqui
Postar anexos no fórum: clique aqui
Sistemas e Tecnologia Ltda
digitaltec gosta desta mensagem
digitaltec- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 153
Registrado : 09/05/2020
@DamascenoJr Desde já obrigado pela ajuda, coloquei o código informado e em todos os relatórios na opção se nenhum dado coloquei DoCmd.CancelEvent, ao clicar em gerar relatórios ele ainda retorno Erro em tempo de execução '2501' , vou postar a base
digitaltec gosta desta mensagem
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
Já ajustei o código. Tente novamente.
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
digitaltec gosta desta mensagem
digitaltec- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 153
Registrado : 09/05/2020
@Alexandre O seu código funcionar certinho, ficou perfeito. Muito obrigado!!
digitaltec gosta desta mensagem
digitaltec- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 153
Registrado : 09/05/2020
@DamascenoJr Fiz o teste tbm funcionou dessa forma que vc postou. Muito obrigado
digitaltec gosta desta mensagem
Alexandre Fim- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3491
Registrado : 13/12/2016
- Mensagem nº10
Re: [Resolvido]Não salvar o pdf, caso não exista dados
.................................................................................
Marcar tópico como Resolvido: clique aqui
Postar anexos no fórum: clique aqui
Sistemas e Tecnologia Ltda
digitaltec gosta desta mensagem
DamascenoJr.- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3845
Registrado : 22/11/2016
- Mensagem nº11
Re: [Resolvido]Não salvar o pdf, caso não exista dados
Se usar o método do Alexandre, pode até remover o código do evento "se nenhum dado", uma vez que a verificação de se há dados é feita previamente.
Se usar o código que postei, nesse caso, é as consultas que se fazem desnecessárias, e a instrução SQL pode ficar direto no relatório.
Esse é o bom do fórum: opções.
Se usar o código que postei, nesse caso, é as consultas que se fazem desnecessárias, e a instrução SQL pode ficar direto no relatório.
Esse é o bom do fórum: opções.
.................................................................................
Ajude-se a ser ajudado, anexe seu projeto.
Sempre tente entender o código, não somente copie e cole.
Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
digitaltec gosta desta mensagem
digitaltec- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 153
Registrado : 09/05/2020
- Mensagem nº12
Re: [Resolvido]Não salvar o pdf, caso não exista dados
É verdade, eu já fiz a aquisição de vários cursos relacionado a access e vba, mais lhe digo sem medo que 80% do que sei hoje veio daqui.
digitaltec gosta desta mensagem
» [Resolvidos]Atualizar tabela com dados de outro banco caso não exista o registro.
» [Resolvido]Erro caso ID não exista
» [Resolvido]Criar uma clausula que pesquise o cadastro, caso exista abra um frm
» [Resolvido]Salvar registro a cada dois minutos caso campo memorando esteja com foco.
» [Resolvido]Salvar os dados na tabela somente depois de clicar no botão salvar
» [Resolvido]Erro caso ID não exista
» [Resolvido]Criar uma clausula que pesquise o cadastro, caso exista abra um frm
» [Resolvido]Salvar registro a cada dois minutos caso campo memorando esteja com foco.
» [Resolvido]Salvar os dados na tabela somente depois de clicar no botão salvar