OVH Cloud OVH Cloud

Aperçu d'un Etat caché derrière un formulaire

7 réponses
Avatar
Pascale
Bonjour et bonne année à tous (il n'est pas trop tard) ! (;-))

Je travaille sur une base Access 2003 et j'ai un formulaire qui s'ouvre en
grand et qui n'a pas les boutons en haut à droite d'activés (pour la
réduction et la fermeture).
Sur ce formulaire, j'ai créé un bouton qui est censé m'ouvrir un état.
Cependant si, quand je clique sur ce bouton, l'état s'ouvre bien en mode
aperçu comme je le veux, il reste caché derrière le formulaire.
Que puis-je (ou dois-je) faire pour que l'aperçu vienne au premier plan (je
le fermerai moi même quand je l'aurai décidé).

Merci d'avance pour votre aide.

Bien Cordialement
--
Vébéiste en herbe (;-))

7 réponses

Avatar
ze Titi
Bonjour Pascale

Copie le code suivant dans un module quelconque et utilise la fonction
OpenReport
à la place de
Docmd.OpenReport

--Début du code --

'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

--Fin du code --


Dans ton message
Bonjour et bonne année à tous (il n'est pas trop tard) ! (;-))

Je travaille sur une base Access 2003 et j'ai un formulaire qui s'ouvre en
grand et qui n'a pas les boutons en haut à droite d'activés (pour la
réduction et la fermeture).
Sur ce formulaire, j'ai créé un bouton qui est censé m'ouvrir un état.
Cependant si, quand je clique sur ce bouton, l'état s'ouvre bien en mode
aperçu comme je le veux, il reste caché derrière le formulaire.
Que puis-je (ou dois-je) faire pour que l'aperçu vienne au premier plan (je
le fermerai moi même quand je l'aurai décidé).

Merci d'avance pour votre aide.

Bien Cordialement


--
Voilou !
Bon courage !
Cordialement,
ze Titi

Avatar
Pascale
Bonjour Titi !

Tout d'abord grand merci !

Ensuite... petit souci...
J'ai bien compris qu'il fallait que j'utilise la fonction OpenReport à la
place de Docmd.OpenReport parce que sinon quand je clique sur mon bouton
(créé automatiquement) ce que tu me fais rajouter ne comprend pas que c'est
lié à cette ouverture de l'état que je demande.
Alors je suis allée sur la procédure événementielle qui correspond à ce
bouton d'ouverture de mon état et j'ai changé "Docmd.OpenReport stDocName,
acPreview" par "OpenReport stDocName, acPreview" mais... ça veut pas marcher
(débogage se met en route).

Qu'ai-je mal fait ?

Merci de ton aide.
--
Vébéiste en herbe (;-))



Bonjour Pascale

Copie le code suivant dans un module quelconque et utilise la fonction
OpenReport
à la place de
Docmd.OpenReport

--Début du code --

'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

--Fin du code --


Dans ton message
Bonjour et bonne année à tous (il n'est pas trop tard) ! (;-))

Je travaille sur une base Access 2003 et j'ai un formulaire qui s'ouvre en
grand et qui n'a pas les boutons en haut à droite d'activés (pour la
réduction et la fermeture).
Sur ce formulaire, j'ai créé un bouton qui est censé m'ouvrir un état.
Cependant si, quand je clique sur ce bouton, l'état s'ouvre bien en mode
aperçu comme je le veux, il reste caché derrière le formulaire.
Que puis-je (ou dois-je) faire pour que l'aperçu vienne au premier plan (je
le fermerai moi même quand je l'aurai décidé).

Merci d'avance pour votre aide.

Bien Cordialement


--
Voilou !
Bon courage !
Cordialement,
ze Titi






Avatar
ze Titi
As-tu bien copié le code dans un module ? Si oui, comment as-tu nommé
le module en question ? Il ne faut pas l'appeler OpenReport mais
n'importe quel autre nom convient ("Module 1" c'est très bien...)
Quel est le message d'erreur ?

