sélectionner à partir du file de database d'access et insert dans la database SQL

J'ai un file de database d'access (test.mdb) et j'ai besoin d'écrire une procédure stockée qui va sélectionner des loggings de tblTest dans test.mdb et les insert dans tbsqlTest dans ma database sql. ==> J'ai besoin d'un SP comme ceci:

BEGIN select * into tblTest from [test.mdb].[tblTest] where (my condition) END 

Si vous souhaitez autoriser les requêtes dissortingbuées ad hoc sur votre server SQL, vous pouvez utiliser OPENDATASOURCE pour récupérer datatables d'un file MDB.

 SELECT * INTO dbo.TestAccess FROM OPENDATASOURCE( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="\\server\share\somefolder\scratchpad.mdb"')...MyTable; 

Ou après avoir créé la table de destination, vous pourriez préférer:

 INSERT INTO dbo.TestAccess SELECT * FROM OPENDATASOURCE( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="\\server\share\somefolder\scratchpad.mdb"')...MyTable; 

Pour les faire fonctionner, j'ai dû activer les requêtes dissortingbuées ad hoc comme ceci:

 sp_configure 'show advanced options', 1; RECONFIGURE WITH OVERRIDE; GO sp_configure 'Ad Hoc Dissortingbuted Queries', 1; RECONFIGURE WITH OVERRIDE; GO 

J'ai trouvé des instructions de configuration sur TechNet , mais cela n'a pas fonctionné pour moi jusqu'à ce que j'ajoute WITH OVERRIDE.

Edit : J'ai ajouté une balise sql-server à votre question car je veux savoir si ma suggestion est dangereuse. Peut-être que la mise en place du MDB en tant que server lié est un moyen plus sûr d'y aller. Je ne sais pas.

Si vous allez le faire régulièrement; 1. Créez une requête Ajout dans la vue de design qui fait ce que vous voulez qu'elle fasse, y compris les critères par lesquels filterr les résultats de la requête. 2. Affichez la requête en mode SQL. 3. Copiez le text SQL 4. Créez un button sur votre formulaire. Allez dans la window des propriétés, sous l'onglet des events, et select l'événement "on click". Cliquez sur l'ellipse "…" et ouvrez le code.

Utilisez ce code:


Dim MyAppendSsortingng en tant que string

MyAppendSsortingng = "(Ligne de code 1)" & _ "(Ligne de code 2)" & _ "(Dernière ligne)";

docmd.runsql MyAppendSsortingng

**************** Fin du code

Chaque fois que vous click le button, il exécute la requête d'ajout, codée en dur avec les critères que vous avez sélectionnés.

Faites-moi savoir si vous tenez sur l'un de ces points. Je vais vous envoyer des instructions plus détaillées.