Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas Com Relatório


D.Soul

Pergunta

Yo,

Eu estou com um problema de código (pelo menos eu acho) aqui.. e gostaria de saber se alguém sabe me dizer como arrumar isso.. o trecho do código é este:

Set objAccess = GetObject(sCaminho, "Access.Application")
  With objAccess
  .DoCmd.OpenReport "Historico Escolar", acViewPreview, , "CódigoCandidato=" & txtCodigoCandidato
  .Visible = True
  .DoCmd.Maximize
End With

No relatório dentro do Access, ele pega os dados de uma consulta, e em ambos o campo está normal. Esse código não é meu, estou dando manutenção nele.. e não existem comentários.. então estou meio perdido.. =)

Agradeço qualquer ajuda.

D.Soul

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Yo, (Ops)

Ele esta acusando RTE..

"Erro em tempo de execução '2427':

Você inseriu uma expressão que não tem valor."

E pelo que pude entender do código, é no campo de condição quando passo o valor do CódigoCandidato.. se tiro esse valor ele sempre cai em um outro registro (deve ser o primeiro cadastrado).

Quando você pede para depurar o erro, ele acusa a linha do if, dentro do código do relatório, código abaixo:

Private Sub CabeçalhoDoGrupo1_Format(Cancel As Integer, FormatCount As Integer)
If (Me.Class) = "5" Then
    Me.TotalProjeto.Visible = True
    Me.Texto88.Visible = True

O meu maior problema é que tem uns 3 relatórios dando esse mesmo problema, todos acessando da mesma forma (mudando apenas o nome do relatório no código do outro post), então creio que resolvendo um já dou um grande salto nas correções.. todos com o mesmo código e gerando este mesmo erro.. =(

D.Soul

Link para o comentário
Compartilhar em outros sites

  • 0

Yo,

Esse campo sempre possuirá algum valor válido, sendo ele a ID do candidato. Ele só estará vazio se não possuir nenhum candidato cadastrado.

Quanto a parte das aspas simples, estou testando aqui.

Pronto, ele funcionou quanto a parar de dar o erro. Agora ele entra diretamente no relatório e exibe, mas o problema agora é que, não importa qual ID esteja digitada, ele sempre abre o mesmo candidato.

Verificando ID deste.

A ID dele é 460, sendo a primeira 30 e a última 501. A linha alterada ficou assim:

.DoCmd.OpenReport "Historico Escolar", acViewPreview, , "'CódigoCandidato=" & txtCodigoCandidato & "'"
Testei mostrar a ID que ele esta recebendo ao passar no parâmetro, a ID passa corretamente para a linha acima, porém ela sempre cai na 460. Se eu mudo a aspas de lugar, ele me envia outra mensagem de erro, e depois tentei fazer como encontrei na net (wherecondition), os códigos:
.DoCmd.OpenReport "Historico Escolar", acViewPreview, , "CódigoCandidato='" & txtCodigoCandidato & "'"
.DoCmd.OpenReport "Historico Escolar", acViewPreview, , wherecondition:="CódigoCandidato='" & txtCodigoCandidato & "'"
Mas continua dando o mesmo erro. O erro agora nesse caso de mudar as aspas ficou como: Run-time error '3464': Tipos de dados incompatível na expressão de critério. Eu fui fazer uns testes no Immediate e ele resultou isso:
?txtcodigocandidato
393

'Aspas antes
?"'[CódigoCandidato] = " & txtCodigoCandidato & "'"
'[CódigoCandidato] = 393'
?"Historico Escolar", acViewPreview, , "'[CódigoCandidato] = " & txtCodigoCandidato & "'"
Historico Escolar            2                          '[CódigoCandidato] = '
?"Historico Escolar", acViewPreview, , "'[CódigoCandidato] = " & txtCodigoCandidato.Text & "'"
Historico Escolar            2                          '[CódigoCandidato] = 393'

'Aspas depois
?"[CódigoCandidato] = '" & txtCodigoCandidato & "'"
[CódigoCandidato] = ''
?"Historico Escolar", acViewPreview, , "[CódigoCandidato] = '" & txtCodigoCandidato & "'"
Historico Escolar            2                          [CódigoCandidato] = ''
?"Historico Escolar", acViewPreview, , "[CódigoCandidato] = '" & txtCodigoCandidato.Text & "'"
*¹

Ele persiste abrindo no mesmo registro, idependente das mudanças.

*¹ abaixo:

Run-time error '424':

Object required.

>_<" Depois de muito sofrimento (mas ainda não arrumei), agora o problema é na consulta maldita que só seleciona aquele 460.. =(((

Pronto, agora ele lista todos.. todos mesmo.. -.-" Vou tentar resolver o where agora.. ^-^!

SOLVED!! Pronto, morreu, valeu pela grande ajuda =D!! Mesmo..

D.Soul

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...