Sous-requête? C'est l'une de mes faiblesses quand il s'agit de l'accès, donc je ne peux pas vous aider là-bas. Je suggère de poster le SQL de la requête pour que les autres puissent y jeter un coup d'œil. Qu'arrive-t-il également lorsque vous exécutez la requête?
Ce qui suit est une requête que j'utilise pour me donner les coûts des dix dernières années pour une unité donnée. TRANSFORMER Somme (ServiceRecords.srTotalCost) AS AnnualCost SELECT ServiceRecords.srEquipmentID DE ServiceRecords GROUP BY ServiceRecords.srEquipmentID PIVOT "C" & DateDiff ("aaaa", [srServiceDate], Date()) Dans ("C9", "C8", "C7", "C6", "C5", "C4", "C3", "C2", "C1", "C0");
L'astuce est après le PIVOT. Comme je veux les dix dernières années de données, la partie "C" & DateDiff établit un appel de variable de chaîne C0 à C9. La partie après In indique la colonne dans laquelle insérer les choses.
Une autre requête qui extrait des données sur l'équipement appelle cette requête. Le terme que nous utilisons généralement pour de telles requêtes est empilé.
Si cela ne vous suffit pas, veuillez indiquer le type de données que vous essayez de créer un onglet croisé.
Fellow Access MVP, Allen Browne a une bonne page sur ce sujet. Crosstab query techniques
Voici un exemple. Selon les dates dans le filtre, il renvoie un nombre différent de colonnes. TRANSFORMER Somme (tblCharting.Hours) AS SumOfHours SELECT tblCharting.DateofService DE tblCharting RIGHT JOIN tlkpServiceLocations_SQL SUR tblCharting.ServiceLocation = tlkpServiceLocations_SQL.ID OU (((tblCharting.DateofService) Entre # 5/1/2009 # et # 5/5/2009 #)) GROUP BY tblCharting.DateofService, tblCharting.DateofService PIVOT tlkpServiceLocations_SQL.LocationName; Je cherche à toujours retourner le même nombre de colonnes, qui sont les lignes dans la table de recherche. – Robert