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 :

La zone de liste ne restitue pas le nouvel enregistrement [AC-2003]


Sujet :

IHM

  1. #1
    Membre habitué Avatar de doncamelo
    Homme Profil pro
    Chargé d'études
    Inscrit en
    Décembre 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2007
    Messages : 129
    Points : 164
    Points
    164
    Par défaut La zone de liste ne restitue pas le nouvel enregistrement
    Bonsoir le forum,

    Voici bientôt 2h que j'essaie de trouver une solution à ce problème, mais sans succes. J'espère que vous pourrez me donner quelques idées de solutions.

    En parcourant la FAQ j'ai trouvé ce code qui me permets de créer un enregistrement quand ma zone de liste déroulante (cboSelectionClient) affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Absence dans liste déroulante - Proposer d'ajouter la valeur manquante dans la table source:
     
    Private Sub Modifiable0_NotInList(NewData As String, Response As Integer) 
        If MsgBox("Voulez-vous ajouter " & NewData & " à la liste des prénoms ?",  _
                           vbYesNo + vbQuestion + vbDefaultButton2, "Ajout") = vbYes Then 
            DoCmd.RunSQL "INSERT INTO tblPrenoms ( Prénom ) SELECT """ & NewData & """;" 
            Response = acDataErrAdded 
        Else 
            Response = acDataErrContinue 
            Modifiable0.Undo 
        End If 
    End Sub
    Ma liste déroulante (cboSelectionClient) permets à une zone de liste (lstInfosClients) d'afficher certaines info de l'enregistrement.

    Mon problème est que lors que je crée un enregistrement, ma zone de liste (lstInfosClients) ne l'affiche pas.

    J'ai utilisé :

    Me.Refresh
    lstInfosClients.requery

    dans l'évènement après MàJ de ma zone de liste déroulante (cboSelectionClient) mais sans succes.

    Quand j'ouvre ma table l'enregistrement existe.

    Merci pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Une chose que je ne comprends pas, tu parles de liste déroulant ou non avec des noms normalisés (cboSelectionClient et lstInfosClients), hors tu mets ton code sur Modifiable0.

    Peux-tu être un peu plus explicite.

    Philippe

  3. #3
    Membre habitué Avatar de doncamelo
    Homme Profil pro
    Chargé d'études
    Inscrit en
    Décembre 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2007
    Messages : 129
    Points : 164
    Points
    164
    Par défaut
    Désolé,

    dans l'empressement j'ai repris le code de la faq.

    Voici le code qui se trouve dans l'évènement : "Sur absence dans liste"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub cboSelectionClients_NotInList(NewData As String, Response As Integer)
        If MsgBox("Ce client " & NewData & " n'existe pas. Voulez-vous le créer ?", _
                           vbYesNo + vbQuestion + vbDefaultButton2, "Ajout") = vbYes Then
           DoCmd.RunSQL "INSERT INTO clients ( IdClients ) SELECT """ & NewData & """;"
            Response = acDataErrAdded
        Else
            Response = acDataErrContinue
            cboSelectionClients.Undo
        End If
     
    End Sub
    J'ai aussi rajouté dans l'évènement "Après MàJ"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub cboSelectionClients_AfterUpdate()
    Me.Refresh
    LstRechercheClients.Requery
    End Sub
    J'ai crée une requete (CritereAffichageClients) dans laquelle l'IDClients est conditionné par la valeur de "cboSelectionClients"

    Dans le contenu de LstRechercheClients je reprends les champs de la requete "CritereAffichageClients".

    Est-ce correcte ma manière de procéder ?

  4. #4
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,

    Dans la FAQ on trouve ceci

    http://access.developpez.com/faq/?page=zdl#RafrZList

  5. #5
    Membre habitué Avatar de doncamelo
    Homme Profil pro
    Chargé d'études
    Inscrit en
    Décembre 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2007
    Messages : 129
    Points : 164
    Points
    164
    Par défaut
    Bonsoir à tous,

    Merci pour votre aide.

    J'ai contourné le problème en créant un formulaire de saisi basé sur ma table clients.

    Dans l'évenement "Après Insertion" du formulaire, j'ai rajouté :

    Forms![FrmRechecheClients]![LstRechercheClients].Requery

    Voici le code complet qui fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_AfterInsert()
     
        If CurrentProject.AllForms("FrmRechecheClients").IsLoaded Then
     
            Forms![FrmRechecheClients]![LstRechercheClients].Requery
     
        End If
     
    End Sub
    Encore merci.

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

Discussions similaires

  1. [AC-2007] Access ne passe pas à un nouvel enregistrement
    Par Baudet87 dans le forum Access
    Réponses: 8
    Dernier message: 09/06/2013, 15h30
  2. [AC-2010] INSERT INTO ne crée pas de nouvel enregistrement.
    Par St-Jean dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 01/03/2013, 15h18
  3. Ne pas afficher "Nouvel Enregistrement"
    Par Keuf95 dans le forum Access
    Réponses: 1
    Dernier message: 29/07/2006, 01h37
  4. Réponses: 13
    Dernier message: 27/06/2006, 11h20
  5. Réponses: 6
    Dernier message: 15/12/2005, 21h20

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