如何解决从 Excel 访问导入,DoCmd.TransferSpreadsheet acImport
我从 SAP-BI 服务器创建了一些数据,它向我发送了一个 Excel-2013 文件,然后我将此 excel 文件导入 Access-2013 以进行进一步处理。
我在 VBA 代码中找到了导入数据的字符串,它看起来像这样:
DoCmd.TransferSpreadsheet acImport,"Ttable",fileName,True,"abclist$"
access中的表名为Ttable excel电子表格命名为abclist
到目前为止,当前流程运行良好。然而,最近数据量增加到超过 104 万个原始数据(这似乎是 Excel 可以在一个电子表格中处理的最大原始数据数量),然后 SAP-BI 将剩余的数据导出到名为 abclist 的第二个电子表格中( 1)
如果有两个电子表格,我如何更改 VBA 代码以动态允许两个电子表格,如果 excelfile 中只有一个电子表格,它会继续工作?
解决方法
打开excel文件,将工作表名称作为数组导入并执行命令。
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
,
我想将excel数据导入到access中。 通常有两个电子表格“AAA”和“BBB” 这些电子表格将导入 Access 中的两个表(名称为 tAAA 和 tBBB)。
但有时如果数据量很大,会出现第3个电子表格名称“AAA(1)”
如果不存在,如何忽略导入 3:rd 电子表格名称 AAA(1)? 如果丢失,我会收到错误消息。
DoCmd.TransferSpreadsheet acImport,"tAAA",fileName,"AAA$"
DoCmd.TransferSpreadsheet acImport,"AAA(1)$"
DoCmd.TransferSpreadsheet acImport,"tBBBs","BBB$"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。