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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    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 éclairé Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    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 confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    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 éclairé Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    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 éclairé Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    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 ?

+ 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