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

VBA Access Discussion :

Soucis pour mettre à jour une liste déroulante.


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Soucis pour mettre à jour une liste déroulante.
    Bonjour.

    J'ai réalisé une petite base de données qui fonctionne pas trop mal, mais j'aimerais encore l'améliorer.

    J'ai un formulaire de consultation, dont certains critères de choix sont issus de listes déroulantes.

    J'avais tapé directement le code SQL (zone de liste déroulante/ données/ contenu) de la requête pour les choix possibles dans une des listes.

    Là, j'aimerais que cette liste puisse avoir des choix très différents, aussi j'aimerais baser ma liste non pas sur un code rentré à la main, mais sur une requête SQL enregistrée que je pourrais modifier via le VBA.

    Ma liste s'appelle Rubrique1, la requête s'appelle "Rqt Rub1".

    J'utilise un bouton "case à cocher" dont le nom est "CocherLiées".

    Voici mon code:

    Private Sub CocherLiées_Click()

    Dim strSQL As String

    If Me.CocherLiées Then
    strSQL = "SELECT DISTINCT ArboTbl1.Rubrique, ArboTbl1.enfant FROM ArboTbl1;"
    CurrentDb.QueryDefs("Rqt Rub1").SQL = strSQL
    Rubrique1.Value = Null
    Rubrique1.Requery
    MsgBox "Modifié 1"

    Else
    strSQL = "SELECT DISTINCT ArboTbl2.Rubrique, ArboTbl2.enfant FROM ArboTbl2;"
    CurrentDb.QueryDefs("Rqt Rub1").SQL = strSQL
    Rubrique1.Value = Null
    Rubrique1.Requery
    MsgBox "Modifié 2"

    End If
    L'idée c'est grâce à la case à cocher d'avoir une bascule qui permet d'attribuer un code différent à la requête SQL sur laquelle est basée la liste de choix.


    Et là, j'ai un problème: la requête "Rqt Rub1" est bien modifiée à chaque clic (je peux le vérifier en la lançant à part), mais bien que j'utilise un Rubrique1.requery, la liste n'est jamais modifiée, ou plus exactement elle l'est mais à chaque nouveau lancement du formulaire (en fonction du code qui était dans la requête "Rqt Rub1" au moment du lancement).

    On a l'impression que le formulaire "fige" la requête initiale au moment du lancement, access utilise-t'il une copie de la requête ?

    Inutile de me dire que j'aurais pu mettre Rubrique1.requery après le end if, c'était juste un essai dans la foulée.

    Si vous avez des idées.

  2. #2
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Résolu (partiellement) en passant par:

    Me.Rubrique1.RowSource = StrSql

    Mais bon.. ce n'est pas exactement ce que j'aurais voulu...

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/09/2008, 15h57
  2. Mettre du code pour mettre à jour une zone
    Par AgriPhilou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2008, 13h25
  3. Réponses: 1
    Dernier message: 16/05/2007, 20h31
  4. impossible de mettre à jour une liste déroulante
    Par nicolovitch dans le forum Access
    Réponses: 3
    Dernier message: 02/08/2006, 11h31
  5. Réponses: 2
    Dernier message: 06/04/2006, 21h18

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