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 :

Légende des boutons à partir de données d'une table


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 24
    Points : 17
    Points
    17
    Par défaut Légende des boutons à partir de données d'une table
    Bonjour,
    Je récupère dans une table des données qui vont me permettre de mettre ma légende sur mon bouton. Par exemple:

    Je récupère :

    1 N10000
    2 N20000


    Et dans un formulaire j'ai un bouton qui s'appelle 1 et un autre 2.
    Et j'aimerai que mes boutons 1 et 2 ai comme légende respectivement N10000 et N20000. Donc ce qui lie mon bouton à ma ligne c'est l'id de la ligne.

    Donc j'aimerais savoir la syntaxe VBA ou la méthode pour attribuer la légende à mes boutons.

  2. #2
    Membre habitué Avatar de RGShoop
    Homme Profil pro
    Freelance
    Inscrit en
    Août 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 112
    Points : 154
    Points
    154
    Par défaut
    Bonjour,

    La synthaxe VBA est NomduBouton.caption donc en gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if me.ValeurDuBouton=1 then
    me.nomDuBouton.caption= "N10000" 
    elseif me.ValeurDuBouton=2 then 
    me.nomDuBouton.caption= "N20000"
    Else
    me.nomduBouton.caption="Non défini"
    end if
    C'est une solution,

    A+ RGShoop

  3. #3
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Voici une solution dynamique, à toi de l'adapter...

    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
    33
    Option Compare Database
    Option Explicit
    
    Private Sub Form_Load()
      GetButtonsCaption "cmd1;cmd2"
    End Sub
    
    Private Sub GetButtonsCaption(ByVal Buttons As String)
    Dim straButtons() As String
    Dim oDB As DAO.Database
    Dim oRS As DAO.Recordset
    Dim I As Integer
    Dim vntIDButton As Variant
    Dim strButtonCaption As String
    Dim oCTL As Control
    Dim F As Form
    
      Set F = Form
      Set oDB = CurrentDb
      straButtons = Split(Buttons, ";")
      For I = 0 To UBound(straButtons)
        vntIDButton = Mid(straButtons(I), Len("cmd") + 1)
        Set oRS = oDB.OpenRecordset("SELECT Legend FROM TBLLegendes _
        WHERE [Num] = " & vntIDButton & ";", dbOpenDynaset)
        strButtonCaption = oRS.Fields("Legend")
        oRS.Close
        Set oCTL = F.Controls(straButtons(I))
        oCTL.Caption = strButtonCaption
        Set oCTL = Nothing
      Next
      Set oRS = Nothing
      Set oDB = Nothing
    End Sub
    Argy

    P.S. On préfixe toujours le nom des contrôles. N'appelle jamais un contrôle 1 ou 2 ou je ne sais quoi encore...
    Tu peux lire ceci...
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Et avec un truc comme ceci c'est pas possible.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ReqNomPresse = "SELECT MACHINE,id FROM [Niveau Machine]"
    Set rsNomPresse = CurrentDb.OpenRecordset(ReqNomPresse, , dbOpenForwardOnly)
    i = 1
    While Not rsNomPresse.EOF
        nomBouton = "PRESSE" & Str(i)
        Me(nomBouton.Value).Caption = rsNomPresse.Fields(0)
        rsNomPresse.MoveNext
        i = i + 1
    Wend
    rsNomPresse.Close
    Il me semble avoir déjà vu une syntaxe de ce genre mais je n'en suis pas sure.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Merci Argy. J'ai utilisé ton code et il marche à merveille. Il me reste juste un prtit bug. Merci encore

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/04/2008, 16h47
  2. Enregistrer des données dans une table à partir du code
    Par Ragnarok85 dans le forum Access
    Réponses: 4
    Dernier message: 24/01/2007, 13h03
  3. Réponses: 11
    Dernier message: 25/07/2006, 21h46
  4. Réponses: 4
    Dernier message: 05/07/2006, 15h47
  5. Réponses: 2
    Dernier message: 15/06/2005, 17h32

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