Dans ton message
Bonjour Titi !

Tout d'abord grand merci !

Ensuite... petit souci...
J'ai bien compris qu'il fallait que j'utilise la fonction OpenReport à la
place de Docmd.OpenReport parce que sinon quand je clique sur mon bouton
(créé automatiquement) ce que tu me fais rajouter ne comprend pas que c'est
lié à cette ouverture de l'état que je demande.
Alors je suis allée sur la procédure événementielle qui correspond à ce
bouton d'ouverture de mon état et j'ai changé "Docmd.OpenReport stDocName,
acPreview" par "OpenReport stDocName, acPreview" mais... ça veut pas marcher
(débogage se met en route).

Qu'ai-je mal fait ?

Merci de ton aide.
--
Vébéiste en herbe (;-))



Bonjour Pascale

Copie le code suivant dans un module quelconque et utilise la fonction
OpenReport
à la place de
Docmd.OpenReport

--Début du code --

'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

--Fin du code --


Dans ton message
Bonjour et bonne année à tous (il n'est pas trop tard) ! (;-))

Je travaille sur une base Access 2003 et j'ai un formulaire qui s'ouvre en
grand et qui n'a pas les boutons en haut à droite d'activés (pour la
réduction et la fermeture).
Sur ce formulaire, j'ai créé un bouton qui est censé m'ouvrir un état.
Cependant si, quand je clique sur ce bouton, l'état s'ouvre bien en mode
aperçu comme je le veux, il reste caché derrière le formulaire.
Que puis-je (ou dois-je) faire pour que l'aperçu vienne au premier plan (je
le fermerai moi même quand je l'aurai décidé).

Merci d'avance pour votre aide.

Bien Cordialement


--
Voilou !
Bon courage !
Cordialement,
ze Titi






--
Voilou !
Bon courage !
Cordialement,
ze Titi



Avatar
Pascale
Autant pour moi !

Non, je ne l'ai pas copié dans un module mais à la suite de la procédure
d'ouverture de l'état...
Bon, je recommence et reviens te dire ce qu'il en est.
(désolée, je ne suis qu'une débutante et je n'ai pas tilté sur le fait qu'un
module c'était aileurs).
@ un peu plus tard...
--
Vébéiste en herbe (;-))



As-tu bien copié le code dans un module ? Si oui, comment as-tu nommé
le module en question ? Il ne faut pas l'appeler OpenReport mais
n'importe quel autre nom convient ("Module 1" c'est très bien...)
Quel est le message d'erreur ?

Dans ton message
Bonjour Titi !

Tout d'abord grand merci !

Ensuite... petit souci...
J'ai bien compris qu'il fallait que j'utilise la fonction OpenReport à la
place de Docmd.OpenReport parce que sinon quand je clique sur mon bouton
(créé automatiquement) ce que tu me fais rajouter ne comprend pas que c'est
lié à cette ouverture de l'état que je demande.
Alors je suis allée sur la procédure événementielle qui correspond à ce
bouton d'ouverture de mon état et j'ai changé "Docmd.OpenReport stDocName,
acPreview" par "OpenReport stDocName, acPreview" mais... ça veut pas marcher
(débogage se met en route).

Qu'ai-je mal fait ?

Merci de ton aide.
--
Vébéiste en herbe (;-))



Bonjour Pascale

Copie le code suivant dans un module quelconque et utilise la fonction
OpenReport
à la place de
Docmd.OpenReport

--Début du code --

'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

--Fin du code --


