Este codigo es un fragmento que encontre buscando como solucionar el problema por internet que lo que hace es exportar el informe y luego mostrarlo en un formulario. Esta creado por Juan M Afán de Ribera y en este enlace se puede encontrar completo http://accessvbafaq.mvps.org/item.asp?pagina=97.
Código:
Mediante appAccess.DoCmd.OpenReport "NOMBREINFORME", acViewPreview, , PARAMETRO se como pasarle el parametro al informe pero no se si sera posible hacerlo con la linea de codigo que usa este ejemplo ya que creo que exporta el informe sin llegar a abrirlo oApp.DoCmd.OutputTo ObjectType, ReportName, ExportFormat, SNPFilePrivate Sub Command1_Click() ' en este procedimiento exportamos el informe ' seleccionado en el ListBox Dim ObjectType As Integer Dim ReportName As String Dim ExportFormat As String Dim SNPFile As String Dim OnlyOnce As Boolean If Me.List1.ListIndex > -1 Then ' tipo de objeto (acReport) ObjectType = 3 'acOutputReport ' nombre del informe ReportName = Me.List1.Text ' formato al que se exportará el informe ExportFormat = "Snapshot Format (*.snp)" ' nombre y ruta del archivo que se exportará SNPFile = App.Path & "\" & Me.List1.Text & ".snp" On Error GoTo err_OutputTo ' exportamos el informe seleccionado al formato ' snapshot oApp.DoCmd.OutputTo ObjectType, ReportName, ExportFormat, SNPFile ' cargamos el formulario donde se visualizarán los informes Load Form2 ' le ponemos el nombre del informe que se mostrará Form2.Caption = "Informe: " & List1.Text ' vinculamos el archivo que hemos exportado con el visor ' de archivos Snapshot Form2.SnapshotViewer1.SnapshotPath = SNPFile ' eliminamos el archivo Kill SNPFile ' mostramos el formulario Form2.Show ' hacemos que el informe se ajuste al tamaño del formulario Form2.SnapshotViewer1.Zoom = snapZoomToFit Else MsgBox "Escoge un informe", vbExclamation, "Atención" End If Exit Sub err_OutputTo: If OnlyOnce = False Then ' si el formato snapshot no está disponible If Err = 2282 Then ' si se han podido cambiar las entradas erróneas del registro If ChangeReg Then ' reiniciaremos la aplicación Access para que los cambios ' surtan efecto Call ResetAccess ' volvemos a intentarlo OnlyOnce = True Resume Else MsgBox "Ha ocurrido un error imprevisto" End If Else MsgBox "Error: " & Err.Number & vbCrLf & vbCrLf & Err.Description End If Else ' por alguna razón esto no tira :-S MsgBox "No se puede ejecutar el ejemplo" End If End Sub
Me puede explicar alguien como hacerlo?
Gracias.