|
États: Travailler avec des états depuis un formulaire modal |
Author(s) Terry Kreft |
|
Travailler avec des états depuis un formulaire modal.
(Q) J'ai un formulaire duquel j'appelle plusieurs états de par la métode
doCmd:
docmd.OpenReport strReportName, acPreview
Cependant, ce formulaire, permettant à l'utilisateur de
choisir l'état à visionner, est ouvert en mode modal:
docmd.OpenForm strFormname, , , , , acDialog
Le problème c'est que je ne peux sélectionner aucun menu des
pré-visionnements ainsi ouverts, mais derrière le formulaire (modal). Comment
faire pour amener ces pré-visionnements "en avant" et avec le focus?
(A) Utiliser la procédure OpenReport du code de Terry Kreft, ci-dessous, de
la même façon que si vous utilisiez OpenReport.
'This code was originally written by Terry Kreft.
'It is not to be altered or distributed,
'except as part of an application.
'You are free to use it in any application,
'provided the copyright notice is left unchanged.
'Ce code fut originalement écrit par Terry Kreft.
'Il ne peut être altéré ni distribué autrement
'qu'à l'intérieur d'une autre application.
'Vous êtes libre de l'utiliser dans votre application
'en autant que cette note demeure inchangée.
'
'Code Courtesy of
'Terry Kreft
Sub OpenReport(ReportName As String, Optional View As Integer, Optional _
FilterName As String, Optional WhereCondition As String)
Dim loFormArray() As String
Dim loform As Form
Dim intCount As Integer
Dim 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
Next
End Sub
Function IsVisible(intObjType As Integer, strObjName As String) As Boolean
Dim intObjState As Integer
intObjState = SysCmd(acSysCmdGetObjectState, intObjType, strObjName)
IsVisible = intObjState And acObjStateOpen
End Function
|