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 :

Liste déroulante dans formulaire, synchro quand elle veut !


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 71
    Points : 38
    Points
    38
    Par défaut Liste déroulante dans formulaire, synchro quand elle veut !
    Bonjour à tous,

    J'ai, dans ma base Access, un formulaire principal avec un sous-formulaire.
    J'ai créé une liste déroulante qui permet à l'utilisateur de changer d'enregistrement.
    A l'ouverture du form, j'initialise ma liste avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me![Modifiable30] = Me![ID_EXP]
    J'ai aussi mis un évènement sur "Après mise à jour":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Dim rs As Object
     
        Set rs = Me.Recordset.Clone
         rs.FindFirst "[ID_EXP] = " & Str(Nz(Me![Modifiable30], 0))
     
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    Au démarrage, tout va bien.
    Le problème, c'est que lorsqu'on sélectionne une autre valeur, des fois la liste actualise le contenu, des fois non !
    J'ai mis, à côté de ma liste, les "vrais" controles, qui montrent ce qui est réellement affiché. Des fois ce sont les bons (ceux qui correspondent à la valeur sélectionné dans la liste, des fois non !)
    Au démarrage, le form m'affiche bien le premier "EXP" de la liste (classé par ordre croissant):


    Quand je clique sur la 2e valeur, rien ne change, mes controles montrent bien qu'on n'est pas passé au bon enregistrement


    Quand je clique sur la 3e valeur, là ça marche bien


    Je reclique sur la 2e, rebelote...


    J'y comprends rien !

    Merci de votre aide !

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    D'abord, je mettrais ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me![Modifiable30] = Me![ID_EXP]
    dans l'événement Sur activation du formulaire (Form_Current) et non Sur ouverture. A mon avis pas de relation avec ton problème.

    Quel devrait être selon toi l'ID du 2ème enregistrement ?

    Le premier = 14
    Le troisième = 15

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 71
    Points : 38
    Points
    38
    Par défaut
    Merci pour ta réponse.
    J'ai modifé le code pour le placer sur activation, en effet pas de changement.

    L'ID de la 2e valeur devrait être 13 selon ma table.

  4. #4
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Ok pour la valeur, c'est pas ça, je pensais à autre chose... Sorry

    Et avec simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With Me.RecordsetClone
     
        .FindFirst "ID_EXP=" & str(Nz(Me.Modifiable30, 0))
     
        If .NoMatch = False Then Me.Bookmark = .Bookmark
     
    End With
    Ca change quelque chose ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 71
    Points : 38
    Points
    38
    Par défaut
    Ca change pas grande chose.
    Quand je passe à la 3e valeur (37466), ça marche toujours bien. La différence avec mon ancien code, c'est que si je repasse à la 2e (37463), j'ai toujours la 37466 affiché dans mon contrôle.

    Ca veut dire qu'il ne trouve pas les autres valeurs (dont la 2e) dans la table ?
    Bizarre, étant donné que la source de la liste est... la table :/

  6. #6
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Tu avais fait ta liste de recherche avec l'assistant ?

    Si pas le cas, essaie de la refaire avec et poste le code que ça génère...

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 71
    Points : 38
    Points
    38
    Par défaut
    Oui je l'avais fait avec l'assistant. En fait au début tout marchait très bien, puis j'ai modifié des trucs dans mon form, et la liste s'est mis à plus marcher. Pourtant j'ai comparé avec une sauvegarde que j'avais faite, je ne vois aucun changement dans les codes, ni dans celui du form, ni dans celui de la liste !

    J'ai essayé de refaire ma liste, mais normalement l'assistant est pas censé me proposer 3 option ? Je n'en ai que 2:
    - Je veux que la liste déroulante recherche les valeurs dans une table ou une requête
    - Je taperai les valeurs souhaitées

    Y'a qqchose qui cloche ?

    Merci

  8. #8
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Y'a quelque chose qui cloche ?
    Oui... Ta source de formulaire, ça m'étonnerait que ce soit la table !

    Tu n'as pas mis une requête SQL directement comme source ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  9. #9
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 71
    Points : 38
    Points
    38
    Par défaut
    Je vais devenir chèvre !
    J'ai re-vérifié ma source de formulaire, c'est bien ma table, pas une requête !

    Ce qui est bizarre, c'est que ça marche avec certains EXP, mais pas avec d'autres !

  10. #10
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Essaie ceci :

    En mode création, tu supprimes la source, tu enregistres et tu fermes.

    Tu ouvres à nouveau en mode création, tu resélectionnes ta source, tu enrgistres, tu fermes.

    Puis de nouveau en mode création, tu essaies de recréer une liste. Toujours uniquement 2 possibilités offertes ?

    Si oui, peux-tu mettre un extrait de ta base en pièce jointe au format 2000.

    La table avec quelque données (tu peux mettre tout et n'importe quoi) et ton formulaire.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  11. #11
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 71
    Points : 38
    Points
    38
    Par défaut
    J'ai essayé ce que tu m'as dit, sans succès.

    J'ai mis la base en pièce jointe (avec des noms bidons, vous m'excuserez ), si vous pouvez y jeter un oeil...
    (le formulaire qui déconne s'appelle 1- EXP et parents)

    Merci bcp !
    Fichiers attachés Fichiers attachés

  12. #12
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Bon j'ai pas le temps de tout regarder avant ce soir, mais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [EXP list].*, Segments.nom_segment FROM Segments INNER JOIN [EXP list] ON Segments.ID_segment=[EXP list].exp_segment_id;
    Comme source de formulaire, c'est en tout cas pas une table...

    [Edit]

    Ce n'est donc pas une table (ou une requête graphique) et c'est pour ça que l'assistant ne te propose plus la création d'une liste de recherche.

    Ceci dit la tienne fonctionne très bien. Elle affiche correctement 2 enregistrements sur 5, c'est-à-dire ceux ou le champ "exp_segment_id" n'est pas Null.

    Si tu renseignes les 3 autres enregistrements, tu verras que ta liste te permet de les sélectionner les 5.

    [/Edit]

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  13. #13
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 71
    Points : 38
    Points
    38
    Par défaut
    Ok j'ai compris le truc... J'ai donc viré la table segment de ma requête, et je ne m'en sers que dans la source pour le contrôle correspondant.
    Ceci fait, ma liste fonctionne maintenant parfaitement !

    Merci à toi !

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

Discussions similaires

  1. Liste déroulante dans formulaire (problème)
    Par JenTry dans le forum IHM
    Réponses: 2
    Dernier message: 11/05/2007, 13h59
  2. Réponses: 3
    Dernier message: 07/05/2007, 12h24
  3. Réponses: 1
    Dernier message: 06/05/2007, 22h54
  4. Réponses: 1
    Dernier message: 04/05/2007, 12h15
  5. liste déroulante dans formulaire continu
    Par remi59 dans le forum Access
    Réponses: 7
    Dernier message: 31/03/2006, 09h40

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