【问题标题】:Get end of rows of an excel file within access vba在access vba中获取excel文件的行尾
【发布时间】:2016-09-29 12:07:14
【问题描述】:

我正在通过以下方式使用 vba (dao) 将 excel 文件导入访问:

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] 的事情。

有没有简单的方法来获取lastline?还是我真的需要创建一个 VBA Excel 对象,打开文件并计数?

或者,我可以更改标题开始吗?例如,改用自定义导入方案?

提前致谢。

【问题讨论】:

  • 为什么不直接硬编码[Sheet1$A3:A1048576]

标签: excel vba ms-access dao


【解决方案1】:

考虑使用记录集的计数查询并在生成表查询中连接结果:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多