Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/04/2011, 13h42   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 47
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 47
Points : 10
Points : 10
Par défaut Liaison entre un formulaire et un sous état

Bonjour à tous.

Voila plusieurs jours que je rame sur un problème... Je vous explique et si ce n'est pas clair, hésitez pas à me le dire...

J'ai un formulaire dans lequel se trouvent deux listes déroulantes (une sur des dates et une autre sur les services impactés) et un bouton pour ouvrir un état en fonction des choix que j'ai fait dans les listes. Ce formulaire fait office de tri.

Une fois les choix fait, je clique sur mon bouton qui m'onvre l'état. Dans celui ci je récupère des actions à mener. Une action est composée d'un nom, d'une date, d'une période mais aussi de services impactés et de pilotes.
Mon état est basé sur une requête me donnant l'identifiant de mon action, son nom, la période et la date. Dans celui ci se trouve un sous état pour les services impactés et un autre pour les pilotes.
Le soucis que je rencontre est que je suis obligée (pour le moment je l'espère) de mettre les services impactés dans ma requête car je n'arrive pas à faire le lien entre le formulaire et le sous état. De ce fait, si mon action a trois services impactés, mon état affiche trois fois la même action. Or je souhaiterais avoir un état par action. Pour cela il me faudrait donc sur le clique de mon bouton modifier les conditions de filtre mais je ne trouve pas la syntaxe. Après avoir essayé de nombreuses manières différentes et consultés beaucoup de sites, je me tourne vers vous...
J'espère que quelqu'un aura une idée...

Voici le code situé sur mon bouton, donc l'ouverture de mon état.

Code :
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
Private Sub btn_impression_Click()
 
On Error GoTo Err_btn_impression_Click
 
    If IsNull([Forms]![frm_liste_service_impacte]![lst_date]) = True And IsNull([Forms]![frm_liste_service_impacte]![lst_serviceI]) = True Then
        DoCmd.OpenReport "r_etat", acViewPreview, , , acNormal
        DoCmd.RunCommand acCmdZoom100
    Else
        If IsNull([Forms]![frm_liste_service_impacte]![lst_date]) = True And IsNull([Forms]![frm_liste_service_impacte]![lst_serviceI]) = False Then
            DoCmd.OpenReport "r_etat", acViewPreview, , "([r_Service_Impacte_nom_Service] = " & " [Forms]![frm_liste_service_impacte]![lst_serviceI]" & " OR [r_Service_Impacte_nom_Service] = 'Tous services')", acNormal
            DoCmd.RunCommand acCmdZoom100
        Else
            If IsNull([Forms]![frm_liste_service_impacte]![lst_date]) = False And IsNull([Forms]![frm_liste_service_impacte]![lst_serviceI]) = True Then
                DoCmd.OpenReport "r_etat", acViewPreview, , "[dateComiteEncadrement] = " & " [Forms]![frm_liste_service_impacte]![lst_date]", acNormal
                DoCmd.RunCommand acCmdZoom100
            Else
                DoCmd.OpenReport "r_etat", acViewPreview, , "[dateComiteEncadrement] = " & " [Forms]![frm_liste_service_impacte]![lst_date]" & " AND ([r_Service_Impacte_nom_Service] IN " & " ([Forms]![frm_liste_service_impacte]![lst_serviceI],'Tous services'))", acNormal
                DoCmd.RunCommand acCmdZoom100
            End If
        End If
    End If
 
btn_impression_Click_Exit:
    Exit Sub
 
Err_btn_impression_Click:
    MsgBox Err.Description
    Resume btn_impression_Click_Exit
End Sub
merci beaucoup
cindy6311 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 14h31   #2
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 411
Points : 14 411
Envoyer un message via Skype™ à Pierre Fauconnier
Bonjour.

Je suppose que si tu as trois services impactés, tu as trois lignes dans une source de données.

Pourquoi, dès lors, ne pas ajouter un groupe dans ton état sur l'action? De ce fait, tu auras un entête de groupe où placer les données de l'action, puis trois lignes dans la zone détails pour reprendre les services impactés.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 14h47   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 47
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 47
Points : 10
Points : 10
Je viens de tester, c'est une solution.
Je supprimerais mon sous état et metterais à la place le champ de mon service impacté.

Le soucis, c'est que je souhaiterais dans mon état les avoir de la manière suivante :

Service Impacté Pilote
Service 1 Pilote 1
Service 2
Service 3

En ce qui concerne les pilotes, je garde mon sous formulaire. Cependant, j'avais mis un saut de page sur la zone détail pour n'avoir sur une page qu'une action. J'ai supprimé ce saut et je l'ai mis sur le pied de page de mon groupe. En faisant comme tu me l'as conseillé, pour chaque service impacté j'ai mon sous état qui s'affiche avec le nom de mon pilote alors que je ne le voudrais qu'une seule fois.
Voila comment mon résultat s'affiche :

Service impacté Pilote
Service 1 Pilote 1

Service impacté Pilote
Service 2 Pilote 1

J'avais testé ainsi et c'était le problème que j'avais eu.

Est ce que je suis suffisament claire ?
cindy6311 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 15h41   #4
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 411
Points : 14 411
Envoyer un message via Skype™ à Pierre Fauconnier
Ajoute un sous-groupe sur le pilote...

Action
----Pilote
--------Service 1
--------Service 2
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h53.


 
 
 
 
Partenaires

Hébergement Web