2010-01-14 6 views
1

J'essaie d'utiliser Access pour m'aider à synthétiser des données scientifiques - température et humidité au cours des 30 dernières années.Utilisation de PivotTable dans Access 2007 avec des bases de données volumineuses (~ 200 Mo)

Les bases de données sont assez volumineuses - environ 200 mégaoctets chacune. L'idéal pour moi serait d'utiliser un tableau croisé dynamique pour effectuer les résumés pour moi, mais je rencontre le problème que chaque fois que j'essaie de modifier l'un des paramètres du tableau croisé dynamique, à savoir ligne, colonne, filtre ou ensemble de données, il passe environ une minute à y penser et parfois des accidents. Je voudrais être en mesure de spécifier exactement ce que je veux dans le tableau croisé dynamique, et puis lui dire de faire le traitement, plutôt que d'essayer de traiter après chaque étape.

Toute aide serait grandement appréciée.

Thankyou,

Alex

+0

Voulez-vous dire des requêtes de tableau croisé, et si ce n'est pas le cas, avez-vous considéré les requêtes de tableau croisé? – Fionnuala

+0

Géré pour s'en sortir - découvert qu'Excel 2007 a plus d'un million de lignes, ce qui était suffisant pour transférer une sélection de mes données vers Excel où les choses se passent beaucoup plus vite. J'ai également découvert que la fonction que je recherchais existe dans Excel - une case à cocher intitulée 'Mise à jour de la mise en page'. Il serait toujours agréable de savoir si une telle chose existe dans Access. – Alex

+0

Cela fait longtemps ... mais peut-être que je peux proposer une nouvelle solution: Lier la base de données Access avec Excel en utilisant ODBC ... vous pouvez créer des tableaux croisés dynamiques qui lisent les données des connexions ODBC. – Barranka

Répondre

2

Quelques considérations sur vos données:

  1. sont les tables indexées? Les index accélèrent l'exécution de la requête
  2. S'il existe plusieurs tables, avez-vous créé les relations appropriées?

Une base de données de 200 Mo ne devrait pas être difficile à gérer avec Access.

Maintenant, à propos de votre problème: Utilisez les requêtes Analyse croisée.

Exemple: Si votre table (tblCityTemp) a les données suivantes

city | obsDate | temp 
======================== 
MTY | 01/01/2010 | 25 
MTY | 01/02/2010 | 28 
MTY | 01/03/2010 | 30 
MX | 01/01/2010 | 15 
MX | 01/02/2010 | 17 

Vous pouvez utiliser la requête suivante:

TRANSFORM Avg(temp) AS avgTemp 
SELECT obsDate 
FROM tblCityTemp 
GROUP BY obsDate 
PIVOT city; 

La sortie est:

obsDate | MTY | MX 
======================== 
01/01/2010 | 25 | 15 
01/02/2010 | 28 | 17 
01/03/2010 | 30 | 

Les champs city et obsDate doivent être indexés.

Si vous souhaitez synthétiser plus de champs, créez une requête de tableau croisé pour chaque champ.

J'espère que cela vous aide.

Questions connexes