Dans ton message
Bonjour et bonne année à tous (il n'est pas trop tard) ! (;-))

Je travaille sur une base Access 2003 et j'ai un formulaire qui s'ouvre en
grand et qui n'a pas les boutons en haut à droite d'activés (pour la
réduction et la fermeture).
Sur ce formulaire, j'ai créé un bouton qui est censé m'ouvrir un état.
Cependant si, quand je clique sur ce bouton, l'état s'ouvre bien en mode
aperçu comme je le veux, il reste caché derrière le formulaire.
Que puis-je (ou dois-je) faire pour que l'aperçu vienne au premier plan (je
le fermerai moi même quand je l'aurai décidé).

Merci d'avance pour votre aide.

Bien Cordialement


--
Voilou !
Bon courage !
Cordialement,
ze Titi






--
Voilou !
Bon courage !
Cordialement,
ze Titi








Avatar
Pascale
Me revoilà !

Bon, alors, j'ai fait insertion module
En haut il y a une ligne d'écrite : "option compare data base"
En dessous, j'ai copié l'intégralité du code que tu m'as donné compris entre
"début de code" et "fin de code".
Ensuite je suis allée sur la procédure d'ouverture de l'état et j'ai modifié
docmd.open report par open report ce qui donne :

début

Private Sub Commande39_Click()
On Error GoTo Err_Commande39_Click

Dim stDocName As String

stDocName = "E_ExpFeed"
OpenReport stDocName, acPreview

Exit_Commande39_Click:
Exit Sub

Err_Commande39_Click:
MsgBox Err.Description
Resume Exit_Commande39_Click

End Sub

Fin

Quand j'essaie de cliquer sur mon bouton, j'ai un message d'erreur qui me
dit :
"Erreur de compilation
Attendu : Identificateur
OK Aide"

Et bien sûr... je ne sais pas quoi faire !

Qu'en penses-tu ?

Merci d'avance.
--
Vébéiste en herbe (;-))



Autant pour moi !

Non, je ne l'ai pas copié dans un module mais à la suite de la procédure
d'ouverture de l'état...
Bon, je recommence et reviens te dire ce qu'il en est.
(désolée, je ne suis qu'une débutante et je n'ai pas tilté sur le fait qu'un
module c'était aileurs).
@ un peu plus tard...
--
Vébéiste en herbe (;-))



As-tu bien copié le code dans un module ? Si oui, comment as-tu nommé
le module en question ? Il ne faut pas l'appeler OpenReport mais
n'importe quel autre nom convient ("Module 1" c'est très bien...)
Quel est le message d'erreur ?

Dans ton message
Bonjour Titi !

Tout d'abord grand merci !

Ensuite... petit souci...
J'ai bien compris qu'il fallait que j'utilise la fonction OpenReport à la
place de Docmd.OpenReport parce que sinon quand je clique sur mon bouton
(créé automatiquement) ce que tu me fais rajouter ne comprend pas que c'est
lié à cette ouverture de l'état que je demande.
Alors je suis allée sur la procédure événementielle qui correspond à ce
bouton d'ouverture de mon état et j'ai changé "Docmd.OpenReport stDocName,
acPreview" par "OpenReport stDocName, acPreview" mais... ça veut pas marcher
(débogage se met en route).

Qu'ai-je mal fait ?

Merci de ton aide.
--
Vébéiste en herbe (;-))



Bonjour Pascale

Copie le code suivant dans un module quelconque et utilise la fonction
OpenReport
à la place de
Docmd.OpenReport

--Début du code --

'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

--Fin du code --


