Salut

Alors voilà mon problème, j'ai créé une requête d'analyse croisée en SQL dans mon code VB, je sais que cette requête fonctionne, mais après je ne sais pas comment l'afficher.

La requête est effectuée à l'aide de différente variables (2 pour l'instant), saisie par l'utilisateur à travers un formulaire.

De ce formulaire je récupère les variables saisies par l'utilisateur et je les insère dans ma requête.

Je souhaite afficher le résultat dans un table, seulement je ne peux pas la créer moi même , en choisissant moi même les noms des champs puisque ils sont fonction des choix de l'utilisateur.

Je travaille sous Access 2003, et mes connaissances en VB sont assez limitées.

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
J'espère que vous pourrez m'aider à résoudre mon problème.

Bonne journée!