VBA第三十三期 如何在VBA中运行Access
我们经常需要从Access中将查询数据然后复制粘贴到Excel中,下面实例使用DAO(Data Access Object)在后台打开并运行 Access查询。然后将结果输出到Excel中。这个宏是将Excel指向Access数据库,从已有的Access查询中将数据取出。可将查询存储到Recondset对象中,以便将其填充到Excel电子表格中。
1、运行Access查询实例:
Sub RunAccessQuery ()
Dim MyDatabase As DAO. Database
Dim MyQueryDef As DAO. QueryDef
Dim MyRecordset As DAO. Recordset
Dim 1 As Integer
Set MyDatabase-DBEngine. OpenDatabase("C: \Temp\YourAccessDatabse.accdb")
Set MyQueryDef -MyDatabase, QueryDefs ("Your Query Name")
Set MyRecordset-MyQueryDef. OpenRecordset
Sheets ("SheetI") . Select
ActiveSheet. Range ("A6: K10000°) . ClearContents
Activesheet, Range ("A7”) ,.CopyPromRecordset MRecordaet
For 1= 1 To MyRecordset. Fields. Count
Activesheet.ceila (6, 1) . Value=MyRecordset. Fields (1-1) , Name
Next
End Sub
注意:需委先设置对 MicrosafiAcces对象库的引用,在Excel中打开VBE,选择“工具”|“引用”。激活“引用”对话框后,通过滚动条找到Microsoft Access XX Object Library,此处的XX指系上的Access版本号,选中该项。
2、VBA中运行Access宏实例
Sub RunAccessMacro ()
Dim AC As Access. Application
Set AC=New Access.ApplicationAC. OpenCurrentDatabase(“C: \Temp\YourAccessDatabse.accdb")
With AC
.DoCnd. RunMacro "HyMacro"
·Qult
End With
End Sub
注意:要自动启用Access,需要先设置对 Microsoft Access 对象库的引用。在Excel中打开VBE,选择“工具”|“引用”,激活“引用”对话框后,通过滚动条找到 Microsoft Access XX Object Library,此处的XX指你系统上的Access版本号,选中该项。