我正在为不运行Office Professional(Office Standard)的用户编写工具。这意味着他们的系统上没有安装MSAccess。因此,以下代码失败(从Excel调用):
Dim appAccess As Object
Set appAccess = CreateObject("Access.Application")
With appAccess
.OpenCurrentDatabase Range("DBfile")
.Application.Run "importmms"
.Quit
End With
虽然我认为这曾经有用(所以我正在寻找为什么这个代码在标准许可机器上不再工作),它已经不再适用了。因此,我试图在的计算机上找到将.csv 文件导入 Access表的解决方案 VBA in Excel 不运行MS Access 。
答案 0 :(得分:1)
如果Office 2010 Standard安装中存在msaccess.exe,则可能安装了Access 运行时。
缺少它的用户可以下载并安装它(它是免费的):
答案 1 :(得分:0)
好的,这可能是一个黑客,在许多情况下都不可靠。但显然在客户端的PC上是msaccess.exe(无论是否是许可。(也许有人可以确认msaccess.exe是否确实附带了Office软件的标准许可证)
所以我只是从命令行运行它:
If FileExist("c:\Program Files (x86)\Microsoft Office\Office14\msaccess.exe") Then
Shell ("c:\Program Files (x86)\Microsoft Office\Office14\msaccess.exe """ & dbpath & """ /x ImportMMS")
End If