将 Excel 工作表移至 Microsoft 访问的 Excel-VBA 代码?

Posted

技术标签:

【中文标题】将 Excel 工作表移至 Microsoft 访问的 Excel-VBA 代码?【英文标题】:Excel-VBA code that moves Excel sheets to Microsoft access? 【发布时间】:2013-06-13 22:13:21 【问题描述】:

我想知道是否可以从 Excel 工作表中移动数据并将其存储在 Microsoft Access 数据库中。我有很多格式相似的数据表,我想要一个表来访问它们中的每一个。我也想从数据库中检索数据,但我认为我应该先学习如何存储数据。我找到了这段代码,我不知道是否有人可以解释它是如何工作的(或者它是否与我正在寻找的完全不同)?我用 vba 读过 excel 中的电源编程,所以我知道基本的 vba,但不知道这个数据库内容(可能更多)。

Public Sub DoTrans()



  Set cn = CreateObject("ADODB.Connection")
  dbPath = Application.ActiveWorkbook.Path & "\FDData.mdb"
  dbWb = Application.ActiveWorkbook.FullName
  dbWs = Application.ActiveSheet.Name
  scn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath
  dsh = "[" & Application.ActiveSheet.Name & "$]"
  cn.Open scn

  ssql = "INSERT INTO fdFolio ([fdName], [fdOne], [fdTwo]) "
  ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh


  cn.Execute ssql


End Sub

此外,如果您有任何涵盖此/链接的书籍推荐,我们也将不胜感激。

【问题讨论】:

【参考方案1】:

我确信它可以在 Excel 中完成,但我不知道它是否在我的脑海中。

但是在 Access 中很容易做到(也使用 VBA)。查看 TransferSpreadsheet 方法。如果将它与保存的导入规范结合起来,它可以做很多事情。

您还可以选择将数据导入新表格,或者您可以只链接到电子表格并让它像表格一样工作。当您不想要所有电子表格信息并想要查询它时,链接很有用。

这里是命令语法的链接:http://msdn.microsoft.com/en-us/library/office/ff844793(v=office.14).aspx

【讨论】:

【参考方案2】:

您找到的代码将数据传输到一个名为 FDData.mdb 的现有数据库,该数据库可能已经设置为看起来与您的 Excel 工作表完全一样。我可以问你为什么不只使用 Access 吗?使用 VBA 从 Access 创建 Excel 工作表比使用 VBA 更容易。 Access 中还有从 excel 工作表导入数据库的功能,您是否要为大量的 excel 工作表自动执行此过程?否则你最好只使用向导。如果您能准确地告诉我们您要做什么,我们可能会提供更多帮助,除非您准备编写大量代码。

【讨论】:

我制作的应用程序可以有很多工作表,所以想法是允许用户从应用程序将数据备份到 MA。它对用户放入 excel 的数据进行排序和图表化,(1301..13**,参见 dp 链接)。我同意你的观点(大多数互联网都这样做),使用 TransferSpreadsheet 作为@TomCollins 更容易,我只是希望您可以从 excel 端执行相同的过程。您是否建议打开一个链接的预制数据库并在那里编写从原始应用程序获取内容的 vba 代码?你能把数据发回吗? dropbox.com/s/ia0lvww9kyms2fz/s2.JPG【参考方案3】:

既然您知道在您的 excel 中访问单元格值,并且知道如何在 VBA 中访问 AccessDB 作为记录集,这对您来说不会太难..

我相信谷歌会给你很好的指导!

我为你找到了这个链接..http://www.ozgrid.com/forum/showthread.php?t=76110

【讨论】:

我没有正确您上面看到的代码,我在另一个 s.o 问题上找到了它。

以上是关于将 Excel 工作表移至 Microsoft 访问的 Excel-VBA 代码?的主要内容,如果未能解决你的问题,请参考以下文章

小程序里两个表单怎么合并成一个表格

访微软全球副总裁:Microsoft 365是企业数字化新起点

使用复制表重命名数据库

利用Microsoft Query制作Excel数据透视表

如何用VBA把一个工作簿中的工作表内容复制到另一个汇总工作簿里面的指定的工作表里面去?

如何使用SQL或Python在Amazon Redshift中从Amazon Snow雪花重新创建数据库表? (一次重新创建所有ot,而不是一次一遍地创建)