RESPUESTA A LA PREGUNTA DE VISUAL BASIC NUMERO 1433 Aqui tienes un ejemplo de como imprimir formularios de Crystal Reports, desde VB. Este ejemplo selecciona entre 2 formularios. La respuesta es un poco larga, pero si tienes alguna duda, ponte en contacto conmigo. Private Sub cmdGestionInformes_Click(Index As Integer) Dim FechaDesde As String Dim FechaHasta As String Dim Resultado As Boolean On Error GoTo ErrorInformes DialogoImpresora.CancelError = True DialogoImpresora.Flags = cdlPDDisablePrintToFile DialogoImpresora.Flags = cdlPDHidePrintToFile DialogoImpresora.Flags = cdlPDNoSelection If FechaInformesDesde > FechaInformesHasta Then MsgBox "La Fecha Desde no puede ser mayor que la Fecha Hasta", vbExclamation, "Visualizar / Imprimir" Exit Sub End If Me.MousePointer = vbHourglass FechaDesde = "Date (" & Format(FechaInformesDesde.Value, "yyyy, mm, dd") & ")" FechaHasta = "Date (" & Format(FechaInformesHasta.Value, "yyyy, mm, dd") & ")" With Informes Select Case Index 'Si es 0 ó 1, se visualizara el informe. 0 para FORMULARIO1, 1 para FORMULARIO2 Case 0, 1 .Destination = 0 .WindowState = crptMaximized .WindowLeft = 0 .WindowTop = 0 .WindowMaxButton = False .WindowMinButton = False 'Si es 2 ó 3, se Imprimira el informe. 3 para FORMULARIO1, 2 para FORMULARIO2 Case 2, 3 If Index = 2 Then Index = 0 If Index = 3 Then Index = 1 Resultado = CalcularTotales(FechaInformesDesde.Value, FechaInformesHasta.Value) If Not Resultado Then GoTo ErrorInformes End If .Destination = 1 DialogoImpresora.ShowPrinter End Select .ReportFileName = Directorio & IIf(Index, "FORMULARIO1.RPT", "FORMULARIO2.RPT") .DataFiles(0) = Directorio & BASE_DATOS .SelectionFormula = "{TablaGastos.Fecha} >= " & FechaDesde & " And {TablaGastos.Fecha} <= " & FechaHasta & "" .Action = 1 End With ErrorInformes: Me.MousePointer = vbDefault Me.Refresh End Sub Pedro Valencia valros@wanadoo.es