Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 03/06/2011, 09h22   #1
Membre du Club
 
Inscription : août 2004
Messages : 386
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 386
Points : 68
Points : 68
Par défaut Choisir les colonnes (champs) d'un état avant son affichage

Bonjour

j'ai fait un form de recherche qui m'affiche un état en fonction des critères choisis. ça fonctionne bien.

Ma question concerne l' état . Cet état comporte 5 champs donc 5 colonnes .

Tout est ok mais bien sur mon état m'affiche toujours ces 5 colonnes ce qui est normal

ce que jaimerai c est pouvoir choisir par ex avec des cases à cocher les colonnes de mon état.

Ex) dans mon form de recherche , j aurai 5 cases à cocher (nom, entreprise, mail, tél, contact) et si je coche telle ou telle case, mon état aura telle ou telle colonne.

Vous voyez l idée.

Voilà si vous avez une piste ça m intéresse .

merci à tous.

stephi
Stéph utilisateur d'acces est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2011, 21h29   #2
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
tu peux comminiquer entre le formulaire et l'état par le biais des openargs
à l'appel de l'état tu précise dans un texte les noms des champs
à l'ouverture de l'état, tu examine la variable openargs et en fonction tu agis

plus de renseignements si tu ne maîtrise pas le VB
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/06/2011, 16h26   #3
Membre du Club
 
Inscription : août 2004
Messages : 386
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 386
Points : 68
Points : 68
salut Simplifi

Non je ne suis pas un top du vba.

j ai donc un bouton qui m'ouvre mon état à partir de mon form.

comment tu mettrais en pratique cette méthode openarg pour déterminer les champs à choisir.?

merci si tu peux me donner un coup de main la dessus.

stephi
Stéph utilisateur d'acces est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 17h16   #4
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
à la place de la macro placée sous le bouton pour ouvrir l'état, je place plutôt un évènement sur clic comme ceci:
Code :
1
2
3
4
5
6
7
8
9
10
11
Private Sub Imprim_devis_Click()
Dim Texte As String
Texte = ""
If YN_nom Then Texte = "nom "
If YN_entreprise Then Texte = Texte & "entreprise "
If YN_mail Then Texte = Texte & "mail "
If YN_tél Then Texte = Texte & "tél "
If YN_Contact Then Texte = Texte & "Contact "
 
DoCmd.OpenReport "Devis", acViewPreview, , , , Texte 
End Sub
avec YN_nom pour le nom de la case à cocher nom etc
les cinq if sont juste là pour fabriquer le texte que je passe en argument

et dans l'état un petit évènement à l'ouverture
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Report_Open(Cancel As Integer)
If OpenArgs Like "nom*" Then
    NOM_Étiquette.Visible = True
    NOM.Visible = True
End If
If OpenArgs Like "*entreprise*" Then
    entreprise_Étiquette.Visible = True
    entreprise.Visible = True
End If
If OpenArgs Like "*mail*" Then
    mail_Étiquette.Visible = True
    mail.Visible = True
End If
If OpenArgs Like "*tél*" Then
    tél_Étiquette.Visible = True
    tél.Visible = True
End If
If OpenArgs Like "*contact" Then
    Contact_Étiquette.Visible = True
    Contact.Visible = True
End If
End Sub
en prenant soin de rendre les boites et étiquette non visibles lors de la création de l'état
NB on peut aussi faire le contraire ou utiliser
Code :
1
2
3
4
5
6
7
8
If OpenArgs Like "nom*" Then
    NOM_Étiquette.Visible = True
    NOM.Visible = True
Else
    NOM_Étiquette.Visible = False
    NOM.Visible = False
End If
etc....
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 19h12   #5
Membre du Club
 
Inscription : août 2004
Messages : 386
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 386
Points : 68
Points : 68
Merci de ta réponse.c est exactement ce que je veux

donc si je résume, je dois créer 5 cases à cocher dans mon cas qui auront pour nom YN_nom, etc selon mes champs .

il faut donc dans mon état avoir des étiquettes et champs qui correspondent bien sur

mais que veut tu dire par "prenant soin de rendre les boites et étiquette non visibles lors de la création de l'état"?

stephi
Stéph utilisateur d'acces est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 00h25   #6
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
si YN_entreprise est vrai, alors je rends la zone visible, mais si elle l'étais déjà, rien n'est changé, c'est pour ça que j'enregistre le rapport avec les zones invisibles
Un gros inconvénient de cette méthode, c'est que si j"ouvre l'état sans ce bouton, alors tout est invisible

finalement mieux vaut peut être choisr la méthode avec le else dont je n'ai écrit que le premier paragraphe

PS c'est toi qui veut avoir des cases à cocher
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 08h56   #7
Membre du Club
 
Inscription : août 2004
Messages : 386
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 386
Points : 68
Points : 68
ok Simplifi

les cases à cocher me semblent pas mal pour que l"utilsateur choisisse les colonnes de son état.

