2016-09-29 85 views
0

我導入Excel以下列方式使用VBA(DAO)文件導入Access中的Excel文件的行結束:獲取訪問VBA

Set db = CurrentDb  
query = "SELECT DISTINCT * INTO MyTable" _ 
      & " FROM [Excel 12.0 Xml;HDR=Yes;Database=" & filePath & "].[Sheet1$];" 
db.Execute (query) 

[Sheet1$]是這裏的關鍵詞。我的excel表頭從第3行開始。我想要做類似[Sheet1$A3:Lastline]的事情。

有沒有簡單的方法來獲得最後一行?或者我真的需要創建一個VBA Excel對象,打開文件並計數?

或者,我可以更改標題開始嗎?例如,通過使用自定義導入方案呢?

在此先感謝。

+0

爲什麼不只是硬編碼'[工作表Sheet1 $ A3:A1048576]'? – onedaywhen

回答

2

使用記錄考慮一個數查詢並連接導致表查詢:

Dim db As DAO.Database 
Dim rst As DAO.Recordset 
Dim query As String 

Set db = CurrentDb 
Set rst = db.OpenRecordset("SELECT Count(*) AS RowCount" _ 
    & " FROM [Excel 12.0 Xml;HDR=No;Database=" & filePath & "].[Sheet1$]") 

query = "SELECT DISTINCT * INTO MyTable" _ 
    & " FROM [Excel 12.0 Xml;HDR=Yes;" _ 
    & " Database=" & filePath & "].[Sheet1$A3:A" & rst!RowCount & "];" 

db.Execute (query) 

rst.Close 
Set rst= Nothing 
Set db = Nothing 
+0

就像一個魅力,非常感謝! – CoffeeCups