2010-06-29 3 views
2

J'ai un fichier de base de données d'accès (test.mdb) et je dois écrire une procédure stockée qui sélectionnera certains enregistrements de tblTest en test.mdb et insérez-les dans tbsqlTest dans mon base de données SQL. ==> je besoin d'un SP comme ceci:sélectionnez à partir du fichier de base de données d'accès et insérer sql Database

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

ce que ce sera un événement d'une fois? ou est-ce que cela doit fonctionner tout le temps - comme dans un schéma de réplication dynamique? – Randy

+0

comme je l'ai dit que je dois créer une procédure stockée donc je dois courir cela comme une tâche planifiée – Asha

Répondre

1

Si vous souhaitez autoriser les requêtes distribuées ad hoc sur votre serveur SQL, vous pouvez utiliser OPENDATASOURCE pour récupérer les données d'un fichier 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 pouvez préférer:

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

Afin d'obtenir ceux à courir, je devais permettre des requêtes distribuées ad hoc comme celui-ci:

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

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

Modifier: 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 serveur lié est un moyen plus sûr d'y aller. Je ne sais pas.

-1

Si vous allez le faire régulièrement; 1.Créez Une requête append en vue de la conception qui fait ce que vous voulez faire, y compris les critères permettant de filtrer les résultats de la requête. 2. Affichez la requête en mode SQL. 3. Copiez le texte SQL 4. Créer un bouton sur votre formulaire. Allez dans la fenêtre des propriétés, sous l'onglet des événements, et sélectionnez l'événement "on click". Cliquez sur l'ellipse "..." et ouvrez le code.

Utilisez ce code:


Dim MyAppendString as String

MyAppendString = "(ligne de code 1)" & _ "(ligne de code 2)" & _ "(dernière ligne) ";

DoCmd.RunSQL MyAppendString

**************** fin du code

Chaque fois que vous cliquez sur le bouton, il exécutera la requête append, hardcoded avec les critères que vous avez sélectionnés.

Laissez-moi savoir si vous vous en tenez sur ces points. Je vais vous envoyer des instructions plus détaillées.

+0

il n'y a pas de forme ou code vb mon ami, je reçois un fichier mdb chaque mois et j'ai besoin sp à importer pour moi . – Asha

Questions connexes