我已经研究了几天了,我的WCF服务通过com/interop创建了一个Access对象。我已经为Access对象运行了OpenCurrentDatabase调用,没有出现错误,但是Application.CurrentDB仍然是nothing/null。如果CurrentDB什么都不是,那么我肯定不能调用Application.Run "myFunction"。我意识到WCF服务并不意味着是用户交互的,但这是一个很长的故事,为什么我要走这条路。基本上,我需要尽快准备好概念证明,另一种(正确的)方法是完全重写大型复杂的access VBA应用程序。这不是权限问题,我已将IIS用户名添加到安全选项卡中。我真正需要的是一种将Environment.UserInteractive设置为true的方法,这样我的WCF服务就可以在我的服务器机器上创建一个Access实例,运行VBA函数,关闭,返回true。我为WCF使用VS2010,为我的服务器使用IIS7,为VBA应用程序使用Access 2010。请帮帮我!
发布于 2011-10-18 03:02:14
答案是让WCF服务将access宏名写到数据库中,并让服务器计算机上的桌面应用程序监视数据库。桌面应用程序加载access,执行操作,并在完成时写回数据库。WCF服务监视等待“操作完成”状态的数据库,并返回结果。
https://stackoverflow.com/questions/7532603
复制相似问题