【问题标题】:transferspreadsheet using a sql query使用 sql 查询传输电子表格
【发布时间】:2015-04-20 23:09:16
【问题描述】:

我有一个访问 vba 模块,它正在传输电子表格。

DoCmd.TransferSpreadsheet acImport, 8, "MyTable", "\\hello\world.xls", True, "a1:b1000"

我正在将访问数据库转换为sql,并将所有模块替换为sql queries.

这个 vba 代码的 sql 代码是什么? DoCmd.TransferSpreadsheet acImport, 8, "MyTable", "\\hello\world.xls", True, "a1:b1000"

感谢帮助,谢谢!

【问题讨论】:

  • 您是否要迁移到 SQL Server?还是您想继续使用 Access,但由于某种原因取消了 VBA?
  • 我正在将所有内容移至 SQL 服务器...
  • 当您评论其他人的答案时,您可以使用 csv 或 excel 数据源执行SELECT INTO。我在下面回复了更多信息
  • 所以我可以使用分布式查询从电子表格中导入数据... SELECT * INTO XLImport5 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\ test\xltest.xls', 'SELECT * FROM [Customers$]') 但是当我运行上述查询时,我收到一个错误:OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”尚未注册。所以它试图将 JET 用于电子表格?我会认为它是一个更原生的驱动程序......你知道我可以在不使用 JET 的情况下做到这一点吗?
  • 这是我正在阅读的文章,以验证我提供的信息是否正确。你可能会在那里找到答案support.microsoft.com/kb/321686

标签: sql vba


【解决方案1】:

很遗憾,没有直接等效的功能,但您可以采取以下几种方法:

您可以使用 SQL Server Integration Services 从电子表格中读取数据并将其推送到数据库中(不仅仅是 SQL Server)。

或者在 Access 中附加一个 SQL 表,继续使用 Access 作为 Excel 和 SQL Server 之间的数据桥梁。

【讨论】:

  • 感谢您的澄清...对于从 excel 导入数据,我可以使用以下 sql 查询:SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=C :\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]... 但我想知道的是传输电子表格对这些参数的作用...“a1:b1000”- - 这意味着选择顶部(1000)? DoCmd.TransferSpreadsheet acImport, 8: 数字 '8' 在这里表示什么?
  • @pradeep 数字 8 是电子表格类型的参数(excel 文档的格式)。 8 表示 excel 97-2000。参数值列表可以在这里找到msdn.microsoft.com/en-us/library/office/…
【解决方案2】:

虽然不完全相同,但您应该能够通过继续使用将电子表格传输到您的 Access 数据库中来非常轻松地完成相同的结果...然后您希望将其带到下一步并将该表传输到您的SQL Server 数据库如下:

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, strTableName, strFileName, True
DoCmd.TransferDatabase acExport, "ODBC Database", "ODBC;Driver={SQL Server};Server=YOUR-SERVER;Database=YOUR-DB;Trusted_Connection=Yes", acTable, strTableName, strTableName

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多