我想知道是否可以从Excel工作表移动数据并将其存储在Microsoft Access数据库中。我有很多具有相似格式的数据表,我希望每个表都可以访问。我还想从数据库中检索数据,但我想我应该先学习如何存储数据。我发现这个代码,我不知道是否有人可以解释它是如何工作的(或者它是否与我正在寻找的一样)?我已经用vba读取了excel中的power编程,所以我知道基本的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
此外,如果您有任何书籍建议可以涵盖此/链接,也将不胜感激。
答案 0 :(得分:1)
我确信它可以在Excel中完成,但我不知道它在我的头脑中。
但是在Access中也很容易(也使用VBA)。查看 TransferSpreadsheet 方法。如果将它与保存的导入规格结合使用,它可以做很多事情。
您还可以选择将数据导入新表格,或者只需链接到电子表格并使其像表格一样。当您不想要所有电子表格信息并想要查询它时,链接非常有用。
以下是命令语法的链接:http://msdn.microsoft.com/en-us/library/office/ff844793(v=office.14).aspx
答案 1 :(得分:0)
您找到的代码将数据传输到名为FDData.mdb的现有数据库,该数据库可能已设置为与您的Excel工作表完全相同。我可以问为什么你不只是使用Access?使用VBA从Access创建excel表比使用相反的表单更容易。 Access中的excel工作表功能还有导入数据库,您是否尝试为大量Excel工作表自动执行此过程?否则你最好只使用向导。如果你可以准确地告诉我们你想要做什么,我们可能会提供更多的帮助,通过VBA链接Excel和Access可能比仅选择一个并处理缺点更有效,除非你准备写一大堆代码。
答案 2 :(得分:0)
由于您了解excel中的访问单元格值并知道如何在VBA中访问 AccessDB作为记录集,这对您来说不会太难......
我相信Google会给你一个很好的指导!
我找到了这个链接.. http://www.ozgrid.com/forum/showthread.php?t=76110