cs_Marie15
Messages postés10Date d'inscriptionmardi 12 juillet 2005StatutMembreDernière intervention31 août 2005
-
4 août 2005 à 10:22
jhary69
Messages postés81Date d'inscriptionjeudi 29 juillet 2004StatutMembreDernière intervention22 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!
jhary69
Messages postés81Date d'inscriptionjeudi 29 juillet 2004StatutMembreDernière intervention22 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 ...
cs_Marie15
Messages postés10Date d'inscriptionmardi 12 juillet 2005StatutMembreDernière intervention31 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,
jhary69
Messages postés81Date d'inscriptionjeudi 29 juillet 2004StatutMembreDernière intervention22 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