'Crea un módulo nuevo y pega este código. Nombre: basComprobarInforme Option Compare Database Option Explicit Sub demomc_blnComprobarInforme() MsgBox mc_blnComprobarInforme("rptBuscar", False) End Sub Public Function mc_blnComprobarInforme(strNombreInforme As String, _ Optional blnExiste As Boolean = True) As Boolean '******************************************************************************************** 'Actualización: Fecha Creación: 20/07/2002 'Autor: José A. Giménez [Py] 'Modificación: McPegasus 'Contacto: mcpegasus@mcpegasus.com, www.mcpegasus.com ' 'Propósito: 'Comprobar si un informe existe en el contenedor de informes o está _ abierto (cargado). 'Devuelve True en caso de que la comprobación es correcta. 'La sintaxis del Procedimiento o Función, consta de estos argumentos: 'Parte Descripción '------------------------------------------------------------------------------------------- 'strNombreInforme: Requerido. Nombre del informe a comprobar. 'blnExiste: Opcional. Modo de busqueda del informe. _ True: Buscar si existe en el contenedor de informes _ False: Buscar si está cargado. On Error GoTo Err_CapturarError Dim Db As Database Dim docBucle As Document If blnExiste Then Set Db = CurrentDb() For Each docBucle In Db.Containers!Reports.Documents If docBucle.Name = strNombreInforme Then mc_blnComprobarInforme = True Exit For End If Next docBucle Db.Close Else If SysCmd(acSysCmdGetObjectState, acReport, strNombreInforme) <> 0 _ Then mc_blnComprobarInforme = True End If Salida: Exit Function Err_CapturarError: Select Case Err.Number Case Else MsgBox Err.Number & " " & Err.Description, _ vbCritical + vbOKOnly, "McPegasus informa." End Select Resume Salida End Function