2012-03-22 91 views
0

我試圖從en excel文件讀取數據以將它們插入表中。 我有一個一般格式的專欄,它可以包含任何東西。測試validaty是由代碼完成的。我的問題是當我讀取整數/雙精度,例如23時,它被轉換爲1900-01-22,這在我的情況下不是邏輯。 的follwing是我的代碼從Excel在VBA中防止日期轉換

Dim rsExcel As Object 
Set cnnExcel = CreateObject("ADODB.Connection") 
Set rsExcel = CreateObject("ADODB.RecordSet") 
With cnnExcel 
    .Provider = "Microsoft.Jet.OLEDB.4.0" 
    .ConnectionString = "Data Source=D:\Query1.xls;Extended Properties=Excel 8.0" 
    .CursorLocation = 3 
    .Open 
End With  
rsExcel.Open "SELECT * FROM [Sheet 1$]", cnnExcel 
' to read the column 
rsExcel.Fields(3).Value 

連接,並讀取有什麼辦法防止這種自動轉換

謝謝您的幫助

+0

嘗試添加「數據源= D:\ Query1.xls;擴展屬性= Excel 8.0; IMEX = 1」 – 2012-03-22 10:04:51

+0

感謝您的回答,我實際上添加了該屬性但沒有幫助 – 2012-03-22 10:13:13

回答

0

使用Value2屬性,而不是Value嘗試。 Value2忽略貨幣和日期數據類型,即沒有任何格式。

+0

我不認爲有一個方法稱爲Value2! – 2012-03-22 09:45:00

+0

@ Bes-mM-bes是的,你是對的,我的錯誤。 「Value2」只存在於Excel中,而您正在使用工作表中的記錄集。出於興趣,你爲什麼要這樣做?對於我來說,沒有任何意義,當你只能閱讀工作表時,爲什麼要將工作表解析爲記錄集。 – markblandford 2012-03-22 09:50:00

+0

是的,你是對的!我需要的是閱讀excel文件不多不少,但如果我使用objWorksheet.Cells(1,1)。問題,這是如此緊密的列的順序,其中rsExcel.Fields(「columnName」) .Value直接進入「columnName」列的索引不成問題。 – 2012-03-22 10:02:41