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 :

Formulaire avec liste déroulante pour ouvrir un état [AC-2016]


Sujet :

IHM

  1. #1
    Membre à l'essai Avatar de chobra2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Points : 17
    Points
    17
    Par défaut Formulaire avec liste déroulante pour ouvrir un état
    Bonjour,
    J'ai incéré dans ma Rqt [Forms]![mon_formulaire]![zone_recherche] pour afficher un état après la sélection dans la liste déroulante le type de produit.
    Mais l'état s'affiche avec 0 résultat
    Merci pour l'aide
    Images attachées Images attachées  

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    983
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 983
    Points : 1 030
    Points
    1 030
    Billets dans le blog
    36
    Par défaut
    Bonjour chobra2000,

    Des valeurs sont-elles bien chargées dans ta liste déroulante?

    Si c'est le cas, Le mieux c'est d'appeler ton rapport est sur l'événement Change de ta liste déroulante avec comme critère dans l'appel de ton rapport, l'identifiant de la ligne courante dans la liste déroulante

    On obtient alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub lstMaListe_Change()
     
    On Error Resume Next '----> Pour éviter le mode debug car si monRapport n'est pas ouvert la ligne suivante provoquera une erreur 
    DoCmd.Close acReport, "monRapport"
     
    DoCmd.OpenReport "monRapport", acViewPreview, , "monChampsCritere = " & Me.lstMaListe.Value 
     
    End Sub
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  3. #3
    Membre à l'essai Avatar de chobra2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Salut informer,

    J'ai testé le code mais le résultat est toujours 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub RechType_Change()
    '---->Nom de l'Etat TypePrestataire
    '---->Variable liste déroulante RechType
    '---->Champs critère TypeFournisseur
    On Error Resume Next
    DoCmd.Close acReport, "TypePrestataire"
    DoCmd.OpenReport "TypePrestataire", acViewPreview, , "TypeFournisseur = " & Me.RechType.Value
     
    End Sub
    Merci et bonne journée

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    983
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 983
    Points : 1 030
    Points
    1 030
    Billets dans le blog
    36
    Par défaut
    Quelle est la source de ton rapport :
    • Table
    • Requête


    Dans mon exemple c'est une requête stockée
    Nom : rptSource.jpg
