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

VB 6 et antérieur Discussion :

Convertir une chaine de caractère en nom de controle


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Convertir une chaine de caractère en nom de controle
    Salut tous le monde

    Voila mon probleme

    j'ai une base de données où il y a une table de paramètres avec deux colonnes
    1 - NameMenu 2 - Droit
    Menu_Fiche True
    Menu_Etat TRue
    Menu_Vente False
    ...

    et sur le projet il y a les menu Menu_Fiche menu_Etat ......

    dans le code je veux recupérer les données de la base et les traiter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    While Not Rsi.EOF
    Rsi.fields("Name_Menu").visible=Rsi.fields("Droit")
    Rsi.MoveNext
    Wend

    et c'est normal qu'il y ait une erreur dans le code comme "Rsi.fields("Name_Menu")" c'est une chaine moi ce que cherche c'est à la convertir en objet par exemple : Menu_Fiche.visible= true



    Merci d'avance de votre aide..............

  2. #2
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Voilà une possiblité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim Mnu as Control
     
    For Each Mnu in Me.Controls
      If Mnu.Caption = Rsi.fields("Name_Menu") and Rsi.fields("Droit") = False Then
        Mnu.Visible = False
      End If
    Next

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    ou utilise la collection Contrrols

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Controls(Rsi.fields("Name_Menu") ).visible = False
    ( controls("toto") se réfère au contrôle auant pour nom toto)

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Bonjour tout le monde

    Merci bcp ucfoutu
    pour ton aide j'ai essayer avec "visible" sa marche

    mais quand j'essai l'option "Caption" il me donne une erreur comme quoi l'objet ne gere pas cette fonction

    Merci encore une fois

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    A toi de gérer ...

    La propriété Caption pour tel type, la propriété Text, pour tel autre, etc...
    Sers-toi donc de TypeName pour connaître le type de Contrôle et choisis la proproété en conséquence (avec un select Case, par exemple)

    essaye cette petite démo et tu vas vite comprendre :

    Sur ta form, un label Label1 et une TextBox Text1
    un bouton de commande Command1

    ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Command1_Click()
      agis Controls("label1")
      agis Controls("text1")
      agis Controls("Command1")
    End Sub
     
    Private Sub agis(ctrl As Control)
      Select Case TypeName(ctrl)
        Case "Label", "CommandButton"
          ctrl.Caption = "bonjour"
        Case "TextBox"
          ctrl.Text = "coucou"
        End Select
    End Sub
    Lance, clique sur Command1 et vois, analyse, comprends et utilise comme tu l'entends.
    Il va de soi que tu peux compléter par les Case que tu veux...

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Merci Bcp

    vous avez raison j'avai une erreur de type de control :s

    desolé

    ca marche tres bien merci beaucoup Vous m'avez vraiment sauvez la vie


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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/10/2007, 13h51
  2. Réponses: 5
    Dernier message: 16/05/2007, 13h43
  3. Convertir une chaine de caractère en tableau
    Par Mysti¢ dans le forum Général Python
    Réponses: 7
    Dernier message: 09/04/2007, 12h20
  4. Réponses: 6
    Dernier message: 14/06/2006, 15h27
  5. [XSL] Convertir une chaine de caractère
    Par bahet dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/04/2006, 10h24

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