Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Analyse croisée : récupérer toutes les infos des cases

5 réponses
Avatar
AlainD
Bonjour,
J'aimerais récupérer l'information qui se trouvent sur une ligne dans une
analyse croisée.
Par exemple si après "croisement" l'outil N°7 est associé pour un certain
nombre de colonnes ( jamais le même ! il augmente au fil des interventions) à
uto-moto-bateau, qui sont 3 infos textes disséminées dans les colonnes, mais
sur la même ligne de l'ouil n°7, j'aimerais pouvoir récupérer toutes les
infos. ( je sais pour la première (First) ou la dernière) de façon à
fabriquer une chaine de caractères du style "outil n°7 utilisé auto, moto et
bateau"
Avez-vous une idée ?
Merci d'avance

5 réponses

Avatar
Eric
Bonsoir,

Une procédure comme ça pourrait te servir ? Elle te retournerait tous
les outils et avec quoi ils sont utilisés. Il te reste à modifier pour
avoir que la ligne qui te convient.

Sub zz()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("NomRqAnalyseCroisée")
While Not rs.EOF
chaine = rs(0) & " utilisé avec "
For i = 1 To rs.Fields.Count - 1
If rs(i) <> "" Then ' ou rs(i) <> 0
chaine = chaine & rs(i).Name & "-"
End If
Next i
Debug.Print Left(chaine, Len(chaine) - 1)
rs.MoveNext
chaine = ""
Wend
Set rs = Nothing
End Sub

Bonjour,
J'aimerais récupérer l'information qui se trouvent sur une ligne dans une
analyse croisée.
Par exemple si après "croisement" l'outil N°7 est associé pour un certain
nombre de colonnes ( jamais le même ! il augmente au fil des interventions) à
uto-moto-bateau, qui sont 3 infos textes disséminées dans les colonnes, mais
sur la même ligne de l'ouil n°7, j'aimerais pouvoir récupérer toutes les
infos. ( je sais pour la première (First) ou la dernière) de façon à
fabriquer une chaine de caractères du style "outil n°7 utilisé auto, moto et
bateau"
Avez-vous une idée ?
Merci d'avance


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
.../...
Je suis parti du principe que auto, moto, bateau sont les noms des
colonnes de la requête car à l'intérieur du tableau il s'agit de valeurs
numériques sauf erreur de ma part.
De même, tu dois pouvoir transformer cette sub en fonction pour pouvoir
ensuite affecter le résultat à un controle ...


Bonsoir,

Une procédure comme ça pourrait te servir ? Elle te retournerait tous
les outils et avec quoi ils sont utilisés. Il te reste à modifier pour
avoir que la ligne qui te convient.

Sub zz()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("NomRqAnalyseCroisée")
While Not rs.EOF
chaine = rs(0) & " utilisé avec "
For i = 1 To rs.Fields.Count - 1
If rs(i) <> "" Then ' ou rs(i) <> 0
chaine = chaine & rs(i).Name & "-"
End If
Next i
Debug.Print Left(chaine, Len(chaine) - 1)
rs.MoveNext
chaine = ""
Wend
Set rs = Nothing
End Sub




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
AlainD
Bonsoir,
Merci, ça marche impeccablement. Je suis revenu au modèle standard où ce
sont les noms des colonnes qui sont utilisées, car en mettant par exemple la
reference associée à "auto-moto-bateau etc ...." en tête de colonne, rien ne
s'oppose à ce que ce soit les mots "auto", "moto", etc... qui soient dans les
cases. Mais peu importe. C'est tout ce qu'il me fallait . Je ne suis pas à
l'aise avec les analyses croisées, et je ne voyais pas comment faire . J'ai
juste dû masquer "Dim rs As DAO.Recordset" refusé par mon access 2000, mais
sinon ça tourne. Voilà ma nuit sauvée.
Encore merci
Alain


..../...
Je suis parti du principe que auto, moto, bateau sont les noms des
colonnes de la requête car à l'intérieur du tableau il s'agit de valeurs
numériques sauf erreur de ma part.
De même, tu dois pouvoir transformer cette sub en fonction pour pouvoir
ensuite affecter le résultat à un controle ...


Bonsoir,

Une procédure comme ça pourrait te servir ? Elle te retournerait tous
les outils et avec quoi ils sont utilisés. Il te reste à modifier pour
avoir que la ligne qui te convient.

Sub zz()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("NomRqAnalyseCroisée")
While Not rs.EOF
chaine = rs(0) & " utilisé avec "
For i = 1 To rs.Fields.Count - 1
If rs(i) <> "" Then ' ou rs(i) <> 0
chaine = chaine & rs(i).Name & "-"
End If
Next i
Debug.Print Left(chaine, Len(chaine) - 1)
rs.MoveNext
chaine = ""
Wend
Set rs = Nothing
End Sub




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Eric
re,

Dim rs as DAO.Recordset implique que, dans les références (Menu Outils
interface VBA), la librairie Microsft DAO 3.xx Object Library soit
chargée. De plus il manque dans la Sub les déclarations de i et de
chaine. Donc tu peux ajouter
Dim i as Integer, Chaine as String
(Je tourne aussi en Access2k)

Bonsoir,
Merci, ça marche impeccablement. Je suis revenu au modèle standard où ce
sont les noms des colonnes qui sont utilisées, car en mettant par exemple la
reference associée à "auto-moto-bateau etc ...." en tête de colonne, rien ne
s'oppose à ce que ce soit les mots "auto", "moto", etc... qui soient dans les
cases. Mais peu importe. C'est tout ce qu'il me fallait . Je ne suis pas à
l'aise avec les analyses croisées, et je ne voyais pas comment faire . J'ai
juste dû masquer "Dim rs As DAO.Recordset" refusé par mon access 2000, mais
sinon ça tourne. Voilà ma nuit sauvée.
Encore merci
Alain




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
AlainD
Oui, merci, j'ai rectifié.
J'en ai fait une fonction que je peux utiliser dans un état, qui -pour
tout-dire est du code html composant une planche contact qui s'ouvre une
fois exportée.
Il me fallait renseigner chaque ilustration par une info-bulle, c'est fait .
Encore merci.
Je ne sais pourquoi, j'imaginais les RAC comme différentes... !

re,

Dim rs as DAO.Recordset implique que, dans les références (Menu Outils
interface VBA), la librairie Microsft DAO 3.xx Object Library soit
chargée. De plus il manque dans la Sub les déclarations de i et de
chaine. Donc tu peux ajouter
Dim i as Integer, Chaine as String
(Je tourne aussi en Access2k)