首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在将数据导入Access时跳过Excel中的前几行?

如何在将数据导入Access时跳过Excel中的前几行?
EN

Stack Overflow用户
提问于 2019-06-23 22:42:36
回答 2查看 3.6K关注 0票数 1

我是Access 2016 VBA的新手,我一直在将Excel数据导入Access表。

但问题是,我需要跳过Excel工作表的前三行,以便我可以直接将Excel数据保存到Access表中。我怎样才能做到这一点呢?

下面是用于将Excel数据导入到表中的代码:

代码语言:javascript
复制
DoCmd.TransferSpreadsheet acImport, , Tbl, SelectedFls, True

还有一件事是不可能指定Excel单元格的范围,因为它是变化的。

EN

回答 2

Stack Overflow用户

发布于 2019-06-24 00:27:02

MS Access对无序数据集进行操作,因此,您不能依赖查询返回的记录顺序,也不能依赖从外部源(如电子表格或文本文件)将数据导入到表中的顺序。

如果使用order by子句严格定义了查询返回的记录的顺序,则只能依赖于这种顺序。

因此,如果您希望继续使用TransferSpreadsheet方法执行任务,则需要确定一种识别要省略的记录的方法,该方法独立于导入记录的顺序。这样,您就可以将所有记录导入到表中,然后运行一个delete查询,将记录标识逻辑实现为其选择标准。

我所能看到的实现这一点的唯一其他方法是使用ActiveX在MS Access中与Excel工作表交互,迭代工作表中的行,并填充记录集,同时省略遇到的前三行。

票数 0
EN

Stack Overflow用户

发布于 2019-06-25 02:59:03

如果您总是希望跳过前三行,您可以简单地将起始位置更改为DoCmd.TransferSpreadsheet acImport, , Tbl, SelectedFls, True, "A4",然后使用下面的代码接受所有输入,直到遇到空单元格。

代码语言:javascript
复制
DoCmd.TransferSpreadsheet acImport, , Tbl, SelectedFls, True, "A4"
'first line checks if this cell is empty or not
Do While xlc.Value <> ""
    'takes the value of the current cell
    WO_Num(lngColumn) = xlc.Offset(0, 0).Value
    'shifts the selected cells one row downwards
    Set xlc = xlc.Offset(1, 0)
    lngColumn= lngColumn + 1 
Loop
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56724943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档