Sub Tri_complexe()
Dim db As Database, Td As TableDef, Tp As TableDef, valeur As String, Sql As String, Sql2 As String, Sql3 As String, _
Ts As TableDef, I As Byte, J As Byte, K As Byte, champ As String, MT As Recordset, MB As Recordset, MS As Recordset, _
MI As Recordset, nb As Byte, pivot As String
Dim var1 As String, var2 As Byte, var3 As String, var4 As String, var5 As String, Nom As String
Set db = CurrentDb()
Set Tp = db.TableDefs("Variables")
'Je sélectionne les champs qui vont me servir à effectuer ma requête
Sql = "SELECT Variables.[Nom_var] FROM Variables WHERE [Variables].Pivot = False;"
Set MT = db.OpenRecordset(Sql)
MT.MoveLast
'Je sélectionne le pivot de ma requête
Sql2 = "SELECT Nom_var FROM Variables WHERE [Variables].Pivot = True;"
Set MB = db.OpenRecordset(Sql2)
MB.MoveLast
'je compte le nombre d'enregistrement de mes 2 réponses ( dans ce cas précis, I et J = 1
J = MT.RecordCount
I = MB.RecordCount
pivot = MB.Fields(I - 1)
nb = 0
If J = 1 Then
nb = 0
var1 = MT.Fields(nb)
db.Execute ("TRANSFORM Count(Réclamations.[" & var1 & "]) AS NBRéclas SELECT Réclamations.[" & var1 & "] FROM Réclamations GROUP BY Réclamations.[" & var1 & "] PIVOT [" & pivot & "];")
'Set MS = db.OpenRecordset(Sql3)
'MS.MoveLast
'var2 = MS.RecordCount - 1
GoTo ListeChamp
'Mon problème se situe à ce niveau ci car je ne sais pas comment afficher sous forme de table le résultat de ma requête
End If
'cette partie ajoute dans un table temporaire les nom des champs de la table que vient de me créer ma requête précédente
ListeChamp:
'je teste si la table temporaire existe déjà
bool = ExistTable2("ListeTemp")
If bool = True Then
Sql = "Drop Table ListeTemp;"
db.Execute (Sql)
End If
Sql = "Create Table ListeTemp (Nom_champ text);"
db.Execute (Sql)
Set MI = db.OpenRecordset("ListeTemp")
For K = 0 To MS.Fields.Count - 1
Nom = MS.Fields(K).Name
'j'ajoute dans la table temporaire les nom des champs renvoyés par ma requête SQL
MI.AddNew
MI("Nom_champ") = Nom
MI.Update
Debug.Print Nom
Next K
Debug.Print var1
Debug.Print pivot
Debug.Print J, I, K
Debug.Print var2
End Sub
Partager