Evidentemente si no hay una impresora instalada, Crystal arroja un error, para evitarlo, hay que detertar si hay o no impresora.
'variables declaradas como globales, para porder ser utilizardas desde cualquier parte
Global G_Prn As Printer
Global G_HayImpresora As Boolean
Global NombreImpresora As String
'Detectar impresora
For Each G_Prn In Printers
If Printer.DeviceName = G_Prn.DeviceName Then
NombreImpresora = G_Prn.DeviceName
G_HayImpresora = True
Exit For
End If
Next
' asi se obtiene lo siguiente:
'Si hay impresora, la variable G_HayImpresora, tendra el valor TRUE
'Ademas la variable NombreImpresora, tendra el valor de la impresora que tiene'el
'el sistema instalada por defecto
Con lo cual, si G_HayImpresora = False, pues no se manda imprimir el report
espero que esto solucione tus problemas
www.scgestion.compegale un vistazo, no te arrepentiras