Olá Squall,
O que provavelmente está ocorrendo com o Crystal pode ser o modo como você definiu os objetos no formulário e o disparo do relatório no evento Activate. Experimente fazer o seguinte:
1 - Altere as linhas abaixo
Private oApl As New CRAXDDRT.Application
Private orpt As New CRAXDDRT.Report
Para
Private oApl As CRAXDDRT.Application
Private orpt As CRAXDDRT.Report
2 - Remova todo o código do evento Activate e o coloque em uma procedure separada (por exemplo, Chama_Relatorio) no seu formulário, mas com a cláusula Public nela, de forma que você possa dispará-la de fora do formulário. Quando for chara o seu formulário faça assim:
Load FrmImpressao
FrmImpressao.Chama_Relatorio
FrmImpressao.Show 'Se quiser use vbmodal aqui
3 - Dentro desta procedure, antes de qualuqer código, coloque isso:
Set oApl = New CRAXDDRT.Application
Set orpt = New CRAXDDRT.Report
4 - Remova as linhas
Set oApl = Nothing
Set orpt = Nothing
do final da procedure e as coloque no evento Unload do formulário.
Tente isso e veja se funciona. funcionando ou não, mande uma mensagem, ok?
Um abraço,
Sandro.