Création d'un état

cs_Marie15 Messages postés 10 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 31 août 2005 - 4 août 2005 à 10:22
jhary69 Messages postés 81 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 22 juillet 2007 - 4 août 2005 à 12:06
Bonjour,
J'ai un état qui contient 3 champs A,B et C.
Le contenu des champs B et C dépend de celui du champ A,ainsi pour chaque valeur du champ A je veux faire une requête qui me permettera d'obtenir les valeurs correspondantes dans les champs Bet C.
exemple:


select B,C from table where A=machin1
select B,C from table where A=machin2
select B,C from table where A=machin3
.
.
.
Ainsi je voudrais savoir comment faire pour afficher le contenu de ces champs dans mon état sachant qu' à priori le nombre d'enregistrements que peut contenir le champ A est variable(c-à-d lui aussi dépend d'une autre requête)?
Merci d'avance!

3 réponses

jhary69 Messages postés 81 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 22 juillet 2007
4 août 2005 à 10:32
salut,

Si tu bosses sur Access :

Tu fais une requete où tu visualises toutes tes données et c'est dans ton etat que tu crées tes regroupements.
Passe par l'assistant création d'etat : tu choisis ta requete, tu selectionnes les champs à afficher et ensuite tu lui dis d'ajouter un niveau de regroupement sur A.
Access va automatiquement crée sur ton etat une ligne pour chaque A puis va mettre en dessous chaque B et C de ce A là et ainsi de suite.

A+

Christophe.

PS: si c'est pas sur Access, precise avec quoi tu veux créer ton etat ...
0
cs_Marie15 Messages postés 10 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 31 août 2005
4 août 2005 à 11:44
Merci bien pour ton aide,mais est ce que tu sais comment écrire le code VBA qui va permettre de réccupérer une valeur du champ A (par exemple en utilisant le nom qui lui est associé dans l'état) et de renvoyer ensuite les valeurs correspondantes dans les champs B et C en utilisant toujours les noms qui leur sont associés dans l'état?
Si tu me répond à cette question,je te serai trés reconnaissante!
Merci encore,
0
jhary69 Messages postés 81 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 22 juillet 2007
4 août 2005 à 12:06
re,

Si tu veux le faire coté prog, il faut a ce moment là faire le regroupement dans la reqete et gerer les changements de valeur dans le regroupement par prog

Dim rs as recordset


Dim strValA as string ' (ou autre en fonction du type de A)


Dim strSQL as string


strSQL = "SELECT Table1.A, Table1.B, Table1.C FROM Table1 GROUP BY Table1.A, Table1.B, Table1.C ORDER BY Table1.A;"


Set rs = tonObjetDB.OpenRecordset(strSQL, dbOpenSnapshot)


do while not rs.eof


if strValA <> rs!A then
strValA=rs!A
' On passe ici quand A change de valeur donc tu geres l'affichage de ton regroupement A
else
' tant qu'on passe ici, A est le meme qu'au passage precedent donc tu peux afficher les B et C appartenant au meme A
end if


rs.MoveNext


loop

A+

Christophe.
0