Bonsoir à tous
J'aimerai savoir le code VBA /fonction qui retourne le nom d'un rapport chargé
merci
Bonsoir à tous
J'aimerai savoir le code VBA /fonction qui retourne le nom d'un rapport chargé
merci
Bonjour,
Tu peux énumérer tous les rapports en état chargé et retourner leur nom mais je ne vois pas comment tu peux en cibler un en particulier...
Argy
Bonjour,
Si j'ai bien compris
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part currentproject.AllReports("monreport").IsLoaded
Bonjour
La solution en passant par allreports ne permet pas de savoir si une instance particuliere est chargee. Il est preferable d'utiliser la collection reports qui contient tous les etats qui sont charges
Par exemple, si 1 seule instance ne eput etre chargee a un moment donnee (utilisation du docmd.openreport), alors
autre approche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim R as report on error resume next Set R=reports("NomEtat") .... (Si R est nothing, alors l'etat n'est pas charge)
J'espere que cela t'aidera
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public Function EtatCharge(NomEtat as string) as boolean on error resume next EtatCharge=NOT (reports("NomEtat") IS NOTHING) end function
Merci à ceux qui ont participé à ce debat, j'ai bien bénificé de nouveaux astuces, mais qu'ils ne s'agit pas de ma question :
" Il y a à chaque fois, une instance d'un etat chargé ,et j'aimerais savoir son nom "
Merci.
Bonsoir,
@alasomed, si tu veux une réponse claire, il faudrait une explication claire !
C'est à dire, comment.... pourquoi.... quand ?Il y a à chaque fois, une instance d'un etat chargé
de l'instance ou de l'état... (bon je sais c'est petit !)et j'aimerais savoir son nom
==> Quel en est le but ?
![]()
Voilà .. pour un formulaire :
la Méthode (.CurrentView) avec un formulaire est accessible
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 If Forms(i).CurrentView <> 0 Then VarMonFrm = Forms(i).Name
Mais avec un Etat est inaccessible ,
et l'Access retourne une erreure
Je n'ai pas bien compris ton objectif...
Mais bon, voilà une fonction qui te permettra d'aller où tu veux :
(A toi de la peaufiner comme tu l'entends)
Argy
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Public Enum m_eObjectType eIsForm eIsReport End Enum Public Function ObjectIsLoaded(ByVal ObjectName As String, ByVal ObjectType As m_eObjectType) As Boolean '--------------------------------------------------------------------------- ' Procedure : ObjectIsLoaded ' DateTime : 14/04/2009 ' Author : Argyronet ' Purpose : Vérifie si un objet (Form ou Report) est chargé '........................................................................... ' Parameters : ObjectName = Nom de l'objet ' ObjectType = Type de l'objet ' Return Codes : Boolean = True si l'objet est chargé '...................................................................... ' Evolutions : '--------------------------------------------------------------------------- Const OBJECT_IS_CLOSED As Long = 0 Dim oAccessObject As AccessObject On Error GoTo ObjectIsLoaded_Error Select Case ObjectType Case eIsForm Set oAccessObject = CurrentProject.AllForms(ObjectName) Case eIsReport Set oAccessObject = CurrentProject.AllReports(ObjectName) End Select If oAccessObject.IsLoaded Then ObjectIsLoaded = (oAccessObject.CurrentView <> acCurViewDesign) End If Set oAccessObject = Nothing On Error GoTo 0 ObjectIsLoaded_Exit: Exit Function ObjectIsLoaded_Error: ObjectIsLoaded = False Resume ObjectIsLoaded_Exit End Function
Merçi Bq cher Argy Votre réponce éclaire mon chemin ..
voilà J'arrive à ecrire
et ça marche .. merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Function RptChargé() As String Dim obj As AccessObject, dbs As Object Set dbs = Application.CurrentProject For Each obj In dbs.AllReports If obj.IsLoaded = True Then RptChargé = obj.Name Exit For End If Next obj End Function
N'oublie pas le
à la fin de ta fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set dbs = Nothing
Argy
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager