Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/08/2011, 12h01   #1
Membre régulier
 
Homme Jacques
Inscription : août 2005
Messages : 441
Détails du profil
Informations personnelles :
Nom : Homme Jacques
Âge : 66
Localisation : France, Val d'Oise (Île de France)

Informations forums :
Inscription : août 2005
Messages : 441
Points : 77
Points : 77
Par défaut Boucle sur un contrôle d'un formulaire

Bonjour,

J’ai un formulaire en mode continu et je voudrais, lorsque je coche ma case à cocher qu'elle prenne la valeur true et toutes les autres la valeur false.

J’ai essayé plusieurs solutions et notamment avec le ctrl actif screen.activation mais je n’y arrive pas.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Cocher50_Click()
Dim ctl As Control
 
For Each ctl In Forms![frm Adresse Mail Expéditeurs].Controls
If TypeOf ctl Is CheckBox Then
      If Nz(ctl.Value) = True Then
        ctl.Value = True
      Else
        ctl.Value = False
     End If
End If
Next ctl
End Sub
Merci pour votre aide.

Salutations
jmde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 15h06   #2
Membre confirmé
 
Homme
Chercheur
Inscription : juin 2011
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Chercheur
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juin 2011
Messages : 150
Points : 231
Points : 231
Bonjour Jacques,

A ma connaissance, le code que vous utilisez ne va balayer que les contrôles de l'enregistrement en cours.

Vous pouvez utiliser (table et champ à vérifier) :

Code :
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
Dim db As DAO.Database
Dim rst As DAO.Recordset
 
 
Set db = CurrentDb
Set rst = db.OpenRecordset("tbl Mail Expéditeurs")
 
rst.MoveLast
 
rst.MoveFirst
 
rst.Edit
 
 
If Me.Selection = True Then
 
    Do Until rst.EOF
 
        rst.Edit
        rst!Selection = False
        rst.Update
        rst.MoveNext
    Loop
 
Me!Selection = True
 
End If
 
Me.Refresh
ou plus simple via requête codée :

Code :
1
2
3
4
5
6
If Me.Selection = True Then
Application.DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE [tbl Mail Expéditeurs] SET [tbl Mail Expéditeurs].Selection = False;"
Me.Selection = True
Application.DoCmd.SetWarnings True
End If
Bcdt
fbtsra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 16h25   #3
Membre régulier
 
Homme Jacques
Inscription : août 2005
Messages : 441
Détails du profil
Informations personnelles :
Nom : Homme Jacques
Âge : 66
Localisation : France, Val d'Oise (Île de France)

Informations forums :
Inscription : août 2005
Messages : 441
Points : 77
Points : 77
Bonjour fbtsra,

Merci pour la réponse, c'est ok ça marche.

Salutations
jmde est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h23.


 
 
 
 
Partenaires

Hébergement Web