none
在sql2000 Query Analyzer 查詢excel 檔案的資料 RRS feed

  • 問題

  • client 的作業系統是 Windows xp sp2
    安裝 sql2000 client App
    office2003 excel

    server 的 os 是 windows2003 sp1
    sql2000  server
    未安裝office2003 excel

    我在Query Analyzer 查詢excel 檔案的資料,該檔案並未設定密碼,
    下面這兩個是我測試的查詢語法



    SELECT *
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
                          'Data Source="C:\Documents and Settings\My Documents\test.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...mysheet20070419$

    ERROR : Server: Msg 7302, Level 16, State 1, Line 2
    Could not create an instance of OLE DB provider 'Microsoft.Jet.OLEDB.4.0'.


    GO

    SELECT a.* 
    FROM OPENROWSET('MSDASQL','Driver={Microsoft Excel Driver (*.xls)};DBQ=C:\Documents and Settings\My Documents\test.xls'  ,
                         'SELECT * FROM  [mysheet20070419$] ') AS a


    ERROR: Server: Msg 7399, Level 16, State 1, Line 1
    OLE DB provider 'MSDASQL' reported an error. 
    [OLE/DB provider returned message: [Microsoft][ODBC Excel Driver] '(unknown)' is not a valid path.  Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.]


    嚐試兩個不同的語法都沒辦法查到EXCEL內的資料,請問 是哪邊有問題呢??
    請各位幫忙 謝謝
    2007年4月24日 上午 08:30

解答

  • 我在 SQL Server 2005,以下的語法是可查的:

     

    Query Excel table from SQL Server 2005, T-SQL Sample

    SELECT * FROM OPENDATASOURCE(
    'Microsoft.Jet.OLEDB.4.0',
    'Data Source=C:\Users\Jeff\Desktop\Sample.xls; User ID=Admin; Password=; Extended Properties="Excel 8.0";')...[NamedTable$]

     

    1. 你的表格沒有加上 "[" 和 "]"

    2. 你的 SQL Server 有沒有更新到 Service Pack 4 or 更新版本 ?

    3. MDAC 有沒有更新到最新版本 ? (安裝 SQL Server 2000 Service Pack 4 就會升到 2.8 了)

     

    OPENROWSET 則是下列語法,一樣可用:

     

    Query Excel table from SQL Server 2005, T-SQL Sample (OPENROWSET version)

    SELECT * FROM OPENROWSET(
    'Microsoft.Jet.OLEDB.4.0',
    'Excel 8.0;Database=C:\Users\Jeff\Desktop\Sample.xls;',
    'SELECT * FROM [NamedTable$]') AS t

     

    2007年4月24日 上午 08:44
    版主
  • 請您參考以下文件說明:
    如何搭配使用 Excel 以及 SQL Server 連結伺服器和分散式查詢
    http://support.microsoft.com/?id=306397

     

    -------------------------------------------
    林金花
    微軟技術支援中心

     

     

    2007年4月24日 上午 10:09

所有回覆

  • 我在 SQL Server 2005,以下的語法是可查的:

     

    Query Excel table from SQL Server 2005, T-SQL Sample

    SELECT * FROM OPENDATASOURCE(
    'Microsoft.Jet.OLEDB.4.0',
    'Data Source=C:\Users\Jeff\Desktop\Sample.xls; User ID=Admin; Password=; Extended Properties="Excel 8.0";')...[NamedTable$]

     

    1. 你的表格沒有加上 "[" 和 "]"

    2. 你的 SQL Server 有沒有更新到 Service Pack 4 or 更新版本 ?

    3. MDAC 有沒有更新到最新版本 ? (安裝 SQL Server 2000 Service Pack 4 就會升到 2.8 了)

     

    OPENROWSET 則是下列語法,一樣可用:

     

    Query Excel table from SQL Server 2005, T-SQL Sample (OPENROWSET version)

    SELECT * FROM OPENROWSET(
    'Microsoft.Jet.OLEDB.4.0',
    'Excel 8.0;Database=C:\Users\Jeff\Desktop\Sample.xls;',
    'SELECT * FROM [NamedTable$]') AS t

     

    2007年4月24日 上午 08:44
    版主
  • 請您參考以下文件說明:
    如何搭配使用 Excel 以及 SQL Server 連結伺服器和分散式查詢
    http://support.microsoft.com/?id=306397

     

    -------------------------------------------
    林金花
    微軟技術支援中心

     

     

    2007年4月24日 上午 10:09
  • 感謝兩位的回覆,已經可以讀取EXCEL了 ^^

    感恩

    2007年5月3日 上午 12:57