[VBA sous Access] Creer un groupe de controle

Fermé
nicolas - 24 févr. 2006 à 09:41
latuque Messages postés 4 Date d'inscription jeudi 31 juillet 2008 Statut Membre Dernière intervention 2 mars 2011 - 4 août 2008 à 20:20
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
A voir également:

8 réponses

blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
24 févr. 2006 à 14:32
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
latuque Messages postés 4 Date d'inscription jeudi 31 juillet 2008 Statut Membre Dernière intervention 2 mars 2011
4 août 2008 à 17:29
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
Quelqu'un peut juste me dire si c'est possible histoire d' arreter de perdre mon temps a chercher :(
Merci
0
blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
24 févr. 2006 à 13:07
Salut,

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

Mais peut-être que tu veux le créer toi-même ?
0
En effet j'ai vu la presence de ce controle.
Mais je souhaiterais aussi si possible le creer moi -meme :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
24 févr. 2006 à 13:28
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
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
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
latuque Messages postés 4 Date d'inscription jeudi 31 juillet 2008 Statut Membre Dernière intervention 2 mars 2011
4 août 2008 à 20:20
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