Bonjour,
J'ai actuellement une base de données contenant plusieurs modules (~ 650 000). Chaque mois je reçois une liste de modules et je dois déterminer quels sont les nouveaux modules, donc ceux non-présent dans la BD.
Un module est déterminer par son Part_Number (pas forcément unique), et son Serial_Number (normalement unique).
Sur Access j'ai donc crée deux tables, une pour la BD Table_BD et une pour ma liste de modules (que j'appelerais Table_Liste)(~135000).
Ensuite, uniquement à l'aide de requêtes SQL, j'ai crée une table Table_Liste_Présents qui regroupe tout les modules déjà présents dans la BD. Puis j'applique tout simplement un NOT IN (du Serial_Number de la Table_Liste vis à vis du Serial_Number de la Table_Liste_Présents), pour créer la table Table_Liste_Nouveaux, regroupant donc tout les nouveaux modules.
La démarche n'est pas bien compliquée mais mon problème vient du fait que lors de la phase du NOT IN, Access met un temps fou pour "exécuter" la création de cette dernière, j'ai attendu plus de 2h et j'ai du redémarrer Access car l'exécution n'en finissais plus.
J'ai tenter la même méthode en ne gardant que 4000 modules dans ma Table_Liste et elle fonctionne parfaitement.
Comment puis je m'en sortir sachant que la méthode paraît bonne mais la charge de calculs ou de données doit faire planter Access :/
Il y a-t-il un autre moyen que le NOT IN en SQL (qui semble être le problème) pour ce type de séléction ? (Je précise que je ne travaille pas via VBA, ne connaissant rien de ce langage, mais via le Mode SQL d'Access)
Merci
Partager