[VBA sous Access] Creer un groupe de controle

nicolas -  
latuque Messages postés 5 Statut Membre -
Bonjour,
J'essaye de raliser un petit calendrier en vb,
pour cela il faudrait que je puisse creer un groupe de control (nomcontrole(index)). Je sais le faire sous Vb6 mais la je n'y parvient pas, si quelqu'un pouvait m 'aider.Peut etre manque t 'il une reference a activer.

Merci d'avance

8 réponses

  1. blux Messages postés 5032 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    ACCESS ne permet pas d'avoir un nom identique pour plusieurs contrôles, mais moyennant un peu d'astuce on peut contourner :

    Tu crées un formulaire qui contient plusieurs objets (type étiquette par exemple) en les nommant avec un préfixe "Etiq_n" où n est le numéro du contrôle.

    Ensuite tu peux modifier les valeurs via une boucle avec indirection du nom de contrôle, exemple pour modifier la légende des étiquettes du formulaire 'formulaire2' (code mis dans un bouton) :
    Private Sub Commande2_Click()
    Dim Mon_Ctl As Control
    For Each Mon_Ctl In Forms!Formulaire2
        With Mon_Ctl
            If Left(.name, 5) = "Etiq_" Then
                Me(.name).Caption = "titi"
            End If
        End With
    Next
    End Sub

    Aura pour effet de mettre "titi" dans toutes les étiquettes dont le nom commence par "Etiq_"...

    Ca irait pour commencer ?
    3
    1. latuque Messages postés 5 Statut Membre
       
      bonjour,
      j'ai essaiyé ton code mais le bout : Me(.name).Caption = "titi" ne fonctionne pas je sai pas si c'est voulu mais de toute manière moi ce que je veux c'est pouvoir vérifier la propriété value de mon controle et il me la donne pas

      le controle en question est un checkbox et voici ce que je veux faire

      Dim Mon_Ctl As Control
      NbRegion = 1
      For Each Mon_Ctl In Forms!saisie
      With Mon_Ctl
      If Left(.Name, 1) = "c" Then
      If (.Value) = Checked Then
      nom = Str(NbRegion) & ","
      End If
      NbRegion = NbRegion + 1
      End If
      End With
      Next
      MsgBox (nom)
      ChoixRegion = nom

      choixregion est le nom de ma function et elle retourne une string qui est utilisé dans une requete dans un in
      0
  2. nicolas
     
    Quelqu'un peut juste me dire si c'est possible histoire d' arreter de perdre mon temps a chercher :(
    Merci
    0
  3. blux Messages postés 5032 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    il existe un contrôle de type calendrier sous ACCESS...

    Mais peut-être que tu veux le créer toi-même ?
    0
  4. Nicolas
     
    En effet j'ai vu la presence de ce controle.
    Mais je souhaiterais aussi si possible le creer moi -meme :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. blux Messages postés 5032 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Je ne connais pas VB, mais je pratique régulièrement VBA...

    Peux-tu me définir ce que tu entends par groupe de contrôle ? (comportement, syntaxe, but de la manoeuvre...)

    VBA propose les groupes d'options (boutons radio, cases à cocher, boutons bascule...)...
    0
  7. Nicolas
     
    Un groupe de controle est un ensembe de controles ayant les memes propriétées (meme nom) et etant indexé ( comme si tout ces controles etaient dans un tableau).

    Ex: Si je souhaite remplir 5 textbox avec la meme valeur:

    for i=0 to 4
    matextbox(i)=valeur
    next i

    Si je n'est pas été assez clair n'hesite pas a me redemander
    merci :)
    0
  8. Nicolas
     
    Merci de ton attention!
    ca me parait etre un bon debut, je vais essayer de voir comment pouvoir remplir la valeur des différents boutons avec cette methode :)
    0
  9. latuque Messages postés 5 Statut Membre
     
    bonjour, j'ai également essayé ceci comme code mais il m'indique incompatibilité de type
    Private Function ChoixRegion() As String
        Dim NbRegion As Integer
        Dim Mon_Cb As CheckBox
        NbRegion = 1
        For Each Mon_Cb In Forms
            With Mon_Cb
                'If Left(.Name, 1) = "c" Then
                    If .Value = Checked Then
                        nom = Str(NbRegion) & ","
                    End If
                NbRegion = NbRegion + 1
                'End If
            End With
        Next
        MsgBox (nom)
        ChoixRegion = nom
    End Function
    

    eexistil un moyen de le faire
    0