我使用宏将 Access 数据库中的数据提取到 Excel 工作表中。我首先打开到数据库的连接,在字符串 var 中定义我的 sql 语句,然后将该数据转储到记录集中:
Dim db As Database
Dim rs As RecordSet
Dim sql As String
Dim dbLocation As String
dbLocation = ThisWorkbook.Path & "\database\data.accdb"
Set db = OpenDatabase(dbLocation)
sql = "Select * FROM [Master Table]"
Set rs = db.OpenRecordSet(sql, dbOpenSnapshot)
If Not rs.EOF Then
Worksheets("Sheet1").Range("A1").CopyFromRecordset rs
End If
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
这完美地工作。我将此分发给一些人并要求他们更新字段。然后,我需要使用传回的数据更新 Access 数据。设计上简单的一点是提取的excel数据在结构上镜像了access db,所以更新查询应该很简单。还有一个主键,所以我只需要映射到那个字段。
任何想法如何做到这一点?我可以将整个 excel 数据表加载到记录集中并运行一些时髦的更新查询吗?