Dans ton message
Bonjour et bonne année à tous (il n'est pas trop tard) ! (;-))

Je travaille sur une base Access 2003 et j'ai un formulaire qui s'ouvre en
grand et qui n'a pas les boutons en haut à droite d'activés (pour la
réduction et la fermeture).
Sur ce formulaire, j'ai créé un bouton qui est censé m'ouvrir un état.
Cependant si, quand je clique sur ce bouton, l'état s'ouvre bien en mode
aperçu comme je le veux, il reste caché derrière le formulaire.
Que puis-je (ou dois-je) faire pour que l'aperçu vienne au premier plan (je
le fermerai moi même quand je l'aurai décidé).

Merci d'avance pour votre aide.

Bien Cordialement


--
Voilou !
Bon courage !
Cordialement,
ze Titi






--
Voilou !
Bon courage !
Cordialement,
ze Titi










Avatar
ze Titi
Je ne sais pas sur quelle ligne se situe l'erreur... Dans le doute, le revoici...

'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


Me revoilà !

Bon, alors, j'ai fait insertion module
En haut il y a une ligne d'écrite : "option compare data base"
En dessous, j'ai copié l'intégralité du code que tu m'as donné compris entre
"début de code" et "fin de code".
Ensuite je suis allée sur la procédure d'ouverture de l'état et j'ai modifié
docmd.open report par open report ce qui donne :

début

Private Sub Commande39_Click()
On Error GoTo Err_Commande39_Click

Dim stDocName As String

stDocName = "E_ExpFeed"
OpenReport stDocName, acPreview

Exit_Commande39_Click:
Exit Sub

Err_Commande39_Click:
MsgBox Err.Description
Resume Exit_Commande39_Click

End Sub

Fin

Quand j'essaie de cliquer sur mon bouton, j'ai un message d'erreur qui me
dit :
"Erreur de compilation
Attendu : Identificateur
OK Aide"

Et bien sûr... je ne sais pas quoi faire !

Qu'en penses-tu ?

Merci d'avance.
--
Vébéiste en herbe (;-))



Autant pour moi !

Non, je ne l'ai pas copié dans un module mais à la suite de la procédure
d'ouverture de l'état...
Bon, je recommence et reviens te dire ce qu'il en est.
(désolée, je ne suis qu'une débutante et je n'ai pas tilté sur le fait qu'un
module c'était aileurs).
@ un peu plus tard...
--
Vébéiste en herbe (;-))



As-tu bien copié le code dans un module ? Si oui, comment as-tu nommé
le module en question ? Il ne faut pas l'appeler OpenReport mais
n'importe quel autre nom convient ("Module 1" c'est très bien...)
Quel est le message d'erreur ?

Dans ton message
Bonjour Titi !

Tout d'abord grand merci !

Ensuite... petit souci...
J'ai bien compris qu'il fallait que j'utilise la fonction OpenReport à la
place de Docmd.OpenReport parce que sinon quand je clique sur mon bouton
(créé automatiquement) ce que tu me fais rajouter ne comprend pas que
c'est lié à cette ouverture de l'état que je demande.
Alors je suis allée sur la procédure événementielle qui correspond à ce
bouton d'ouverture de mon état et j'ai changé "Docmd.OpenReport stDocName,
acPreview" par "OpenReport stDocName, acPreview" mais... ça veut pas
marcher (débogage se met en route).

Qu'ai-je mal fait ?

Merci de ton aide.
--
Vébéiste en herbe (;-))



Bonjour Pascale

Copie le code suivant dans un module quelconque et utilise la fonction
OpenReport
à la place de
Docmd.OpenReport

--Début du code --

'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

--Fin du code --


