2013-02-11 65 views
1

我需要將Excel文件中的某些信息導入到Access數據庫中,並且爲了執行此操作,我正在使用DAO。使用DAO和WHERE子句將Excel中的數據導入Access

用戶從系統獲取excel源文件,他不需要直接與它交互。這個源文件有10列,我需要從中只檢索某些記錄。

我使用這個檢索所有記錄:

Set destinationFile = CurrentDb 
Set dbtmp = OpenDatabase(sourceFile, False, True, "Excel 8.0;") 
DoEvents 
Set rs = dbtmp.OpenRecordset("SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536]") 

我的問題是當我只想檢索某些記錄使用WHERE子句。我想要應用該子句的字段的名稱是'Date(UCT)'(請記住,用戶從另一個系統獲取該源文件),我無法獲取WHERE子句來處理它。如果我在另一個字段上應用WHERE子句,其名稱沒有()或空格,那麼它就起作用。例如:

Set rs = dbtmp.OpenRecordset("SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536] WHERE Other = 12925") 

前面的指令將只檢索的地方領域的其他具有值的記錄數12925.

誰能告訴我怎樣才能達到同樣的效果,但有一個字段名稱有空格和括號,即'日期(UCT)'?

非常感謝。

奧克塔維奧

回答

0

嘗試在方括號包圍的字段名稱:

SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536] WHERE [Date (UCT)] = 12925

,或者如果它是一個日期,我們正在尋找:

SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536] WHERE [Date (UCT)] = #02/14/13#;

要使用日期文字您必須將其放在#個字符中,並以MM/DD/YY格式寫入日期,而不考慮o f你的機器上的任何區域設置

+0

嗨barrowc,我試過你的建議,但我沒有得到任何記錄。此外,字段[日期(UCT)]應該包含日期。我做了一個測試,將該字段中的所有值更改爲數字,但仍然得到一個空的rs。任何其他想法?謝謝! – Octavio 2013-02-12 14:19:52

+0

'= 12925'部分直接來自問題。我已經修改了我的答案以顯示日期比較 – barrowc 2013-02-12 22:14:43

相關問題