Création d'un état

Signaler
Messages postés
10
Date d'inscription
mardi 12 juillet 2005
Statut
Membre
Dernière intervention
31 août 2005
-
Messages postés
81
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
22 juillet 2007
-
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

Messages postés
81
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
22 juillet 2007

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 ...
Messages postés
10
Date d'inscription
mardi 12 juillet 2005
Statut
Membre
Dernière intervention
31 août 2005

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,
Messages postés
81
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
22 juillet 2007

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.