Dans ton message
Bonjour et bonne année à tous (il n'est pas trop tard) ! (;-))

Je travaille sur une base Access 2003 et j'ai un formulaire qui s'ouvre
en grand et qui n'a pas les boutons en haut à droite d'activés (pour la
réduction et la fermeture).
Sur ce formulaire, j'ai créé un bouton qui est censé m'ouvrir un état.
Cependant si, quand je clique sur ce bouton, l'état s'ouvre bien en mode
aperçu comme je le veux, il reste caché derrière le formulaire.
Que puis-je (ou dois-je) faire pour que l'aperçu vienne au premier plan
(je le fermerai moi même quand je l'aurai décidé).

Merci d'avance pour votre aide.

Bien Cordialement


--
Voilou !
Bon courage !
Cordialement,
ze Titi






--
Voilou !
Bon courage !
Cordialement,
ze Titi







--
Voilou !
Bon courage !
Cordialement,
ze Titi






Avatar
Pascale
Titi !

MERCI BEAUCOUP !

J'ai recopié le "nouveau" code donné et ça marche nickel pile poil !!!

Vraiment plein de mercis et milles bonnes choses pour toi (et tous les
autres, ne soyons pas radins !!)

Bien bien bien cordialement !!

(je me répète parce que vraiment... c'est top !! Merci !!)
--
Vébéiste en herbe (;-))



Je ne sais pas sur quelle ligne se situe l'erreur... Dans le doute, le revoici...

'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


Me revoilà !

Bon, alors, j'ai fait insertion module
En haut il y a une ligne d'écrite : "option compare data base"
En dessous, j'ai copié l'intégralité du code que tu m'as donné compris entre
"début de code" et "fin de code".
Ensuite je suis allée sur la procédure d'ouverture de l'état et j'ai modifié
docmd.open report par open report ce qui donne :

début

Private Sub Commande39_Click()
On Error GoTo Err_Commande39_Click

Dim stDocName As String

stDocName = "E_ExpFeed"
OpenReport stDocName, acPreview

Exit_Commande39_Click:
Exit Sub

Err_Commande39_Click:
MsgBox Err.Description
Resume Exit_Commande39_Click

End Sub

Fin

Quand j'essaie de cliquer sur mon bouton, j'ai un message d'erreur qui me
dit :
"Erreur de compilation
Attendu : Identificateur
OK Aide"

Et bien sûr... je ne sais pas quoi faire !

Qu'en penses-tu ?

Merci d'avance.
--
Vébéiste en herbe (;-))



Autant pour moi !

Non, je ne l'ai pas copié dans un module mais à la suite de la procédure
d'ouverture de l'état...
Bon, je recommence et reviens te dire ce qu'il en est.
(désolée, je ne suis qu'une débutante et je n'ai pas tilté sur le fait qu'un
module c'était aileurs).
@ un peu plus tard...
--
Vébéiste en herbe (;-))



As-tu bien copié le code dans un module ? Si oui, comment as-tu nommé
le module en question ? Il ne faut pas l'appeler OpenReport mais
n'importe quel autre nom convient ("Module 1" c'est très bien...)
Quel est le message d'erreur ?

Dans ton message
Bonjour Titi !

Tout d'abord grand merci !

Ensuite... petit souci...
J'ai bien compris qu'il fallait que j'utilise la fonction OpenReport à la
place de Docmd.OpenReport parce que sinon quand je clique sur mon bouton
(créé automatiquement) ce que tu me fais rajouter ne comprend pas que
c'est lié à cette ouverture de l'état que je demande.
Alors je suis allée sur la procédure événementielle qui correspond à ce
bouton d'ouverture de mon état et j'ai changé "Docmd.OpenReport stDocName,
acPreview" par "OpenReport stDocName, acPreview" mais... ça veut pas
marcher (débogage se met en route).

Qu'ai-je mal fait ?

Merci de ton aide.
--
Vébéiste en herbe (;-))



Bonjour Pascale

Copie le code suivant dans un module quelconque et utilise la fonction
OpenReport
à la place de
Docmd.OpenReport

--Début du code --

'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

--Fin du code --


Dans ton message
Bonjour et bonne année à tous (il n'est pas trop tard) ! (;-))

Je travaille sur une base Access 2003 et j'ai un formulaire qui s'ouvre
en grand et qui n'a pas les boutons en haut à droite d'activés (pour la
réduction et la fermeture).
Sur ce formulaire, j'ai créé un bouton qui est censé m'ouvrir un état.
Cependant si, quand je clique sur ce bouton, l'état s'ouvre bien en mode
aperçu comme je le veux, il reste caché derrière le formulaire.
Que puis-je (ou dois-je) faire pour que l'aperçu vienne au premier plan
(je le fermerai moi même quand je l'aurai décidé).

Merci d'avance pour votre aide.

Bien Cordialement


--
Voilou !
Bon courage !
Cordialement,
ze Titi






--
Voilou !
Bon courage !
Cordialement,
ze Titi







--
Voilou !
Bon courage !
Cordialement,
ze Titi