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 :

Ouverture formulaire sur critères et sous conditions [AC-2016]


Sujet :

IHM

  1. #1
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut Ouverture formulaire sur critères et sous conditions
    Bonjour,

    Je reviens sur une problématique d'ouverture de mon formulaire.
    Je vais essayer d' être le plus explicite possible.
    C'est le même formulaire qui sert à faire une création ou le suivi et c'est son état à l'ouverture qui détermine l'un ou l'autre.

    Ci-dessous le formulaire en mode création d'enregistrement

    Nom : f-demande.JPG
Affichages : 109
Taille : 89,6 Ko

    avec son code

    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 Étiq_Demande_de_carte_Click() ' ouverture formulaire en mode: Demande de carte affaire
        DoCmd.OpenForm "F_demande_de_carte"
        ' passe le formulaire en saisie de données
            [Forms]![F_demande_de_carte].DataEntry = True
        ' masquer les champs non nécessaire à ce formulaire
            [Forms]![F_demande_de_carte].Étiq_titre_suivi_demande_CAF.Visible = False
            [Forms]![F_demande_de_carte].but_recherche.Visible = False
            [Forms]![F_demande_de_carte].but_premier.Visible = False
            [Forms]![F_demande_de_carte].but_precedent.Visible = False
            [Forms]![F_demande_de_carte].but_suivant.Visible = False
            [Forms]![F_demande_de_carte].but_dernier.Visible = False
            [Forms]![F_demande_de_carte].but_cloture_fiche.Visible = False
            [Forms]![F_demande_de_carte].etiq_cloture.Visible = False
     
    End Sub
    Et ci-dessous le formulaire en mode suivi avec pour critère les demandes non closes et non annulées.
    Nom : f-suivi-demande.JPG
