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

Access Discussion :

Comment utiliser le contenu d'une variable string comme nom de variable [AC-2010]


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2019
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2019
    Messages : 132
    Points : 46
    Points
    46
    Par défaut Comment utiliser le contenu d'une variable string comme nom de variable
    Bonjour à tous,

    Je voudrais utiliser la chaîne de caractères d'une variable (string) comme nom de variable (existante).
    Comment dois-je proceder ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Option Compare Database
    Dim lastChecked As String
     
    Private Sub chkBox1_Click()
        lastChecked = "chkBox1"
        Call Filtre1
    End Sub
     
    Private Sub chkBox2_Click()
        lastChecked = "chkBox2"
        Call Filtre1
    End Sub
     
    Private Sub chkBox3_Click()
        lastChecked = "chkBox3"
        Call Filtre1
    End Sub
     
    Private Sub chkBox4_Click()
        lastChecked = "chkBox4"
        Call Filtre1
    End Sub
     
    Private Sub Filtre1()
    .
    .       'Quelque part dans le code :
    .
    	Me.chkBoxX.Value = False		'utiliser la variable (string) dans la déclaration pour obtenir par exemple "Me.chkBox3.Value = False" lorsque "lastChecked" = "chkBox3"
    .
    .
    .
    End Sub
    Pour éviter ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        If lastChecked = "chkBox1" Then
        Me.chkBox1.Value = False
        ElseIf lastChecked = "chkBox2" Then
        Me.chkBox2.Value = False
        ElseIf lastChecked = "chkBox3" Then
        Me.chkBox3.Value = False
        ElseIf lastChecked = "chkBox4" Then
        Me.chkBox4.Value = False
    	End If

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 854
    Points : 14 965
    Points
    14 965
    Par défaut
    bonjour,
    il faut utiliser la propriété controls() du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls(lastChecked) = False

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2019
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2019
    Messages : 132
    Points : 46
    Points
    46
    Par défaut récupérer la chaîne d'une variable string comme nom de variable
    Bonjour tee_grandbois,

    Merci, c'est simple et ça marche à merveille!

    Mais est-il néanmoins possible (pour d'autres cas) de récupérer la chaîne d'une variable string comme nom de variable ?

    Gaston

  4. #4
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 914
    Points : 1 088
    Points
    1 088
    Par défaut
    Bonjour,
    La fonction Eval évalue une expression qui génère une chaîne de texte ou une valeur numérique.
    Bon DEV
    .

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2019
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2019
    Messages : 132
    Points : 46
    Points
    46
    Par défaut
    Merci star.

    Cela semble être une bonne piste dans le sens que je voulais.

    Je vais regarder ça de plus près en faisant quelques tests.

    Bonne fin de journée,
    Gaston

  6. #6
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 914
    Points : 1 088
    Points
    1 088
    Par défaut
    Bonjour,
    Serait-ce possible d'avoir un aperçu de la solution adoptée ?
    .

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2019
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2019
    Messages : 132
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Momentanément j'utilise la solution de tee_grandbois, car je n'ai pas encore eu le temps de faire d'autres tests.

    Merci quand même et bonne journée,

    Gaston

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 854
    Points : 14 965
    Points
    14 965
    Par défaut
    bonjour,
    si c'est le contrôle actif que tu souhaites tester, il existe déjà dans le formulaire en tant que "variable": c'est la propriété ActiveControl du formulaire actif

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub chkBox1_Click()
     
        Call Filtre1 (Screen.ActiveControl.Name)
     
    End Sub
    et là, plus besoin d'une variable String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Filtre1(ActivCtl as control)
    '...
    ActivCtl.Value = False
    ' ... etc
    End sub
    il existe également la propriété PreviousControl

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/02/2016, 11h13
  2. Réponses: 12
    Dernier message: 17/01/2008, 12h46
  3. Réponses: 1
    Dernier message: 20/11/2007, 16h15
  4. [XSLT]comment utiliser xsl:if avec une variable
    Par dbill dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 22/08/2007, 14h23
  5. Comment afficher le contenu d'une variable ?
    Par innova dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/06/2007, 12h45

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