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 :

utiliser une variable pour créer le record source d'un état en VBA


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut utiliser une variable pour créer le record source d'un état en VBA
    Bonjour,

    Je voudrais faire en sorte que la source de mon état change en fonction de la sélection faite dans une liste déroulante.
    J'ai une liste déroulante contenant différents noms de champ, et en fonction de la sélection, le recordsource serait changé en utilisant cette sélection. J'ai ce début de code mais je ne sais pas comment encadrer ma variable pour le le code soit correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub btn_etat_PL_Click()
        variable$ = Me![Modifiable_PL]
        DoCmd.OpenReport "3-lignePL", acViewPreview
        Me.RecordSource = "Select * FROM REVIVAL WHERE [ligne P&L] =" variable";"    
    End Sub
    Ca ne marche pas comme ça et je cherche donc la syntaxe pour intégrer ma variable dans la requête.

  2. #2
    Membre actif Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Points : 232
    Points
    232
    Par défaut
    bonjour,

    alors tout dépend du type de ta variable...
    Ca doit surment être un string donc il faut que tu écrive ca comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.RecordSource = "Select * FROM REVIVAL WHERE [ligne P&L] = '" & variable & "'"
    Normalement cela devrait fonctionner.
    Tu n'as pas besoin du ; normalement non plus
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut
    j'essaie.

    Sinon j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "3-lignePL", , , "[ligne P&L] =" & Me![Modifiable_PL]
    Mais ça ne fonctionne pas...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut
    J'ai essayé avec le code que tu m'as donné, pas d'erreur affichée mais le record source n'est pas modifié bizarrement.
    Le code complet, c'est ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub btn_etat_PL_Click()
        variable$ = Me![Modifiable_PL]
        DoCmd.OpenReport "3-lignePL", acViewPreview
        Me.RecordSource = "Select * FROM REVIVAL WHERE [ligne P&L] = '" & variable & "'"
    End Sub

  5. #5
    Membre actif Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Points : 232
    Points
    232
    Par défaut
    pour ouvrir un état (enfin dans mon cas pour l'imprimer) j'utilise ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "MonEtat", acViewNormal, SOURCE
    avec SOURCE qui est une variable de type string qui contient ma requete SQL.
    Et voila
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut
    Je ne comprend pas pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    variable$ = Me![Modifiable_PL]
    me renvoie le numéro de position du texte choisi dans la liste au lieu de me donner le texte lui-même..
    Tu saurais comment changer ça ?

  7. #7
    Membre actif Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Points : 232
    Points
    232
    Par défaut
    ton but est simplement que l'état s'ouvre en fonction de la sélection faite. C'est-à-dire que tu sélectionne ce que tu veux, et après tu clique sur un bouton qui ouvre ton état...
    Alors tentes ma solution :

    DoCmd.OpenReport "MonEtat", acViewNormal, "Select * FROM REVIVAL WHERE [ligne P&L] = '" & variable & "'"

    Dans ton état, tu lui as mis que la source de l'état était la table REVIVAL ?
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut
    oui.

    C'est bien ce code que j'ai mis mais mon souci c'est que le résultat de "variable", c'est par exemple "8", au lieu de "FG Fixed" car celui-ci est en 8e position dans la liste.
    Je pense que l'erreur vient de l'initialisation de variable qui n'est pas correcte.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Points : 520
    Points
    520
    Par défaut
    Si tu as une colonne cachée dans ta liste, tu peux y accéder par Me.taListe.Column(1)
    Me.taListe te renvoie la valeur de la colonne 0 (qui peut être masquée)

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub btn_etat_PL_Click()
        variable$ = Me.[Modifiable_PL].Column(1)
        Debug.Print variable
        DoCmd.OpenReport "3-lignePL", acViewPreview, "SELECT * FROM REVIVAL WHERE [ligne P&L] = '" & variable & "'"
    End Sub
    impeccable, merci Gary, merci Oleff !

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

Discussions similaires

  1. Utiliser une variable pour une source
    Par ZenBien dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 15/05/2008, 20h14
  2. Réponses: 9
    Dernier message: 25/02/2008, 11h40
  3. Utiliser une variable pour mettre des étiquettes visible
    Par patate5555 dans le forum VBA Access
    Réponses: 8
    Dernier message: 21/06/2007, 13h51
  4. Utiliser une variable pour stocker les noms d'objets.
    Par en_gel_ho dans le forum Access
    Réponses: 4
    Dernier message: 03/01/2007, 16h44
  5. [XSL] utiliser une variable pour nom d'élément
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 07/09/2004, 13h58

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