每次将新数据添加到工作表时,如何将Excel工作表导入MS Access表?这意味着每次我更新我的Excel工作表时它会自动更新ms访问表吗?
我搜索了互联网,似乎有几种方法可以做到,但是我找不到能够完全符合我想要的方法。到目前为止,我所做的并不工作,也不是我最终想做的事情。但是,这是一个开始。
正如我所说,我希望vba通过excel工作表不断更新我的访问表。现在代码还没有工作。它一直在说"找不到路径。"
我尝试过调试,但我还没有弄清楚路径出了什么问题。这就是我到目前为止所拥有的。有关如何修复我的代码和/或任何建议的任何建议,以更简单的方式?
Sub ExportToAccess()
Dim oSelect As Range, i As Long, j As Integer, sPath As String
Sheet1.Activate
Set oSelect = Application.InputBox("Range", , Range("A1").CurrentRegion.Address, , , , , 8)
Dim oDAO As DAO.DBEngine, oDB As DAO.Database, oRS As DAO.Recordset
ChDir ActiveWorkbook.Path
sPath = Application.GetOpenFilename("Access * test.accdb\")
If sPath = "False" Then Exit Sub
Set oDAO = New DAO.DBEngine
Set oDB = oDAO.OpenDatabase(sPath)
Set oRS = oDB.OpenRecordset("ImportedData")
For i = 2 To oSelect.Rows.Count
oRS.AddNew
For j = 1 To oSelect.Columns.Count
oRS.Fields(j) = oSelect.Cells(i, j)
Next j
oRS.Update
Next i
oDB.Close
If MsgBox("Open the table?", vbYesNo) = vbYes Then
Dim oApp As Access.Application
Set oApp = New Access.Application
oApp.Visible = True
oApp.OpenCurrentDatabase sPath
oApp.DoCmd.OpenTable "ImportedData", acViewNormal, acReadOnly
oApp.DoCmd.GoToRecord , , acLast
DoEvents
End If
End Sub
问题解决了: 虽然我用来解决我的问题的方法对我有用,但是在看到这篇文章时可能并不是大多数人所期望的,但我仍然认为它对某些人有用。即使我提出的解决方案非常简单。我没有直接编写一些代码来将工作表中的数据传输到访问表,而只是将我的vba代码复制并粘贴到工作表1中的数据,然后将其粘贴到工作表2中,然后将工作表2链接到访问表在访问中使用外部数据导入功能。