Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 6 von 6
  1. #1
    Zaungast
    Registriert seit
    27.09.2007
    Beiträge
    14

    Standard Probleme mit OPENROWSET

    Hallo,

    ich möchte eine XLS 2007 Datei per T-SQL (MS SQL Server 2005) öffnen. Dazu benutze ich folgendes Statement

    SELECT * FROM OPENROWSET(
    'Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0;Database=D:\Temp\test.xlsx',
    'SELECT * FROM [Tabelle1$A1:B3]');

    Dabei bekomme ich folgende Fehlermeldungen:

    1.) Der OLE DB-Anbieter "Microsoft.ACE.OLEDB.12.0" für den Verbindungsserver "(null)" hat die Meldung "Das Microsoft Office Access-Datenbankmodul kann die Datei '' nicht öffnen und nicht in die Datei schreiben. Sie ist bereits von einem anderen Benutzer exklusiv geöffnet, oder Sie benötigen eine Berechtigung, um die Daten anzeigen und schreiben zu können." zurückgeben.

    2.) Meldung 7303, Ebene 16, Status 1, Zeile 1
    Das Datenquellenobjekt des OLE DB-Anbieters "Microsoft.ACE.OLEDB.12.0" für den Verbindungsserver "(null)" kann nicht initialisiert werden.

    Kann mir jemand von euch weiterhelfen? Mir gehen langsam die Ideen aus...

    Besten dank! Ciao

  2. #2
    Stammgast
    Registriert seit
    26.03.2004
    Ort
    Hannover, in einem kleinen Vorort
    Beiträge
    2.395

    Standard

    Wer suchet, der findet ... sogar hier in diesem Forum

    http://entwickler-forum.de/showthrea...ght=openrowset
    http://entwickler-forum.de/showthrea...ght=openrowset
    http://entwickler-forum.de/showthrea...ght=openrowset
    http://entwickler-forum.de/showthrea...ght=openrowset

    Einen OLEDEB Treiber namens ACE gibt es nicht, nur einen namens JET für die JET-Engine
    =>
    'Microsoft.Jet.OLEDB.4.0'

    Olaf

  3. #3
    Zaungast
    Registriert seit
    27.09.2007
    Beiträge
    14

    Standard

    Danke für die Antwort. Aber mit diesem Treiber bekomme ich die gleiche Meldung wie oben beschrieben :-(

    René

  4. #4
    Stammgast
    Registriert seit
    26.03.2004
    Ort
    Hannover, in einem kleinen Vorort
    Beiträge
    2.395

    Standard

    Dann probieres es mal mit einem der Beispiele von oben (OLEDB Provider für ODBC):

    SELECT *
    FROM OPENROWSET('MSDASQL', 'Driver=Microsoft Excel-Treiber (*.xls);DBQ=C:\test.xls', 'SELECT * FROM [Tabelle1$]')

    Klappt bei mir problemlos.

    Nur daran denken: Der Laufwerksbuchstabe ist aus Sicht des SQL Servers und der muss auch Zugriffsrechte darauf haben.

    Olaf

  5. #5
    Zaungast
    Registriert seit
    27.09.2007
    Beiträge
    14

    Standard

    Hab folgenden regedit Schlüssel gesetzt:
    HKLM\SOFTWARE\Microsoft\Microsoft Sql Server\
    Interner Instanz-Name\Providers\Microsoft.Jet.OLEDB.4.0

    DisallowAdHocAccess = 0

    Dann geht es auch mit meinem ersten Statement :-)

    Dank!

  6. #6
    Stammgast
    Registriert seit
    26.03.2004
    Ort
    Hannover, in einem kleinen Vorort
    Beiträge
    2.395

    Standard

    Ja, beim SQL 2005 muss das explizit aktiviert werden, deshalb gibt es unter

    Oberflächenkonfiguration => ... Features => Ad-hoc-Remoteabfragen

    das Häkchen für "Unterstützung von OPENROWSET und OPENDATASOURCE aktivieren"; eben jener Registry-Key

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •