IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Choisir les colonnes (champs) d'un état avant son affichage


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    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

  2. #2
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    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

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut
    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

  4. #4
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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....

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut
    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

  6. #6
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    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

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut
    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

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut
    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 : 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
    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 : 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
    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

  9. #9
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    il manque une virgule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "Formations", acViewPreview, , , ,Texte

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut
    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

  11. #11
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    Hello
    il suffit d'avoir des boites B1, b2....
    et de leur affecter une control.source

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut
    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

Discussions similaires

  1. [AC-2010] Choisir les colonnes à imprimer dans un etat
    Par Alialyn dans le forum IHM
    Réponses: 2
    Dernier message: 04/10/2011, 04h13
  2. Réponses: 1
    Dernier message: 27/04/2010, 11h15
  3. Comment choisir les colonnes d'un fichier à charger?
    Par Monfy29 dans le forum SQL*Loader
    Réponses: 2
    Dernier message: 04/08/2008, 11h58
  4. Réponses: 4
    Dernier message: 14/02/2008, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo