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

  1. #1
    Membre du Club
    Liste déroulante ne se met pas à jour dans un formulaire
    Bonjour

    alors encore un problème de mise a jour de liste déroulante

    j'ai fais un formulaire a partir d'une table "0_T_Prncipale_Ajouts" (04_AJOUTS_CARACTÉRISTIQUES)qui me permet de faire des enregistrements cette table est liée avec toutes les autres table de liste déroulante et lorsque que je rajoute une donnée dans le formulaire "02_AJOUT_LISTE_DEROULANTES" ou supprime une donnée a partir du formulaire "03_SUPPRIME_LISTE_DEROULANTES" le formulaire "04_AJOUTS_CARACTÉRISTIQUES" ne ce met pas à jour
    j'ai essayé avec les codes que j'avais déjà pour les formulaire d'ajouts et supprimer des données mais ça ne fonctionne pas

    merci d'avance pour vos réponses
    je joins mon fichier

    Cordialement

  2. #2
    Rédacteur/Modérateur

    Bonjour

    Le soucis vient du rafraichissement du formulaire 04. D'ailleurs s'il est fermé et réouvert les mises à jours se font bien.
    Il faut donc à la fermeture du formulaire 02(par exemple), vérifier que le formulaire 04 n'est pas ouvert et s'il l'est le mettre à jour.

    Ce qui donne sur l'évènement on clic du bouton de fermeture:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub btn_fermer_Click()
    'On vérifie que le formulaire 04 est ouvert et si oui on l'actualise
    If CurrentProject.AllForms("04_AJOUTS_CARACTÉRISTIQUES").IsLoaded Then
        Form_04_AJOUTS_CARACTÉRISTIQUES.Requery
    End If
    ' On ferme le formulaire 02
    DoCmd.Close acForm, "02_AJOUT_LISTE_DEROULANTES", acSaveYes
    End Sub


    Même chose à appliquer sur le formulaire 03.

    C'est une façon de faire, il y en a surement d'autres.
    Plus j'avance et plus je sais que je ne sais rien. Et comme j'essaie d'aller loin .....
    Pas de demande d'aide par Mp.... sinon
    Mes tutoriels sur http://jdgayot.developpez.com
    Beaucoup de réponses à vos questions dans la Faq ou dans les tutoriels


  3. #3
    Membre expert
    D'ailleurs comme posé dans un autre forum, pourquoi garder les formulaires ouverts ? Ils sont déjà plein écran à l'ouverture, un btn permet de les refermer et de retomber sur le form principal !
    N'y a t-il pas un problème de modélisation ?
    Bref ...

  4. #4
    Membre du Club
    bonjour

    merci pour vos réponses mais si je laisse les deux formulaires ajouts et supprimer ouvert les listes se mettes à jours sans problème d'où ma question pourquoi pas sur le formulaire 04
    le formulaire 04 s'ouvre en plein écran à l'ouverture car c'est juste pour un essaie ensuite je le mettrai en mode fenêtre

    Cordialement

  5. #5
    Rédacteur/Modérateur

    Les sous-formulaires sont liés aux tables correspondantes donc quand on saisit une donnée dans le formulaire F_33 par exemple, quand on fait "entrée" la donnée est ajoutée dans la table T_33 (Heureusement).

    Par contre le formulaire F_04 est une représentation globale et doit être réactualisé soit à l'ouverture (au moment où il va chercher les données) soit par un autre évènement provoqué.
    On pourrait très bien mettre un bouton d'actualisation sur le formulaire.
    Plus j'avance et plus je sais que je ne sais rien. Et comme j'essaie d'aller loin .....
    Pas de demande d'aide par Mp.... sinon
    Mes tutoriels sur http://jdgayot.developpez.com
    Beaucoup de réponses à vos questions dans la Faq ou dans les tutoriels


  6. #6
    Membre du Club
    Bonjour

    merci pour ta réponse effectivement je ne l'avais pas vu sous ce sens je vais prendre ton idée

    Cordialement

  7. #7
    Membre du Club
    Bonjour

    dans la liste déroulante du formulaire 04 à sur souris appuyée j'ai mis ce code

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub T_0_Civilité_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Me.Controls("T_0_Civilité").Requery 'T_0_Civilité = liste dérouilante
    End Sub


    la liste déroulante ce met maintenant à jour que j'ajoute ou supprime des données donc je pensais avoir réglé le problème mais je n'arrive plus a choisir une donnée dans la liste

    il y a t'il un moyen pour pouvoir choisir une donnée si oui le problème est résolu

    merci d'avance pour vos réponses

    cordialement

  8. #8
    Membre du Club
    Bonjour
    alors finalement résolu toutes les listes déroulantes ce mettent à jour dans tout les formulaires

    dans le formulaire 04_ajouts_caractériques > sur activation j'ai mis le code

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Current()
    Me.Controls("T_0_Civilité").Requery ' T_0_Civilité = liste déroulante
    End Sub


    dans le formulaire 02_ajout_listes_deroulantes > sur absence de liste j'ai mis le code ( ligne rouge ) que m'a donné GAYOT que je remercie au passage pour son aide

    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
    Private Sub LD_CIVILITE_NotInList(NewData As String, Response As Integer)
    Dim rst As DAO.Recordset
        Set rst = CurrentDb.OpenRecordset("T_0_Civilité") 'T_0_Civilité = table concernée par l'ajout
        rst.AddNew
        rst!Civilité = NewData 'Civilité = champ table concerné par l'ajout dans la liste déroulante
        rst.Update
        rst.Close
        Set rst = Nothing
    Response = acDataErrAdded
    If CurrentProject.AllForms("03_SUPPRIME_LISTE_DEROULANTES").IsLoaded Then
        Forms![03_SUPPRIME_LISTE_DEROULANTES]![FS_0_Civilité].Form.RecordSource = Forms![03_SUPPRIME_LISTE_DEROULANTES]![FS_0_Civilité].Form.RecordSource
    End If
    'On vérifie que le formulaire 04 est ouvert et si oui on l'actualise
    If CurrentProject.AllForms("04_AJOUTS_CARACTÉRISTIQUES").IsLoaded Then
        Form_04_AJOUTS_CARACTÉRISTIQUES.Requery
    End If
    End Sub


    et j'ai rajouter les memes lignes au formulaire 03_supprime_listes_deroulantes

    Cordialement