[resolvido] Relatório com erro

Moderador: Avelino Sampaio

Fernando Carvalho
Mensagens: 24
Registrado em: 29 Jun 2018, 10:02

[resolvido] Relatório com erro

Mensagempor Fernando Carvalho » 10 Out 2018, 12:19

Boa tarde a todos. Boa tarde mestre Avelino. criei uma tabela e um form para organizar o correio recebido e enviado. Até aqui tudo bem.
Criei a seguinte SQL a partir das consultas do access:

Código: Selecionar todos

Dim strSQL As String
Dim strLinkCriteria As String
strLinkCriteria = "Recebido"

strSQL = "SELECT tblcorreio.ID, tblcorreio.DataEntrada, tblcorreio.Parade, tblcorreio.Gênero, tblcorreio.Recebido, tblcorreio.Recebido" & _
"FROM tblcorreio Where Recebido= & Recebido;"
DoCmd.OpenReport "rptcorreio", acViewPreview, , strLinkCriteria
 reports!rptcorreio!label0.Caption ="Correio recebido"


Em um botão de comando coloquei essa sql. E o que acontece?

1- O Label0 não assume o comando e apresenta-se em branco

2- Se adicionar o seguinte código:

Código:
Private Sub Report_NoData(Cancel As Integer)
Dim strMsg As String, strTitle As String
Dim intStyle As Integer

strMsg = "Não existem dados a Visualizar!!! "
intStyle = vbOKOnly
strTitle = "Sem dados no sistema"

MsgBox strMsg, intStyle, strTitle
Cancel = True
End Sub


Recebo o erro "A acção openReport foi cancelada". Se retirar esse código o relatório abre normalmente, apesar de o label0 não preencher. O que está mal nisto??? Agradeço qualquer ajuda.

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


Avatar do usuário
Damasceno Jr.
Mensagens: 460
Registrado em: 08 Jun 2015, 01:30
Localização: Medicilândia-Pará

Re: Relatório com erro

Mensagempor Damasceno Jr. » 11 Out 2018, 05:46

Deixo em anexo explicação do que acontece e uma alternativa de como atribuir um valor para o caption da label0
Mais sobre a técnica emprega você pode ver no artigo deste link

Código do seu botão de abrir o relatório
Código:
On Error GoTo trataerro 'dizendo para o código que caso haja erro
'a execução vá para o ponto do código onde é específico para tratamento de erro


Dim strVaiPraLabel0 As String 'variável qualquer para exemplificar
'uma maneira de alterar o caption da label0

strVaiPraLabel0 = "Correio recebido" 'atribuindo valor a variável

'abrindo o relatório e passando o valor para a label0 no argumento OpenArgs
DoCmd.OpenReport "rptcorreio", acViewPreview, , , , strVaiPraLabel0

sair:
'fim da execução do código aqui (não avance, afinal, abaixo se trata do ponto para tratamento de erro)
Exit Sub

trataerro: 'ponto para início do tratamento de erros

'o "erro" 2501 ocorre quando o relatório não permiti a abertura por não haver dados a serem exibidos
'como sei que isso não é um erro, afinal, eu que programei para o relatório não abrir caso não haja dados
'então digo para o código somente mostrar mensagem de erro caso o erro seja diferente de 2501

If Err.Number <> 2501 Then
MsgBox "Código: " & Err.Number & vbNewLine & _
vbNewLine & _
"Descrição: " & Err.Description, vbExclamation, "Erro"
End If

'retome a execução do código após o ponto "sair:"
Resume sair:

código do evento ao abrir do relatório
Código:
Private Sub Report_Open(Cancel As Integer)

'se o argumento OpenArgs do relatório não for nulo então
If Not IsNull(Me.OpenArgs) Then
'definindo o caption da label0 com o valor do argumento OpenArgs passado para o relatório
Me!label0.Caption = Me.OpenArgs
End If 'fim se

End Sub
Você deve estar registrado e autenticado para ter acesso ao arquivo anexo.
Quanto mais o tempo passa, mais descubro e mais me apaixono por MS Access.

Fernando Carvalho
Mensagens: 24
Registrado em: 29 Jun 2018, 10:02

Re: Relatório com erro

Mensagempor Fernando Carvalho » 11 Out 2018, 09:30

Obrigado. Vou experimentar. Retorno logo que possível.

Fernando Carvalho
Mensagens: 24
Registrado em: 29 Jun 2018, 10:02

Re: Relatório com erro

Mensagempor Fernando Carvalho » 11 Out 2018, 11:10

Amigo Damasceno. Continua a não preencher o Label0. Na parte do erro funcionou perfeitamente. Então o que fiz:

1- criei um campo chamado Status e coloquei no topo do relatório

2-alterei a SQL assim:
Where tblcorreio.Status.value=Recebido And Recebido= & Recebido"

Where tblcorreio.Status.value=Enviado And Enviado= & Enviado"

Desta forma, consegui que tudo funcionasse bem, aliado ao código que me enviou. Muito obrigado. Tenho outra dúvida vou abrir um novo post. Por favor, coloque resolvido neste.

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.



Voltar para “Relatórios”

Quem está online

Usuários neste fórum: Nenhum usuário registrado e 3 visitantes