Affichages : 247
Taille : 81,2 Ko

    ATTENTION

    Si TypeFournisseur est de type STRING alors il faut entourer Me.RechType.Value de simple quote comme pour toute requête SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TypeFournisseur = '" & Me.RechType.Value & "' "
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  5. #5
    Membre à l'essai Avatar de chobra2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    La source de l'état est une Requête stockée.
    TypeFournisseur n'est de type STRING

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    983
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 983
    Points : 1 030
    Points
    1 030
    Billets dans le blog
    36
    Par défaut
    Peux tu donner au moins un enregistrement quand tu lances la requête associée au rapport sans le filtrage (champs + valeurs) ?

    Peux-tu mettre un point d'arrêt sur la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DoCmd.OpenReport "TypePrestataire", acViewPreview, , "TypeFournisseur = " & Me.RechType.Value
    pour connaitre la valeur de Me.RechType.Value
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  7. #7
    Membre à l'essai Avatar de chobra2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Voici le contenu de la requête avec le nom des champs
    [B]Type Fournisseur NomFournisseur totalligne Client
    Jouvial Swapnatheeram 350 Annie
    Hotel Inde Spencer's home 180 Annie
    Jouvial Deshadan Montain Resort 260 Annie
    Jouvial Backwater Farm House 200 Annie
    Hotel Inde Spencer's home 400 Nameste
    Hotel Népal Sunil Bus 142 Karine
    Hotel Népal Apsara Boutiq Hotel 156 Sylvie
    Hotel Népal End of Univers 530 Sylvie


    Peux-tu mettre un point d'arrêt sur la commande, Je ne comprends pas ta demande?


    pour connaitre la valeur de Me.RechType.Value, c'est Type Fournisseur (voir 1er colonne)

  8. #8
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour. Si la table TypePrestataire a une ID NuméroAuto alors c'est à ce niveau que vous devez placer le critère de la requête.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  9. #9
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 270
    Points : 6 578
    Points
    6 578
    Par défaut
    Salut,
    Si je puis interférer
    Créer un module dans ta bdd avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Compare Database
    Option Explicit
    Function EstChargé(ByVal strNomForm As String) As Boolean
        Const conÉtatObjFermé = 0
        Const conModeCréation = 0
        If SysCmd(acSysCmdGetObjectState, acForm, strNomForm) <> conÉtatObjFermé Then
            If Forms(strNomForm).CurrentView <> conModeCréation Then
                EstChargé = True
            End If
        End If
    End Function
    Dans l'état concerné, insérer le code suivant :
    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
    Option Compare Database
    Option Explicit
    Public blnOuverture As Boolean
    Private Sub Report_Close()
        Dim strNomDoc As String
        strNomDoc = "Etat TypePrestataire" '<-- nom du formulaire d'appel ouverture de ton état
        DoCmd.CLOSE acForm, strNomDoc
    End Sub
    Private Sub Report_NoData(Cancel As Integer)
        Dim strMsg As String, strTitre As String
        Dim intStyle As Integer
        strMsg = "Pas de résultat avec les citères requis."
        intStyle = vbOKOnly
        strTitre = "Pas de données pour cette plage de valeurs"
        MsgBox strMsg, intStyle, strTitre
        Cancel = True
    End Sub
    Private Sub Report_Open(Cancel As Integer)
        Dim strNomDoc As String
        strNomDoc = "Etat TypePrestataire" '<-- nom du formulaire d'appel ouverture de ton état
        blnOuverture = True
        DoCmd.OpenForm strNomDoc, , , , , acDialog
        If EstChargé(strNomDoc) = False Then Cancel = True
        blnOuverture = False
    End Sub
    Dans le formulaire concerné :
    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
    Private Sub OK_Click()
    On Error GoTo Err_OK_Click
        Dim strMsg As String, strTitre As String
        Dim intStyle As Integer
        If Not Reports![Nom de l'état à ouvrir].blnOuverture Then err.Raise 0
        Me.Visible = False
    Quitte_OK_Click:
        Exit Sub
    Err_OK_Click:
        strMsg = "Pour utiliser ce formulaire, vous devez ouvrir l'état Nom de l'état à ouvrir."
        intStyle = vbOKOnly
        strTitre = "Ouverture à partir de l'état"
        MsgBox strMsg, intStyle, strTitre
        Resume Quitte_OK_Click
    End Sub
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  10. #10
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    En réalité si l'état n'affiche rien çà veut dire que la Requête ne lui fournit rien. Il faut donc d'abord voir le problème au niveau de la requête. Est-ce qu'elle produit le résultat lorsqu'on l'exécute hors de l'état? est-ce qu'elle voit la valeur du critère?
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  11. #11
    Membre à l'essai Avatar de chobra2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Bonjour hyperion13 !
    Merci pour votre réponse!
    J'ai bien compris qu'il faut placer le 2e code dans l'état et le 3e code dans le formulaire, mais le premier ou dois-je le incérer!

    Salut bertiny,
    La requête fonctionne bien et donne un résultat exacte des enregistrements.
    J'ai ajouté IDTypePrestataire dans la requête, et dans critères ([Formulaires]![Etat_TypePrestataire]![RechType])
    Est ça marche
    Merci

  12. #12
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 270
    Points : 6 578
    Points
    6 578
    Par défaut
    Citation Envoyé par chobra2000 Voir le message
    ... mais le premier ou dois-je le incérer!
    Dans la fenêtre vba Alt F11 et créer un Module
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  13. #13
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Alors tu vas faire une chose simple pour voir si tout va bien. Etant sur le menu créer, tu cliques sur la requête puis tu cliques sur Etat, juste pour voir ce qui se passe.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  14. #14
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    983
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 983
    Points : 1 030
    Points
    1 030
    Billets dans le blog
    36
    Par défaut
    Ta requête te renvoie

    Type Fournisseur NomFournisseur totalligne Client
    Jouvial Swapnatheeram 350 Annie
    Hotel Inde Spencer's home 180 Annie
    Peux tu mettre une virgule après chaque valeur de chaque colonne car pour l'enregistrement suivant je n'identifie pas le type.

    Type Fournisseur NomFournisseur totalligne Client
    Jouvial Swapnatheeram 350 Annie

    D'autre part, existe-il une table typePrestataire dans ta base. Si oui donne nous sa structure.
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  15. #15
    Membre à l'essai Avatar de chobra2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par informer Voir le message
    Ta requête te renvoie



    Peux tu mettre une virgule après chaque valeur de chaque colonne car pour l'enregistrement suivant je n'identifie pas le type.


    D'autre part, existe-il une table typePrestataire dans ta base. Si oui donne nous sa structure.
    Voici le résultat de la Rqt avec virgule après chaque colonne
    Type Fournisseur, NomFournisseur, totalligne, Client
    Jouvial, Swapnatheeram, 350, Annie

    Table typePrestataire
    IDTypePrestataire, NuméroAuto,,,,,,Clé Primaire
    Type Fournisseur, Texte court

  16. #16
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    983
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 983
    Points : 1 030
    Points
    1 030
    Billets dans le blog
    36
    Par défaut
    A l'appel du rapport tu as écrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "TypePrestataire", acViewPreview, , "TypeFournisseur = " & Me.RechType.Value
    Mais si le critère est bien sur TypeFournisseur alors il faut écrire le même libellé que celui de la table qui est Type Fournisseur. Comme il y a un espace, il faut mettre entre crochets et comme c'est du Texte court, le critère doit être en simple quote d’où le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "TypePrestataire", acViewPreview, , "[Type Fournisseur] = '" & Me.RechType.Value & "' "
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  17. #17
    Membre à l'essai Avatar de chobra2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Points : 17
    Points
    17
    Par défaut Merci
    Merci pour vos réponses j'ai trouvé la solution grâce à vos commentaire et code!!

  18. #18
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    983
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 983
    Points : 1 030
    Points
    1 030
    Billets dans le blog
    36
    Par défaut
    Merci de cliquer sur un pouce vert pour les réponses qui t’ont aidé
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  19. #19
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    983
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 983
    Points : 1 030
    Points
    1 030
    Billets dans le blog
    36
    Par défaut
    Chobra2000, merci de nous faire partager ta solution.
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  20. #20
    Membre à l'essai Avatar de chobra2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par informer Voir le message
    Merci de cliquer sur un pouce vert pour les réponses qui t’ont aidé
    Bonjour,
    J’ai juste ajouté dans la requête un champs ID (IDTypePrestataire), et un critère ''[Formulaires]![Etat_TypeProduit]![RTypeProd]''
    Et un bouton avec code Marco d'ouvrir l'état
    C'est tout simple finalement
    Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/09/2007, 13h33
  2. Lenteur de formulaires avec listes déroulantes
    Par olese dans le forum InfoPath
    Réponses: 1
    Dernier message: 27/08/2007, 08h25
  3. formulaire avec liste déroulante
    Par catmor dans le forum Modélisation
    Réponses: 1
    Dernier message: 21/06/2007, 19h18
  4. Recherche formulaire avec liste déroulante
    Par kimar dans le forum Access
    Réponses: 2
    Dernier message: 28/07/2006, 12h02
  5. Pb Formulaire avec liste déroulante
    Par Rouanou dans le forum IHM
    Réponses: 12
    Dernier message: 23/11/2005, 16h51

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