Je teste ton code et je reviens après.

merci de ton aide.

stephi
Stéph utilisateur d'acces est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 17h24   #8
Membre du Club
 
Inscription : août 2004
Messages : 386
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 386
Points : 68
Points : 68
Bon Simplifi

j ai erreur 13, incompatibilité de typr quand je clique sur le bouton du form

pour simplifier j ai mis seulement 2 cases à cocher YN_nom et YN_entreprise

et sur le bouton:

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
30
31
32
33
34
35
36
37
38
39
Private Sub cmdImprimer_Click()
 
Dim Texte As String
Texte = ""
If YN_nom Then Texte = "nom"
If YN_entreprise Then Texte = Texte & "entreprise "
 
 
 
'   Constitution du titre de l'état
p_strTitre = ""
If cboDomaine <> "" Then
   p_strTitre = p_strTitre & " - Classe : " & cboDomaine.Column(1)
End If
If cboOrganisme <> "" Then
   p_strTitre = p_strTitre & " - Stage : " & cboOrganisme.Column(1)
End If
If cboEmploye <> "" Then
   p_strTitre = p_strTitre & " - Nom élève : " & cboEmploye.Column(1)
End If
 
'   Critères sur les dates
If cboOperat1 <> "" And txtDateDeb <> "" Then
   p_strTitre = p_strTitre & " - Date de début " & cboOperat1 _
           & " " & txtDateDeb
End If
If cboOperat2 <> "" And txtDateFin <> "" Then
   p_strTitre = p_strTitre & " - Date de fin " & cboOperat1 _
           & " " & txtDateDeb
End If
If p_strTitre <> "" Then
   p_strTitre = Right(p_strTitre, Len(p_strTitre) - 3)
End If
 
'   Ouverture de l'état avec les mêmes critères
'   que ceux de la recherche
DoCmd.OpenReport "Formations", acViewPreview, , , Texte
 
End Sub
voilà il me met en jaune DoCmd.Openreport...

peut être à cause du reste du code

et sur mon état à l ouverture:

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
Private Sub Report_Open(Cancel As Integer)
 
'   Titre déterminé en fonction des critères fr sélection
txtCriteres.Caption = p_strTitre
 
'   Modifie la source de données si un employé a été sélectionné
If p_lngEmp <> 0 Then
   Me.RecordSource = "SELECT FORMATIONS.*, PARTICIPANTS.PART_IDEMP, EMPLOYES.EMP_NOM FROM FORMATIONS INNER JOIN (EMPLOYES INNER JOIN PARTICIPANTS ON EMPLOYES.EMP_IDEMP = PARTICIPANTS.PART_IDEMP) ON FORMATIONS.FOR_IDFORM = PARTICIPANTS.PART_IDFORM "
 
 
Else
   Me.RecordSource = "SELECT FORMATIONS.*, PARTICIPANTS.PART_IDEMP, EMPLOYES.EMP_NOM FROM FORMATIONS INNER JOIN (EMPLOYES INNER JOIN PARTICIPANTS ON EMPLOYES.EMP_IDEMP = PARTICIPANTS.PART_IDEMP) ON FORMATIONS.FOR_IDFORM = PARTICIPANTS.PART_IDFORM "
End If
'   Critères de sélection
Me.FilterOn = True
Me.Filter = p_strCond
 
If OpenArgs Like "nom*" Then
    NOM_Étiquette.Visible = True
    EMP_NOM.Visible = True
End If
If OpenArgs Like "*entreprise*" Then
    FOR_IDORGA_Étiquette.Visible = True
    FOR_IDORGA.Visible = True
End If
 
 
End Sub
voilà qu en pense tu?

merci

stephi
Stéph utilisateur d'acces est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 22h07   #9
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
il manque une virgule
Code :
DoCmd.OpenReport "Formations", acViewPreview, , , ,Texte
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 16h32   #10
Membre du Club
 
Inscription : août 2004
Messages : 386
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 386
Points : 68
Points : 68
salut Simplifi

En effet ça fonctionne maintenant.

une petite question, serait t il possible que si par ex ma premiere colonne est masquée, celle qui suit prenne sa place.

pour éviter de voir un trou dans l' état.

mais c est peut être un peu compliqué à faire

en tout cas très sympa

stephi
Stéph utilisateur d'acces est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 00h25   #11
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
il suffit d'avoir des boites B1, b2....
et de leur affecter une control.source
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 10h10   #12
Membre du Club
 
Inscription : août 2004
Messages : 386
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 386
Points : 68
Points : 68
Salut Simplifi

Comment adapter ça au code que tu m"as donné?

peux tu m expliquer un peu plus et ce que je dois modifier dans mon état.?

merci si tas encore le temps de m aider car tu as déja fait beaucoup.

stephi
Stéph utilisateur d'acces 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 18h26.


 
 
 
 
Partenaires

Hébergement Web