Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/02/2011, 02h53   #1
Membre régulier
 
Avatar de doncamelo
 
Chargé d'études
Inscription : décembre 2007
Messages : 98
Détails du profil
Informations personnelles :
Localisation : Haïti

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

Informations forums :
Inscription : décembre 2007
Messages : 98
Points : 99
Points : 99
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 :
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.
doncamelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2011, 06h48   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 609
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 609
Points : 30 959
Points : 30 959
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2011, 18h24   #3
Membre régulier
 
Avatar de doncamelo
 
Chargé d'études
Inscription : décembre 2007
Messages : 98
Détails du profil
Informations personnelles :
Localisation : Haïti

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

Informations forums :
Inscription : décembre 2007
Messages : 98
Points : 99
Points : 99
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 :
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 :
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 ?
doncamelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 09h21   #4
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Bonjour,

Dans la FAQ on trouve ceci

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

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 22h32   #5
Membre régulier
 
Avatar de doncamelo
 
Chargé d'études
Inscription : décembre 2007
Messages : 98
Détails du profil
Informations personnelles :
Localisation : Haïti

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

Informations forums :
Inscription : décembre 2007
Messages : 98
Points : 99
Points : 99
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 :
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.
doncamelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h21.


 
 
 
 
Partenaires

Hébergement Web