首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Excel导入Access,DoCmd.TransferSpreadsheet acImport

从Excel导入Access,DoCmd.TransferSpreadsheet acImport
EN

Stack Overflow用户
提问于 2021-02-12 19:40:48
回答 2查看 1.1K关注 0票数 0

我从SAP服务器上创建了一些数据,它发送给我一个Excel-2013文件,然后我将这个Excel文件导入Access-2013以供进一步处理。

我在导入数据的VBA代码中找到了字符串,如下所示:

DoCmd.TransferSpreadsheet acImport,"Ttable",fileName,True,"abclist$"

access中的表名为Ttable,excel电子表格命名为abclist。

到目前为止,这一进程一直运作良好。然而,最近数据量已经增加到超过104万个raws (这似乎是raws excel在一个电子表格中可以处理的最大数量),然后SAP-BI将其余的数据导出到第二个电子表格中,该电子表格名为abclist(1)。

如果有两个电子表格,我如何更改VBA代码来动态地允许这两个电子表格,如果超文件中只有一个电子表格,它将继续工作?

EN

回答 2

Stack Overflow用户

发布于 2021-02-12 23:46:23

打开excel文件,将工作表名称作为数组导入并执行命令。

代码语言:javascript
复制
Dim App As Object
Dim vFn() As Variant, v As Variant
Dim Wb As Object, Ws As Object
Dim n As Integer

Set App = CreateObject("Excel.Application")
Set Wb = App.workbooks.Open(FileName)
For Each Ws In Wb.worksheets
    n = n + 1
    ReDim Preserve vFn(1 To n)
    vFn(n) = Ws.Name & "$"
Next Ws
Wb.Close (0)
Set Wb = Nothing
App.Quit
Set App = Nothing

For Each v In vFn
    DoCmd.TransferSpreadsheet acImport, , "Ttable", FileName, True, v
Next v
票数 1
EN

Stack Overflow用户

发布于 2021-02-15 09:17:42

我想将excel数据导入access。通常有两个电子表格"AAA“和BBB,这些电子表格将在Access中的两个表(名称为tAAA和tBBB)中被移植。

但有时,如果数据量很大,就会有一个3:rd电子表格名为"AAA(1)“。

如果不存在,如何忽略导入3:rd电子表格名称AAA(1)?如果它丢失了,我会收到错误消息。

代码语言:javascript
复制
DoCmd.TransferSpreadsheet acImport, , "tAAA", fileName, True, "AAA$"
DoCmd.TransferSpreadsheet acImport, , "tAAA", fileName, True, "AAA(1)$"
DoCmd.TransferSpreadsheet acImport, , "tBBBs", fileName, True, "BBB$"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66178094

复制
相关文章

相似问题

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