0

我想知道是否可以从 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

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

4

3 回答 3

1

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

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

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

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

于 2013-06-13T23:02:32.657 回答
0

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

于 2013-06-13T23:01:40.347 回答
0

由于您知道如何在 Excel 中访问单元格值,并且知道如何在 VBA中将 AccessDB 作为记录集进行访问,所以这对您来说不会太难..

我相信谷歌会给你很好的方向!

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

于 2013-06-14T00:35:59.203 回答