none
Visualisar relatório e escolher impressora RRS feed

  • Pergunta

  • NO Access 2007, em VBA, abro um report como pop up, exibe tudo ok, até ai tudo normal. Agora preciso chamar o prompt para escolher uma impressora, utilizo o 'DoCmd.RunCommand acCmdPrint' . A janela do prompt aparece para selecionar a impressora, mas o report fica em branco por trás.

    Como mudar isso para aparecer a imagem do relatório por tras do prompt da impressão?

    DoCmd.OpenReport "rpt_Recibo_Viagem", acViewPreview, "", acDialog

    'DoCmd.RunCommand acCmdPrint

    Grato,

    Weivisson

    segunda-feira, 10 de setembro de 2012 13:21

Respostas

  • Desculpa, falta o DoEvents para o sistema carregar primeiro os dados no relatório.

    A sequência de instruções deverá ser assim:

        'abrir o relatório
        DoCmd.OpenReport "rpt_Recibo_Viagem", acViewPreview
        DoEvents
        
        'evitar o erro caso cancele a impressão
        On Error Resume Next
        DoCmd.RunCommand acCmdPrint
        On Error GoTo 0
        
        'fechar o relatório
        DoCmd.Close acReport, "rpt_Recibo_Viagem"
    
    Desta vez testei, e também funciona com relatórios PopUp e/ou Modal, desde que definidas nas propriedades do relatório.
    terça-feira, 11 de setembro de 2012 20:03

Todas as Respostas

  • Retira o acDialog da instrução OpenReport.

    O acDialog força o relatorio a abrir em Janela PopUp e em Modal. O Modal é que faz não aparecer o conteudo.

    Se queres que o relatório apareça em janela muda a propriedade PopUp=Sim, deixando a Modal=Não.

    segunda-feira, 10 de setembro de 2012 21:01
  • Obrigado pela força Nando, porém fiz o recomendado e continua não aparecendo.

    PopUp e Modal já estavam com essa configuração na propriedades do Report, eu teria q declarar isso no VBA também?

    Raimundo

    terça-feira, 11 de setembro de 2012 11:22
  • Desculpa, falta o DoEvents para o sistema carregar primeiro os dados no relatório.

    A sequência de instruções deverá ser assim:

        'abrir o relatório
        DoCmd.OpenReport "rpt_Recibo_Viagem", acViewPreview
        DoEvents
        
        'evitar o erro caso cancele a impressão
        On Error Resume Next
        DoCmd.RunCommand acCmdPrint
        On Error GoTo 0
        
        'fechar o relatório
        DoCmd.Close acReport, "rpt_Recibo_Viagem"
    
    Desta vez testei, e também funciona com relatórios PopUp e/ou Modal, desde que definidas nas propriedades do relatório.
    terça-feira, 11 de setembro de 2012 20:03
  • Obrigadíssimo pela competente resposta amigo. ; )
    quarta-feira, 12 de setembro de 2012 08:36