2010-02-27 103 views
3

我想从具有提升的授权集的Silverlight 4 OOB中启动现有的MS Access数据库(Access 2010)。我不断收到错误。我可以使用CreateObject关键字创建一个新的Access应用程序,但是当我尝试启动一个现有的应用程序时,我收到一个错误:“没有找到指定的ProgID对象。”Com Interop问题Silverlight 4和MS Access 2010

任何帮助表示赞赏。这里是我使用的代码:

string sMSAccess = "C:\\Users\\storltx\\Documents\\SL4Demo.accdb"; 
dynamic MSAccess = ComAutomationFactory.GetObject(sMSAccess); 
MSAccess.Visible = true; 

回答

0

您可以尝试这样的代码: -

string sMSAccess = "C:\\Users\\storltx\\Documents\\SL4Demo.accdb"; 
dynamic app = ComAutomationFactory.CreateObject("Access.Application"); 
app .Visible = true; 
app.OpenCurrentDatabase(sMSAccess); 
+0

非常好。现在正常工作! – 2010-02-27 23:57:12

2

我想你应该将“Access.Application”字符串传递给GetObject调用。像这样:

dynamic MSAccess = ComAutomationFactory.GetObject("Access.Application"); 
+0

GetObject的只能使用ProgID先前激活的对象。 Silverlight似乎只限于ProgIDs(这就是为什么问题中的方法失败)。但是,这个答案也不会工作,因为它不会启动MSAccess,也不会指出要加载哪个数据库。 – AnthonyWJones 2010-02-27 19:15:55

+0

感谢您对这个问题和以前的帮助。做得好 !!! – 2010-02-27 23:56:50