Affichages : 100
Taille : 105,4 Ko

    Avec son code

    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
    Private Sub Étiq_suivi_demande_carte_Click() ' ouverture formulaire en mode: Suivi de demande de carte affaire
        'teste si il y a bien des enregistrement avant ouverture
        If DCount("*", "T_demande", "id_statut_demande < " & 5) = 0 Then
        MsgBox "Il n'y a pas de dossier en cours"
        Else
        DoCmd.OpenForm "F_demande_de_carte", acNormal, , WhereCondition:="[id_statut_demande] < 5", DataMode:=acFormEdit
        ' passe le formulaire en modification de donnée et ne permet pas de faire de nouvelles saisies
            [Forms]![F_demande_de_carte].AllowAdditions = False
        'positionne le curseur dans le champs Nom. ATTENTION, toujours positionner le curseur avant de masquer des champs
            [Forms]![F_demande_de_carte].txt_nom_effectif.SetFocus
        ' masquer les champs non nécessaire à ce formulaire
            [Forms]![F_demande_de_carte].Étiq_titre_demande_CAF.Visible = False
            [Forms]![F_demande_de_carte].Etiq_rechercher_par_le_nom.Visible = False
            [Forms]![F_demande_de_carte].lst_r_selection_nom_F_demande_de_carte.Visible = False
            [Forms]![F_demande_de_carte].but_test_folder.Visible = False
            [Forms]![F_demande_de_carte].etiq_folder.Visible = False
     
        ' Affiche les champs nécessaire à ce formulaire
            [Forms]![F_demande_de_carte].Étiq_titre_suivi_demande_CAF.Visible = True
            [Forms]![F_demande_de_carte].but_recherche.Visible = True
            [Forms]![F_demande_de_carte].but_premier.Visible = True
            [Forms]![F_demande_de_carte].but_precedent.Visible = True
            [Forms]![F_demande_de_carte].but_suivant.Visible = True
            [Forms]![F_demande_de_carte].but_dernier.Visible = True
            [Forms]![F_demande_de_carte].but_cloture_fiche.Visible = True
     
        End If
     
    End Sub
    Ma problématique demandée par les utilisateurs (tests en cours) est qu'à l'ouverture du formulaire en mode "suivi de demande" on ai pas accès à la totalité des enregistrements en cours mais que l'on ne puisse afficher que celui demandé dans une recherche par nom.
    Est-ce possible?
    Si oui comment puis-je afficher une fenêtre de recherche sur le champ nom ?

    Je vous remercie et vous souhaite une bonne journée

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    L'idée est d'ajouter une étapes intermédiaire de filtrage.

    Tu as différente stratégies pour faire cela :
    • Crée un formulaire ou utiliser un formulaire existant pour que l'utilisateur saisisse le nom (attention aux homonymes) puis ouvrir le formulaire en filtrant.
      Je te conseille, si tu peux, d'utiliser une liste déroulante à 2 colonnes : ClefClient, NomClient et de masquer la clef => Saisie confortable pour l'utilisateur et sécuritaire pour toi, avec la clef aucune ambiguité.

      Un truc du genre :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      call docmd.openForm("nomTonForm", , , "nomClient=""" & me.NomClient & """")
      ou plus sûr si tu as retenu la solution de la liste déroulante :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      call docmd.openForm("nomTonForm", , , "clefClient=""" & me.cmbClient & """")
      Access ne va afficher que les données correspondant au critère.
      Attention les utilisateurs peuvent "défiltrer" tes données et ainsi accéder à tout.
      Me. désigne le formulaire où s'exécute le code.
    • Supprimer l'information sur la source de données du formulaire de saisie et ne la rétablir que par code.
      Là encore il te faut un champ pour que l'utilisateur entre le nom voulu.
      Après, sur Après MAJ de ce champ tu mets quelque chose comme :

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      me.RecordSource="select taSource.* from taSource where taSource.ClefClient = " & me.cmbClient
      C'est plus lourd un peu, mais là tes utilisateurs ne voient que ce qu'ils ont sélectionné et ne peuvent pas "défiltrer" pour avoir accès à tout.
      Attention à l'ouverture tes utilisateurs, tant qu'ils n'ont pas fait de choix, ne voient qu'un formulaire "vierge" ce qui peut être un déroutant.


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Bonjour marot_r

    merci pour vos lumières, je vais tester la première partie de votre proposition et dans ce cas retirer les boutons de navigation.

    Pensez-vous que je peux aussi bloquer certains champs afin qu'ils ne soient pas modifiables?

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Oui très facilement.

    Un machin du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if une condition then
        me.TonChamp.Locked = True
     else
        me.TonChamp.Locked = false
    end if
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    parfait avec tous mes remerciements et un Excellent week-end à tous

  6. #6
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Bonjour à tous,

    J'ai été un peu promt à la fermeture

    Je n'arrive pas à trouver la bonne syntaxe et du coup mon formulaire s'ouvre vide

    J'ai créé un petit formulaire (F_Suivi_demande_de_carte) avec une liste déroulante (ci-dessous)
    ma clé de recherche est le matricule de l'agent (unique) qui est en colonne 2 dans la liste,
    et doit trouver sa correspondance dans le champs "txt_matricule_effectif" dans mon formulaire "F_demande_de_carte"

    Nom : suiviD.JPG
Affichages : 86
Taille : 70,7 Ko

    et du coup j'ai fais le code ci-dessous:

    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 but_lancer_Click()
    Call DoCmd.OpenForm("F_demande_de_carte", , , "txt_matricule_effectif=""" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """")
        ' passe le formulaire en modification de donnée et ne permet pas de faire de nouvelles saisies
            [Forms]![F_demande_de_carte].AllowAdditions = False
        'positionne le curseur dans le champs Nom. ATTENTION, toujours positionner le curseur avant de masquer des champs
           ' [Forms]![F_demande_de_carte].txt_nom_effectif.SetFocus
        ' masquer les champs non nécessaire à ce formulaire
            [Forms]![F_demande_de_carte].Étiq_titre_demande_CAF.Visible = False
            [Forms]![F_demande_de_carte].Etiq_rechercher_par_le_nom.Visible = False
            [Forms]![F_demande_de_carte].lst_r_selection_nom_F_demande_de_carte.Visible = False
            [Forms]![F_demande_de_carte].but_test_folder.Visible = False
            [Forms]![F_demande_de_carte].etiq_folder.Visible = False
     
        ' Affiche les champs nécessaire à ce formulaire
            [Forms]![F_demande_de_carte].Étiq_titre_suivi_demande_CAF.Visible = True
            [Forms]![F_demande_de_carte].but_recherche.Visible = True
            [Forms]![F_demande_de_carte].but_premier.Visible = True
            [Forms]![F_demande_de_carte].but_precedent.Visible = True
            [Forms]![F_demande_de_carte].but_suivant.Visible = True
            [Forms]![F_demande_de_carte].but_dernier.Visible = True
            [Forms]![F_demande_de_carte].but_cloture_fiche.Visible = True
    End Sub
    Je vous remercie à nouveau pour votre aide.

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Commence par valider que le problème est bien le filtre en enlevant le critère "txt_matricule_effectif=""" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """".

    Si ton formulaire affiche bien des données, alors remet le filtre en place et vérifie que Access voit bien ce que tu penses qu'il voit.
    Tu peux mettre :

    msgbox "txt_matricule_effectif=""" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """" avant de DoCmd.OpenForm() ou simplement un point d'arrêt sur la ligne pour valider tes morceaux.

    Si c'est OK, vérifie dans ta source, as-tu bien des données qui correspondent au critère ? Ça a l'air niaiseux mais cela arrive plus souvent qu'on ne le pense.

    Si oui, alors neutralise les autres instructions qui manipulent ton formulaire après son ouverture. En théorie elles ne devraient avoir aucune influence mais comme tu as un bug, il ne faut négliger aucune piste.

    Si tu as enfin tes données, rétabli une à une tes instructions puis teste. Tu devrais trouver celle qui pose un problème

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  8. #8
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Bonjour,

    merci marot_r

    la msgbox ma permise d'affiner le critère car en mettant le code ci-dessous la box m'affichait (txt_matricule_effectif=""GL000000"") et donc incompatible avec la correspondance du champs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox "txt_matricule_effectif=""" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """"
    En réduisant le code à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & ""
    Jai bien la valeur recherchée
    Nom : Capture.JPG
Affichages : 81
Taille : 11,8 Ko

    Mais en corrigeant la ligne ci-dessous, mon formulaire est toujours vide malgré la neutralisation des autres lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call DoCmd.OpenForm("F_demande_de_carte", , , txt_matricule_effectif = "" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & "")
    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
    Private Sub but_lancer_Click()
    MsgBox "" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & ""
    Call DoCmd.OpenForm("F_demande_de_carte", , , txt_matricule_effectif = "" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & "")
        ' passe le formulaire en modification de donnée et ne permet pas de faire de nouvelles saisies
            [Forms]![F_demande_de_carte].AllowAdditions = False
        'positionne le curseur dans le champs Nom. ATTENTION, toujours positionner le curseur avant de masquer des champs
           ' [Forms]![F_demande_de_carte].txt_nom_effectif.SetFocus
        ' masquer les champs non nécessaire à ce formulaire
            '[Forms]![F_demande_de_carte].Étiq_titre_demande_CAF.Visible = False
            '[Forms]![F_demande_de_carte].Etiq_rechercher_par_le_nom.Visible = False
            '[Forms]![F_demande_de_carte].lst_r_selection_nom_F_demande_de_carte.Visible = False
            '[Forms]![F_demande_de_carte].but_test_folder.Visible = False
            '[Forms]![F_demande_de_carte].etiq_folder.Visible = False
     
        ' Affiche les champs nécessaire à ce formulaire
            '[Forms]![F_demande_de_carte].Étiq_titre_suivi_demande_CAF.Visible = True
            '[Forms]![F_demande_de_carte].but_recherche.Visible = True
            '[Forms]![F_demande_de_carte].but_premier.Visible = True
            '[Forms]![F_demande_de_carte].but_precedent.Visible = True
            '[Forms]![F_demande_de_carte].but_suivant.Visible = True
            '[Forms]![F_demande_de_carte].but_dernier.Visible = True
            '[Forms]![F_demande_de_carte].but_cloture_fiche.Visible = True
    End Sub
    Et je penses que c'est la que le bas blesse la syntaxe coince mais mes compétences me bloquent
    Nom : Capture1.JPG
Affichages : 81
Taille : 20,4 Ko

    encore merci pour votre aide

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    En effet et désolé de ne pas l'avoir remarqué.

    Voici la correction selon moi. C'est une erreur classique quand on commence ce genre de chose.
    On ne sait pas exactement où mettre les guillemets et comme la syntaxe est correcte Access ne signale pas d'erreur.
    Là il faut que le nom du champ dans le formulaire soit dans la chaîne qui défini le filtre.
    J'ai supposé que le champ s'appelle bien [txt_matricule_effectif] dans ton formulaire [F_demande_de_carte].

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call DoCmd.OpenForm("F_demande_de_carte", , , "txt_matricule_effectif=""" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """")
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  10. #10
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Merci marot_r,

    Arg, il n'en veut pas

    code modifié et toujours un formulaire vide, j'ai laissé la msgbox qui m'affiche bien le matricule mais rien

    Nom : Capture.JPG
Affichages : 80
Taille : 37,8 Ko


    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
    Private Sub but_lancer_Click()
    MsgBox "" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & ""
    Call DoCmd.OpenForm("F_demande_de_carte", , , "txt_matricule_effectif=""" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """")
        ' passe le formulaire en modification de donnée et ne permet pas de faire de nouvelles saisies
            [Forms]![F_demande_de_carte].AllowAdditions = False
        'positionne le curseur dans le champs Nom. ATTENTION, toujours positionner le curseur avant de masquer des champs
           ' [Forms]![F_demande_de_carte].txt_nom_effectif.SetFocus
        ' masquer les champs non nécessaire à ce formulaire
            '[Forms]![F_demande_de_carte].Étiq_titre_demande_CAF.Visible = False
            '[Forms]![F_demande_de_carte].Etiq_rechercher_par_le_nom.Visible = False
            '[Forms]![F_demande_de_carte].lst_r_selection_nom_F_demande_de_carte.Visible = False
            '[Forms]![F_demande_de_carte].but_test_folder.Visible = False
            '[Forms]![F_demande_de_carte].etiq_folder.Visible = False
     
        ' Affiche les champs nécessaire à ce formulaire
            '[Forms]![F_demande_de_carte].Étiq_titre_suivi_demande_CAF.Visible = True
            '[Forms]![F_demande_de_carte].but_recherche.Visible = True
            '[Forms]![F_demande_de_carte].but_premier.Visible = True
            '[Forms]![F_demande_de_carte].but_precedent.Visible = True
            '[Forms]![F_demande_de_carte].but_suivant.Visible = True
            '[Forms]![F_demande_de_carte].but_dernier.Visible = True
            '[Forms]![F_demande_de_carte].but_cloture_fiche.Visible = True
    End Sub

  11. #11
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    As-tu testé avec aucun filtre ? Il y a des données ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  12. #12
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    oui,

    Avant que l'on me demande de modifier l'accès au formulaire je l'ouvrais avec ce code, qui fonctionne encore d'ailleurs.

    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
    Private Sub Étiq_suivi_demande_carte_Click() ' ouverture formulaire en mode: Suivi de demande de carte affaire
        'teste si il y a bien des enregistrement avant ouverture
        If DCount("*", "T_demande", "id_statut_demande < " & 5) = 0 Then
        MsgBox "Il n'y a pas de dossier en cours"
        Else
        DoCmd.OpenForm "F_demande_de_carte", acNormal, , WhereCondition:="[id_statut_demande] < 5", DataMode:=acFormEdit
        ' passe le formulaire en modification de donnée et ne permet pas de faire de nouvelles saisies
            [Forms]![F_demande_de_carte].AllowAdditions = False
        'positionne le curseur dans le champs Nom. ATTENTION, toujours positionner le curseur avant de masquer des champs
            [Forms]![F_demande_de_carte].txt_nom_effectif.SetFocus
        ' masquer les champs non nécessaire à ce formulaire
            [Forms]![F_demande_de_carte].Étiq_titre_demande_CAF.Visible = False
            [Forms]![F_demande_de_carte].Etiq_rechercher_par_le_nom.Visible = False
            [Forms]![F_demande_de_carte].lst_r_selection_nom_F_demande_de_carte.Visible = False
            [Forms]![F_demande_de_carte].but_test_folder.Visible = False
            [Forms]![F_demande_de_carte].etiq_folder.Visible = False
     
        ' Affiche les champs nécessaire à ce formulaire
            [Forms]![F_demande_de_carte].Étiq_titre_suivi_demande_CAF.Visible = True
            [Forms]![F_demande_de_carte].but_recherche.Visible = True
            [Forms]![F_demande_de_carte].but_premier.Visible = True
            [Forms]![F_demande_de_carte].but_precedent.Visible = True
            [Forms]![F_demande_de_carte].but_suivant.Visible = True
            [Forms]![F_demande_de_carte].but_dernier.Visible = True
            [Forms]![F_demande_de_carte].but_cloture_fiche.Visible = True
     
        End If
     
    End Sub
    La requête qui me permet de faire la liste déroulante (Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2)) me donne le meme résultat 13 lignes

    Est-ce que cela pourrait provenir du fait que ma base est en MDB et que la syntaxe ne serait pas appropriée?

  13. #13
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    J'ai essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "F_demande_de_carte", acNormal, , WhereCondition:="[Forms]![F_demande_de_carte].txt_matricule_effectif=""" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """"
    toujours vide

    ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call DoCmd.OpenForm("F_demande_de_carte", acNormal, , WhereCondition:="txt_matricule_effectif=""" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """")
    vide aussi

  14. #14
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    je me demande si ce n'est pas cette ligne qui me mets dedans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![F_demande_de_carte].AllowAdditions = False
    Mais je ne peux pas la supprimer sinon mon formulaire s'ouvre en mode création d'enregistrement

  15. #15
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Ne serait il pas possible de l'ouvrir avec ce code

    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
    Private Sub Étiq_suivi_demande_carte_Click() ' ouverture formulaire en mode: Suivi de demande de carte affaire
        'teste si il y a bien des enregistrement avant ouverture
        If DCount("*", "T_demande", "id_statut_demande < " & 5) = 0 Then
        MsgBox "Il n'y a pas de dossier en cours"
        Else
        DoCmd.OpenForm "F_demande_de_carte", acNormal, , WhereCondition:="[id_statut_demande] < 5", DataMode:=acFormEdit
        ' passe le formulaire en modification de donnée et ne permet pas de faire de nouvelles saisies
            [Forms]![F_demande_de_carte].AllowAdditions = False
        'positionne le curseur dans le champs Nom. ATTENTION, toujours positionner le curseur avant de masquer des champs
            [Forms]![F_demande_de_carte].txt_nom_effectif.SetFocus
        ' masquer les champs non nécessaire à ce formulaire
            [Forms]![F_demande_de_carte].Étiq_titre_demande_CAF.Visible = False
            [Forms]![F_demande_de_carte].Etiq_rechercher_par_le_nom.Visible = False
            [Forms]![F_demande_de_carte].lst_r_selection_nom_F_demande_de_carte.Visible = False
            [Forms]![F_demande_de_carte].but_test_folder.Visible = False
            [Forms]![F_demande_de_carte].etiq_folder.Visible = False
     
        ' Affiche les champs nécessaire à ce formulaire
            [Forms]![F_demande_de_carte].Étiq_titre_suivi_demande_CAF.Visible = True
            [Forms]![F_demande_de_carte].but_recherche.Visible = True
            [Forms]![F_demande_de_carte].but_premier.Visible = True
            [Forms]![F_demande_de_carte].but_precedent.Visible = True
            [Forms]![F_demande_de_carte].but_suivant.Visible = True
            [Forms]![F_demande_de_carte].but_dernier.Visible = True
            [Forms]![F_demande_de_carte].but_cloture_fiche.Visible = True
     
        End If
     
    End Sub
    Et ensuite rafraichir le formulaire avec l'équivalent de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call DoCmd.OpenForm("F_demande_de_carte", acNormal, , "txt_matricule_effectif=""" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """")
    Je parle tout seul désolé mais come ça coince je cogite mais n'ai pas assez de connaissance pour arriver à mes fins.

  16. #16
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call DoCmd.OpenForm("F_demande_de_carte", acNormal, , "txt_matricule_effectif=""" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """")
    ce que je peux dire c'est que la syntaxe proposée est bonne, il ne faut pas essayer de la modifier.

    Par contre, j'ai 2 questions à poser:
    - est-ce que txt_matricule_effectif est bien un champ de la requête source (propriété: Source contrôle dans le formulaire) F_demande_de_carte et pas le nom d'un contrôle du formulaire (propriété: Nom dans le formulaire), même si la plupart du temps c'est le même ?
    - est-ce que dans la table, ce champ (je parle de txt_matricule_effectif) est basé sur une liste déroulante, de sorte que, au final, ce n'est pas le matricule qui serait stocké mais un identifiant de type numéro auto ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  17. #17
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Bonjour à tous,

    merci tee_grandbois.
    En lisant votre réponse j'ai cru en la révélation mais le soufflet est retombé

    Effectivement j'ai innocemment utilisé le nom du contrôle (txt_matricule_effectif) mais le nom du champ de la table ainsi que de la requete qui alimente la liste déroulante est bien (matricule_effectif)

    Nom : req-source.JPG
Affichages : 76
Taille : 57,2 Ko

    Alors dans un premier temps j'ai simplement retiré le (txt_)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call DoCmd.OpenForm("F_demande_de_carte", acNormal, , "matricule_effectif=""" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """")
    Mais rien formulaire toujours blanc alors que la msgbox affiche bien le matricule.

    Je me suis donc dis que je n'avais peut etre pas choisi le matricule comme valeur de stockage lors de la création de ma déroulante.
    J'en ai donc fais une seconde en modifiant légèrement le nom et en cliquant sur (matricule_effectif) à la dernière étape de création de ma liste.

    Nom : form.jpg
Affichages : 70
Taille : 100,4 Ko

    J'ai ensuite modifié mon code en:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call DoCmd.OpenForm("F_demande_de_carte", acNormal, , "matricule_effectif=""" & Me.Mod_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """")
    Et bien toujours rien msgbox ok et formulaire blanc

    Du coup cela m’amène un question, comment peut on controler la valeur stockée d'une liste déroulante après sa création?

    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
    Private Sub but_lancer_Click()
        'controle que la valeur demandée est bien celle attendue
    MsgBox "" & Me.Mod_R_selection_nom_F_suivi_demande_de_carte.Column(2) & ""
        'filtre le formulaire sur le nom sélectionné dans la liste déroulante
    'Call DoCmd.OpenForm("F_demande_de_carte", acNormal, , "txt_matricule_effectif=""" & Me.lst_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """")
     Call DoCmd.OpenForm("F_demande_de_carte", acNormal, , "matricule_effectif=""" & Me.Mod_R_selection_nom_F_suivi_demande_de_carte.Column(2) & """")
        ' passe le formulaire en modification de donnée et ne permet pas de faire de nouvelles saisies
            [Forms]![F_demande_de_carte].AllowAdditions = False
        'positionne le curseur dans le champs Nom. ATTENTION, toujours positionner le curseur avant de masquer des champs
           ' [Forms]![F_demande_de_carte].txt_nom_effectif.SetFocus
        ' masquer les champs non nécessaire à ce formulaire
            '[Forms]![F_demande_de_carte].Étiq_titre_demande_CAF.Visible = False
            '[Forms]![F_demande_de_carte].Etiq_rechercher_par_le_nom.Visible = False
            '[Forms]![F_demande_de_carte].lst_r_selection_nom_F_demande_de_carte.Visible = False
            '[Forms]![F_demande_de_carte].but_test_folder.Visible = False
            '[Forms]![F_demande_de_carte].etiq_folder.Visible = False
     
        ' Affiche les champs nécessaire à ce formulaire
            '[Forms]![F_demande_de_carte].Étiq_titre_suivi_demande_CAF.Visible = True
            '[Forms]![F_demande_de_carte].but_recherche.Visible = True
            '[Forms]![F_demande_de_carte].but_premier.Visible = True
            '[Forms]![F_demande_de_carte].but_precedent.Visible = True
            '[Forms]![F_demande_de_carte].but_suivant.Visible = True
            '[Forms]![F_demande_de_carte].but_dernier.Visible = True
            '[Forms]![F_demande_de_carte].but_cloture_fiche.Visible = True
     
    'Bloque les champs déjà renseignés
        'if Me.txt_matricule_effectif <> "" then
            'Me.txt_matricule_effectif.Locked = True
        'Else
            'Me.txt_matricule_effectif.Locked = False
        'End If
     
    End Sub
    Encore merci pour votre aide et bonne journée.

  18. #18
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    Du coup cela m’amène un question, comment peut on controler la valeur stockée d'une liste déroulante après sa création?
    je ne comprend pas la question et je ne pense pas que le problème vienne de là puisque tes boîtes message indiquent bien une valeur de matricule_effectif.
    Et quand est-il de la structure du champ de la table ? peut-on avoir une impression d'écran des propriétés du champ matricule_effectif (onglets: Général et Liste de choix) dans la table d'origine ?

    Je vois également que tu utilises une objet nommé "R_selection_nom_F_su..." (on n'a pas la suite) est-ce le nom de la table (peu probable)? sinon, pourrait-on voir le texte SQL de cette requête ?
    Alors dans un premier temps j'ai simplement retiré le (txt_)
    la clause WhereCondition s'applique toujours sur les champs de la source et pas sur les contrôles du formulaire, donc le nom utilisé doit exister dans la requête (ou la table).
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  19. #19
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    bonjour,

    (Du coup cela m’amène un question, comment peut on contrôler la valeur stockée d'une liste déroulante après sa création?)
    Cette question m'est venue après votre commentaire et était juste pour savoir si il existait un moyen de controler mais pas forcement dans la nature du présent problème.


    Voici les propriétés de la liste de choix basée sur la requete "R_selection_nom_F_suivi_demande_de_carte"
    Nom : pr_lliste choix.JPG
Affichages : 70
Taille : 61,8 Ko
    la structure de la requete:
    Nom : r_select.JPG
Affichages : 65
Taille : 55,1 Ko
    et la structure de la table:
    Nom : table demande.JPG
Affichages : 64
Taille : 71,3 Ko

    Il n'est pas facile d'arriver se comprendre ayant des conceptions et formations différentes d'autant que je ne peux pas partager cette base.
    J'arrive grâce à votre aide à développer un outil sans parfois comprendre la totalité des syntaxes ce qui rends les échanges un peu complexes.

    Et vous remercie pour votre patience

  20. #20
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    merci pour les informations sur le champ dans la table. Malheureusement, il manque le plus important, les propriétés dans les 2 onglets:
    Nom : _0.JPG
Affichages : 67
Taille : 33,0 Ko
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2016] ouverture formulaire sur critère et sous condition
    Par mgascult dans le forum IHM
    Réponses: 2
    Dernier message: 06/08/2020, 14h18
  2. [AC-2016] ouverture formulaire sur critère
    Par mgascult dans le forum IHM
    Réponses: 24
    Dernier message: 04/06/2020, 17h47
  3. Ouverture formulaire sur clik dans zone de liste
    Par Niaouli02 dans le forum IHM
    Réponses: 4
    Dernier message: 26/05/2017, 12h50
  4. Ouverture formulaire sur clic souris
    Par Michel DELAVAL dans le forum Access
    Réponses: 6
    Dernier message: 30/09/2006, 21h33
  5. Ouverture formulaire sur enregistrement precis
    Par mat_lefebvre dans le forum IHM
    Réponses: 7
    Dernier message: 11/10/2004, 15h37

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