2013-06-27 1 views
0

Je tente de me connecter à une base de données Access 2000 à partir de SQL Server Management Studio. Ma requête en cours est:Utilisation de OpenRowSet pour se connecter à une base de données Access 2000 à partir de SQL Server Management Studio

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

Select FName 
From 
OpenRowSet('Microsoft.ACE.OLEDB.12.0', 
'\\bespin\Files\GDrive\CPros\Databases\Client.mdb'; 
'admin';'', 
Residents) 

A l'origine, je tentais d'utiliser Microsoft.Jet.OLEDB.4.0 comme fournisseur. Comme les deux serveurs fonctionnent sur des systèmes d'exploitation 64 bits, j'ai dû passer à Microsoft.ACE.OLEDB.12.0.

L'exécution de cette requête renvoie l'erreur suivante:

OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "The Microsoft Access database engine cannot open or write to the file '\\bespin\Files\GDrive\CPros\Databases\Client.mdb'. It is already opened exclusively by another user, or you need permission to view and write its data.". 
Msg 7303, Level 16, State 1, Line 2 
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)". 

J'ai vérifié, personne d'autre a la base de données ouverte. Si je tente de changer le nom d'utilisateur et mot de passe quelque chose avec un accès administratif à la base de données, elle renvoie la place erreur suivant:

OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "Not a valid account name or password.". 
Msg 7399, Level 16, State 1, Line 2 
The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" reported an error. Authentication failed. 
Msg 7303, Level 16, State 1, Line 2 
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)". 

En fin de compte, ce que je dois arriver est d'être en mesure d'exécuter une série de INSERT/Des instructions UPDATE pour maintenir la base de données à jour jusqu'à ce que nous la remplacions plus tard dans notre processus de conversion. Que dois-je modifier pour que ces requêtes s'exécutent correctement?

Répondre

0

Votre chemin spécifié est erroné.

Il devrait être comme exemple suivant pour une feuille Excel:

select * from OPENROWSET(  
    'Microsoft.ACE.OLEDB.12.0','Excel 8.0;Database=D:\Band.Xlsx',   
    'SELECT * FROM [SheetName$]'); 
0

Essayez cela, s'il vous plaît prendre note de l'administrateur de l'utilisateur, il est sensible à la casse

Select FName 
From 
OpenRowSet('Microsoft.ACE.OLEDB.12.0', 
'\\bespin\Files\GDrive\CPros\Databases\Client.mdb'; 
'Admin';'', 
Residents) 
Questions connexes