Je travaille sur un exe pour exporter SQL vers Access, nous ne voulons pas utiliser DTS car nous avons plusieurs clients exportant chacun des vues différentes et le temps système pour installer et maintenir les paquets DTS est trop . * Edit: Ce processus est automatisé pour de nombreux clients tous les soirs, de sorte que l'ensemble du processus doit être lancé et contrôlé au sein d'un curseur dans une procédure stockée. C'est parce que les données doivent être filtrées par projet pour l'exportation.MS Access interop - Data Import
J'ai essayé plusieurs façons d'obtenir des données sur SQL dans Access et a été le plus prometteur en utilisant l'accès Interop et l'exécution d'un
doCmd.TransferDatabase(Access.AcDataTransferType.acImport...
J'ai frappé un problème où j'importe de vue, et le fonctionnement l'importation manuellement, il semble que la vue ne commence pas à retourner les données assez rapidement, donc l'accès affiche une boîte de dialogue MessageBox pour dire qu'il a expiré. Je pense que cela se passe aussi dans interop, mais parce qu'il est caché, la méthode ne revient jamais!
Y a-t-il un moyen pour moi d'empêcher ce message d'apparaître ou d'augmenter le délai d'expiration de la commande d'importation? Mon plan d'attaque actuel consiste à aplatir la vue dans une table, puis à l'importer à partir de cette table, puis à lâcher la table aplatie.
Heureux pour toutes les suggestions comment résoudre ce problème.
Edit:
Plus d'infos sur ce que je fais:
Nous avons plusieurs clients qui ont chacun un modèle de données standard. L'un des 'modules' est un exportateur d'accès (sproc). Il lit les vues à exporter à partir d'une table de paramètres puis les exporte. Les vues sont filtrées par projet et un fichier d'accès est créé pour chaque projet (chaque vue a un champ de projet)
Nous exécutons SQL 2005 et ne passons pas rapidement à SQL 2005, nous allons probablement passer à 2008 quelques mois.
On a alors une tâche d'exécution du module qui exécute le module configuré sur chaque base de données. De nombreux travaux d'importation/exportation/autres s'exécutent dans l'exécution de ce module, et l'exportateur d'accès doit pouvoir s'intégrer dans ce cadre. J'ai donc besoin d'un exportateur générique SQL -> Access qui peut être configuré via notre framework de paramètres. Actuellement, le sproc appelle un exe que j'ai écrit et mon exe ouvre un accès via interop, je sais que c'est mauvais pour un serveur MAIS l'exécution du module est écrite de sorte qu'un seul module s'exécute à la fois, donc la procédure ne jamais exécuter plus d'une instance à la fois.
Je viens d'éditer ma question, le processus doit être automatisé à partir d'une procédure stockée. Aussi VBA utilise l'accès interop, ce qui est très limité par rapport à outlook/excel il semble, donc tout ce que VBA fait, je devrais être capable de le faire via Com interop. Tableau intermédiaire que je peux exécuter avec nolock je suppose? –
Si par interop vous voulez dire ce que je pense que vous voulez dire, qui est essentiellement DoCmd appelant Access Querydefs, macros et éléments de menu, alors Access VBA fait beaucoup plus - je n'ai jamais trouvé DoCmd utile. Une autre proposition d'Iffy utilise un curseur en SQL pour exécuter des instances d'Access. Est-ce que je comprends cela correctement? – dkretz
Je vais vous aider à faire tout ce dont vous avez besoin, mais j'ai besoin de comprendre le contexte et les raisons des choses. – dkretz