2012-05-02 37 views
1

我下面幾乎是這個MSDN頁面上的例子:數據,SQL和子功能服務器查詢

http://code.msdn.microsoft.com/Imoprt-Data-from-Excel-to-705ecfcd

1例外。相反,像

"Select * FROM [Sheet1$]" 

一個簡單的查詢我想要做一些更復雜,如:

"Select *, SUBSTRING(COLUMN_A, 1, 5) as STRIPPED_COL_A FROM [Sheet1$]" 

,但我發現IErrorInfo.GetDescription失敗E_FAIL無用的異常消息」( 0X80004005)。」

如果我必須猜測,問題是由於在Excel或OleDB中使用了不受支持的SUBSTRING函數。那麼如何解決這個問題。

回答

5

在他們的示例中,您正在使用Microsoft.ACE.OLEDB驅動程序通過Provider=Microsoft.ACE.OLEDB.12.0Provider=Microsoft.Jet.OLEDB.4.0加載Excel表,因此您將不得不使用MS Access中可用的查詢格式和功能。

Select *, MID(Column_A, <<start>>, <<length>>) as STRIPPED_COL_A from [Sheet1$] 

牢記其他特點,如<<start>>不是零索引,而是以1爲字符串中的第一個字符開始。