2010-01-14 5 views
0

J'ai un formulaire qui affiche des informations sur un projet qui a 10 cases à cocher. Les cases à cocher sont nommées "chkAudience1", "chkAudience2", etc à travers "chkAudience10". Toute combinaison de boîtes peut être vérifiée de rien à tout et n'importe quoi entre les deux.Créer un nom de champ à partir d'un jeu d'enregistrements

Ensuite, j'ai une table qui lie les cases à cocher au projet. Cette table contient un champ appelé ProjectID et un champ appelé AudienceID (les deux champs sont définis en nombre). Cela me permet de sélectionner tous les enregistrements d'audience pour un projet.

Le problème est que je veux parcourir en boucle les enregistrements d'un projet et cocher les cases qui correspondent à un enregistrement dans la table. Mon code actuel ressemble à:

sqlStmt = "SELECT * FROM ProjectAudience WHERE ProjectID = " & Me.ProjectID.Value 
Set rs = cn.Execute(sqlStmt) 
While Not rs.EOF 
    'Me.chkAudience1.Value = -1 
    x = "Me.chkAudience" & rs(1).Value 
    x.Value = -1 
    rs.MoveNext 
Wend 

x seront réglés sur « Me.checkAudience1 », mais la ligne suivante produit une erreur « objet requis ». Comment puis-je créer un nom de champ en fonction des données de jeu d'enregistrements, puis utiliser ce nom de champ pour définir une valeur. (Ceci est fait est Microsoft Access 2003)

+0

Qu'est-ce que c'est «x»? Il n'y a pas de déclaration de variable dans votre code - l'avez-vous oublié? Si ce n'est pas le cas, vous devez vraiment ajouter OPTION EXPLICIT à vos modules afin de ne pas créer de variables orphelines par accident. –

Répondre

1

La boucle est correcte en:

Bien que non rs.EOF
        « Me.chkAudience1.Value = -1
        Me.Controls ("chkAudience" & (rs (1) .Value)). Value = -1
        rs.MoveNext
Wend

La clé est le Me.Controls().

+0

Les propriétés .Value sont redondantes, car il s'agit de la propriété par défaut d'un champ de jeu d'enregistrements et d'un contrôle sur un formulaire. Par conséquent, "Me.Controls (" chkAudience "& (rs (1))) = -1" est exactement le même. –

Questions connexes