Ya hay algunas cosas colgadas en la web así que ya vuelve a estar disponible.
Cuando abro un reporte en vista previa desde un formulario Modal o Emergente, éste se sitúa detrás del formulario y no puedo verle. ¿Como presento el reporte en pantalla, por delante del formulario?
Esto sirve para meter un report en vista previa, llamado desde un formulario MODAL. Si se hace sin mas, el Report se queda en segundo plano y no se ve.Búho Agosto 2002Uso:En vez de llamar al reporte de forma habitual, lo hacemos desde esta función. Es decir, desde cualquier formulario, que deseemos lanzar un 'reporte en vista previa, con formularios modales y para evitar que dicho 'reporte se quede 'detrás' y no se vea, deberemos llamar así: OpenReport("Mireporte", etc)Y la funcion OpenReport que hace todo esto es:Código: [Seleccionar]Sub OpenReport(ReportName As String, Optional View As Integer, Optional _ FilterName As String, Optional WhereCondition As String)Dim loFormArray() As StringDim loform As FormDim intCount As IntegerDim intX As Integer For Each loform In Forms If loform.Visible Then ReDim Preserve loFormArray(intCount) loFormArray(intCount) = loform.Name loform.Visible = False intCount = intCount + 1 End If Next DoCmd.OpenReport ReportName, View, FilterName, WhereCondition Do While IsVisible(acReport, ReportName): DoEvents: Loop For intX = intCount - 1 To 0 Step -1 Forms(loFormArray(intX)).Visible = True NextEnd SubFunction IsVisible(intObjType As Integer, strObjName As String) As BooleanDim intObjState As Integer intObjState = SysCmd(acSysCmdGetObjectState, intObjType, strObjName) IsVisible = intObjState And acObjStateOpenEnd Function
Sub OpenReport(ReportName As String, Optional View As Integer, Optional _ FilterName As String, Optional WhereCondition As String)Dim loFormArray() As StringDim loform As FormDim intCount As IntegerDim intX As Integer For Each loform In Forms If loform.Visible Then ReDim Preserve loFormArray(intCount) loFormArray(intCount) = loform.Name loform.Visible = False intCount = intCount + 1 End If Next DoCmd.OpenReport ReportName, View, FilterName, WhereCondition Do While IsVisible(acReport, ReportName): DoEvents: Loop For intX = intCount - 1 To 0 Step -1 Forms(loFormArray(intX)).Visible = True NextEnd SubFunction IsVisible(intObjType As Integer, strObjName As String) As BooleanDim intObjState As Integer intObjState = SysCmd(acSysCmdGetObjectState, intObjType, strObjName) IsVisible = intObjState And acObjStateOpenEnd Function